public function sign(Document $object, $passphrase) { $document = $object->toDocument(); $hash = hash('sha256', $this->signedDateTime . " " . $document); $userKey = new UserKey(); $userKey->userId = $this->signingUserId; $userKey->populate(); $privateKeyString = $userKey->getDecryptedPrivateKey($passphrase); $privateKey = openssl_pkey_get_private($privateKeyString); openssl_private_encrypt($hash, $signedHash, $privateKey); $this->signature = base64_encode($signedHash); openssl_free_key($privateKey); }
public function validateSigningKeyAction() { $signature = $this->_getParam('signature'); $currentUserId = (int) Zend_Auth::getInstance()->getIdentity()->personId; $userKey = new UserKey(); $userKey->userId = $currentUserId; $userKey->populate(); if (strlen($userKey->privateKey) > 0) { try { $privateKeyString = $userKey->getDecryptedPrivateKey($signature); $ret = __('Current signature is valid.'); } catch (Exception $e) { $ret = __('Current signature is invalid.' . PHP_EOL . $e->getMessage()); } } else { $ret = __('Cannot verify, no signature exists'); } $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json'); $json->suppressExit = true; $json->direct($ret); }