* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
require_once '../vendor/autoload.php';
use Virgil\SDK\Common\Utils\GUID, Virgil\SDK\Keys\Client as KeysClient;
const VIRGIL_APPLICATION_TOKEN = '17da4b6d03fad06954b5dccd82439b10';
const VIRGIL_USER_DATA_VALUE = '*****@*****.**';
const VIRGIL_PUBLIC_KEY_ID = '5d3a8909-5fe5-2abb-232c-3cf9c277b111';
try {
    // Create Keys Service HTTP Client
    $keysClient = new KeysClient(VIRGIL_APPLICATION_TOKEN);
    $keysClient->setHeaders(array('X-VIRGIL-REQUEST-SIGN-PK-ID' => VIRGIL_PUBLIC_KEY_ID));
    echo 'Read Private Key.' . PHP_EOL;
    $privateKey = file_get_contents('../data' . DIRECTORY_SEPARATOR . 'private.key');
    echo 'Private Key is:' . PHP_EOL;
    echo $privateKey . PHP_EOL;
    $privateKeyPassword = '******';
    // Do service call
    echo 'Call Keys service to search Public Key instance.' . PHP_EOL;
    $result = $keysClient->getPublicKeysClient()->grabKey(VIRGIL_USER_DATA_VALUE, $privateKey, $privateKeyPassword);
    echo 'Public Key instance successfully searched in Keys service.' . PHP_EOL;
} catch (Exception $e) {
    echo 'Error:' . $e->getMessage();
}