Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- public function signData($data)
- {
- $adapter = EccFactory::getAdapter();
- $generator = EccFactory::getNistCurves()->generator256();
- $useDerandomizedSignatures = true;
- $algorithm = 'sha256';
- $pemSerializer = new PemPrivateKeySerializer(new DerPrivateKeySerializer($adapter));
- $key = $pemSerializer->parse($this->key);
- $hasher = new SignHasher($algorithm, $adapter);
- $hash = $hasher->makeHash($data, $generator);
- if ($useDerandomizedSignatures) {
- $random = \Mdanter\Ecc\Random\RandomGeneratorFactory::getHmacRandomGenerator($key, $hash, $algorithm);
- } else {
- $random = \Mdanter\Ecc\Random\RandomGeneratorFactory::getRandomGenerator();
- }
- $randomK = $random->generate($generator->getOrder());
- $signer = new Signer($adapter);
- $signature = $signer->sign($key, $hash, $randomK);
- $serializer = new DerSignatureSerializer();
- $serializedSig = $serializer->serialize($signature);
- return $serializedSig;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement