YACA: yaca sign/verify vector tests 91/76091/2
authorLukasz Pawelczyk <l.pawelczyk@samsung.com>
Wed, 22 Jun 2016 11:51:15 +0000 (13:51 +0200)
committerLukasz Pawelczyk <l.pawelczyk@samsung.com>
Thu, 23 Jun 2016 12:33:37 +0000 (14:33 +0200)
Change-Id: Ib062a4f77e493604da5d894d4b856cba7cb47027

src/yaca/test-vectors/sign_verify_ascii.txt [new file with mode: 0644]
src/yaca/yaca-test-sign.cpp

diff --git a/src/yaca/test-vectors/sign_verify_ascii.txt b/src/yaca/test-vectors/sign_verify_ascii.txt
new file mode 100644 (file)
index 0000000..9f7918d
--- /dev/null
@@ -0,0 +1,85 @@
+##################### RSA #####################
+algo=SHA256
+key_type=RSA_PRIV
+key=3082025d02010002818100b8e7b2cfb6263ab59563b2468d7a912695585fb91e61ed72e65167821572d36fc8c213339660e205b5a02f1f1c9f5adb0a5f0ba11f6b4f1ac6e6a7e3a0b0f322345811d062edfac670413cdf84541086d135d67442c0f8007d021f501fdd7b58f672f43a607e1aa2e4dbdec1b85924c075465fd48975ff1cb3c70a62eb21d859020301000102818023325f94304d08a1e604eb3b88d4caea7845313b70b01d5de0bfa01f5febd29995b273ab3f35c3f068494c8ef488d4e79b0aca90ea052832a5a7e44f6d1821bf8f3786fc31fa62c4b94bf459c1d2cf9959950a9a62cf84f175ebc38f5744ba7abd63b74c1f3a2b336b9a6aac44f140a4224b8bd92f85c1bd15aadb609fc6f3cd024100dc0030b906977e4fe63c5cea11bfaf3c6c674b8fb97b6d6221b6abfc37dec2c93bb011cd5d59943f8b351f052f75dfbef695ca25ee1e7ee50c8984af91467b2b024100d7295a9a1f1c94bcb84271f8cf386fe5f5c7aa08ee9b434ef166cb90eb3723722951bce56b42ae9e25a2450c2f4d7eb93dd98ff1111cfd70a7040aba87bae88b02400a44cc0166e85d51f76a2be015120068ee9a67b17eb3df282c70ad586977315a5939dfaad9479c1ed72d94941662071e8fbdf020931bc34a87aa47923652b6df02410096041155b0277f54edabf64722441950dec2edbcf8906ca7980cb21642c9d8fef9ec31a64bd8dc630b9e4e4226a103a0288d8e9ce7efac8d65059e6d5bc167ed024100da8ca5833e81132808890eb9cd6bbc6cd9b35f25cdc78dbe9e42ee463f8d115a0d6c086bb4fe489a343e7bc72ceb56532667a734477794913437b2d002f7e128
+repeats=1
+input=
+
+algo=SHA256
+key_type=RSA_PRIV
+key=3082025d02010002818100b8e7b2cfb6263ab59563b2468d7a912695585fb91e61ed72e65167821572d36fc8c213339660e205b5a02f1f1c9f5adb0a5f0ba11f6b4f1ac6e6a7e3a0b0f322345811d062edfac670413cdf84541086d135d67442c0f8007d021f501fdd7b58f672f43a607e1aa2e4dbdec1b85924c075465fd48975ff1cb3c70a62eb21d859020301000102818023325f94304d08a1e604eb3b88d4caea7845313b70b01d5de0bfa01f5febd29995b273ab3f35c3f068494c8ef488d4e79b0aca90ea052832a5a7e44f6d1821bf8f3786fc31fa62c4b94bf459c1d2cf9959950a9a62cf84f175ebc38f5744ba7abd63b74c1f3a2b336b9a6aac44f140a4224b8bd92f85c1bd15aadb609fc6f3cd024100dc0030b906977e4fe63c5cea11bfaf3c6c674b8fb97b6d6221b6abfc37dec2c93bb011cd5d59943f8b351f052f75dfbef695ca25ee1e7ee50c8984af91467b2b024100d7295a9a1f1c94bcb84271f8cf386fe5f5c7aa08ee9b434ef166cb90eb3723722951bce56b42ae9e25a2450c2f4d7eb93dd98ff1111cfd70a7040aba87bae88b02400a44cc0166e85d51f76a2be015120068ee9a67b17eb3df282c70ad586977315a5939dfaad9479c1ed72d94941662071e8fbdf020931bc34a87aa47923652b6df02410096041155b0277f54edabf64722441950dec2edbcf8906ca7980cb21642c9d8fef9ec31a64bd8dc630b9e4e4226a103a0288d8e9ce7efac8d65059e6d5bc167ed024100da8ca5833e81132808890eb9cd6bbc6cd9b35f25cdc78dbe9e42ee463f8d115a0d6c086bb4fe489a343e7bc72ceb56532667a734477794913437b2d002f7e128
+repeats=1
+input=a
+
+algo=SHA256
+key_type=RSA_PRIV
+key=3082025d02010002818100b8e7b2cfb6263ab59563b2468d7a912695585fb91e61ed72e65167821572d36fc8c213339660e205b5a02f1f1c9f5adb0a5f0ba11f6b4f1ac6e6a7e3a0b0f322345811d062edfac670413cdf84541086d135d67442c0f8007d021f501fdd7b58f672f43a607e1aa2e4dbdec1b85924c075465fd48975ff1cb3c70a62eb21d859020301000102818023325f94304d08a1e604eb3b88d4caea7845313b70b01d5de0bfa01f5febd29995b273ab3f35c3f068494c8ef488d4e79b0aca90ea052832a5a7e44f6d1821bf8f3786fc31fa62c4b94bf459c1d2cf9959950a9a62cf84f175ebc38f5744ba7abd63b74c1f3a2b336b9a6aac44f140a4224b8bd92f85c1bd15aadb609fc6f3cd024100dc0030b906977e4fe63c5cea11bfaf3c6c674b8fb97b6d6221b6abfc37dec2c93bb011cd5d59943f8b351f052f75dfbef695ca25ee1e7ee50c8984af91467b2b024100d7295a9a1f1c94bcb84271f8cf386fe5f5c7aa08ee9b434ef166cb90eb3723722951bce56b42ae9e25a2450c2f4d7eb93dd98ff1111cfd70a7040aba87bae88b02400a44cc0166e85d51f76a2be015120068ee9a67b17eb3df282c70ad586977315a5939dfaad9479c1ed72d94941662071e8fbdf020931bc34a87aa47923652b6df02410096041155b0277f54edabf64722441950dec2edbcf8906ca7980cb21642c9d8fef9ec31a64bd8dc630b9e4e4226a103a0288d8e9ce7efac8d65059e6d5bc167ed024100da8ca5833e81132808890eb9cd6bbc6cd9b35f25cdc78dbe9e42ee463f8d115a0d6c086bb4fe489a343e7bc72ceb56532667a734477794913437b2d002f7e128
+repeats=1
+input=message signature
+
+algo=SHA256
+key_type=RSA_PRIV
+key=3082025d02010002818100b8e7b2cfb6263ab59563b2468d7a912695585fb91e61ed72e65167821572d36fc8c213339660e205b5a02f1f1c9f5adb0a5f0ba11f6b4f1ac6e6a7e3a0b0f322345811d062edfac670413cdf84541086d135d67442c0f8007d021f501fdd7b58f672f43a607e1aa2e4dbdec1b85924c075465fd48975ff1cb3c70a62eb21d859020301000102818023325f94304d08a1e604eb3b88d4caea7845313b70b01d5de0bfa01f5febd29995b273ab3f35c3f068494c8ef488d4e79b0aca90ea052832a5a7e44f6d1821bf8f3786fc31fa62c4b94bf459c1d2cf9959950a9a62cf84f175ebc38f5744ba7abd63b74c1f3a2b336b9a6aac44f140a4224b8bd92f85c1bd15aadb609fc6f3cd024100dc0030b906977e4fe63c5cea11bfaf3c6c674b8fb97b6d6221b6abfc37dec2c93bb011cd5d59943f8b351f052f75dfbef695ca25ee1e7ee50c8984af91467b2b024100d7295a9a1f1c94bcb84271f8cf386fe5f5c7aa08ee9b434ef166cb90eb3723722951bce56b42ae9e25a2450c2f4d7eb93dd98ff1111cfd70a7040aba87bae88b02400a44cc0166e85d51f76a2be015120068ee9a67b17eb3df282c70ad586977315a5939dfaad9479c1ed72d94941662071e8fbdf020931bc34a87aa47923652b6df02410096041155b0277f54edabf64722441950dec2edbcf8906ca7980cb21642c9d8fef9ec31a64bd8dc630b9e4e4226a103a0288d8e9ce7efac8d65059e6d5bc167ed024100da8ca5833e81132808890eb9cd6bbc6cd9b35f25cdc78dbe9e42ee463f8d115a0d6c086bb4fe489a343e7bc72ceb56532667a734477794913437b2d002f7e128
+repeats=1
+input=qwertyuiopasdfghjklzxcvbnm
+
+algo=SHA256
+key_type=RSA_PRIV
+key=3082025d02010002818100b8e7b2cfb6263ab59563b2468d7a912695585fb91e61ed72e65167821572d36fc8c213339660e205b5a02f1f1c9f5adb0a5f0ba11f6b4f1ac6e6a7e3a0b0f322345811d062edfac670413cdf84541086d135d67442c0f8007d021f501fdd7b58f672f43a607e1aa2e4dbdec1b85924c075465fd48975ff1cb3c70a62eb21d859020301000102818023325f94304d08a1e604eb3b88d4caea7845313b70b01d5de0bfa01f5febd29995b273ab3f35c3f068494c8ef488d4e79b0aca90ea052832a5a7e44f6d1821bf8f3786fc31fa62c4b94bf459c1d2cf9959950a9a62cf84f175ebc38f5744ba7abd63b74c1f3a2b336b9a6aac44f140a4224b8bd92f85c1bd15aadb609fc6f3cd024100dc0030b906977e4fe63c5cea11bfaf3c6c674b8fb97b6d6221b6abfc37dec2c93bb011cd5d59943f8b351f052f75dfbef695ca25ee1e7ee50c8984af91467b2b024100d7295a9a1f1c94bcb84271f8cf386fe5f5c7aa08ee9b434ef166cb90eb3723722951bce56b42ae9e25a2450c2f4d7eb93dd98ff1111cfd70a7040aba87bae88b02400a44cc0166e85d51f76a2be015120068ee9a67b17eb3df282c70ad586977315a5939dfaad9479c1ed72d94941662071e8fbdf020931bc34a87aa47923652b6df02410096041155b0277f54edabf64722441950dec2edbcf8906ca7980cb21642c9d8fef9ec31a64bd8dc630b9e4e4226a103a0288d8e9ce7efac8d65059e6d5bc167ed024100da8ca5833e81132808890eb9cd6bbc6cd9b35f25cdc78dbe9e42ee463f8d115a0d6c086bb4fe489a343e7bc72ceb56532667a734477794913437b2d002f7e128
+repeats=1
+input=1234567890qwertyuiop !@#$%^&*() POIUYTREWQ
+
+algo=SHA256
+key_type=RSA_PRIV
+key=3082025d02010002818100b8e7b2cfb6263ab59563b2468d7a912695585fb91e61ed72e65167821572d36fc8c213339660e205b5a02f1f1c9f5adb0a5f0ba11f6b4f1ac6e6a7e3a0b0f322345811d062edfac670413cdf84541086d135d67442c0f8007d021f501fdd7b58f672f43a607e1aa2e4dbdec1b85924c075465fd48975ff1cb3c70a62eb21d859020301000102818023325f94304d08a1e604eb3b88d4caea7845313b70b01d5de0bfa01f5febd29995b273ab3f35c3f068494c8ef488d4e79b0aca90ea052832a5a7e44f6d1821bf8f3786fc31fa62c4b94bf459c1d2cf9959950a9a62cf84f175ebc38f5744ba7abd63b74c1f3a2b336b9a6aac44f140a4224b8bd92f85c1bd15aadb609fc6f3cd024100dc0030b906977e4fe63c5cea11bfaf3c6c674b8fb97b6d6221b6abfc37dec2c93bb011cd5d59943f8b351f052f75dfbef695ca25ee1e7ee50c8984af91467b2b024100d7295a9a1f1c94bcb84271f8cf386fe5f5c7aa08ee9b434ef166cb90eb3723722951bce56b42ae9e25a2450c2f4d7eb93dd98ff1111cfd70a7040aba87bae88b02400a44cc0166e85d51f76a2be015120068ee9a67b17eb3df282c70ad586977315a5939dfaad9479c1ed72d94941662071e8fbdf020931bc34a87aa47923652b6df02410096041155b0277f54edabf64722441950dec2edbcf8906ca7980cb21642c9d8fef9ec31a64bd8dc630b9e4e4226a103a0288d8e9ce7efac8d65059e6d5bc167ed024100da8ca5833e81132808890eb9cd6bbc6cd9b35f25cdc78dbe9e42ee463f8d115a0d6c086bb4fe489a343e7bc72ceb56532667a734477794913437b2d002f7e128
+repeats=10
+input=repeat test
+
+algo=SHA256
+key_type=RSA_PRIV
+key=3082025d02010002818100b8e7b2cfb6263ab59563b2468d7a912695585fb91e61ed72e65167821572d36fc8c213339660e205b5a02f1f1c9f5adb0a5f0ba11f6b4f1ac6e6a7e3a0b0f322345811d062edfac670413cdf84541086d135d67442c0f8007d021f501fdd7b58f672f43a607e1aa2e4dbdec1b85924c075465fd48975ff1cb3c70a62eb21d859020301000102818023325f94304d08a1e604eb3b88d4caea7845313b70b01d5de0bfa01f5febd29995b273ab3f35c3f068494c8ef488d4e79b0aca90ea052832a5a7e44f6d1821bf8f3786fc31fa62c4b94bf459c1d2cf9959950a9a62cf84f175ebc38f5744ba7abd63b74c1f3a2b336b9a6aac44f140a4224b8bd92f85c1bd15aadb609fc6f3cd024100dc0030b906977e4fe63c5cea11bfaf3c6c674b8fb97b6d6221b6abfc37dec2c93bb011cd5d59943f8b351f052f75dfbef695ca25ee1e7ee50c8984af91467b2b024100d7295a9a1f1c94bcb84271f8cf386fe5f5c7aa08ee9b434ef166cb90eb3723722951bce56b42ae9e25a2450c2f4d7eb93dd98ff1111cfd70a7040aba87bae88b02400a44cc0166e85d51f76a2be015120068ee9a67b17eb3df282c70ad586977315a5939dfaad9479c1ed72d94941662071e8fbdf020931bc34a87aa47923652b6df02410096041155b0277f54edabf64722441950dec2edbcf8906ca7980cb21642c9d8fef9ec31a64bd8dc630b9e4e4226a103a0288d8e9ce7efac8d65059e6d5bc167ed024100da8ca5833e81132808890eb9cd6bbc6cd9b35f25cdc78dbe9e42ee463f8d115a0d6c086bb4fe489a343e7bc72ceb56532667a734477794913437b2d002f7e128
+repeats=1000
+input=qwerty
+
+##################### DSA #####################
+algo=SHA256
+key_type=DSA_PRIV
+key=308201ba020100028181009b4519b665efa283f28ba19c2f0ca5ad259bda158f00c39305229300a2e5814dc76dfb95482bde5f6574fc1d758987b7f29ed7236a71bbda90fcac4ed5c540706ec2d695169342f26de74c90e9aac0bf7c4c601eaf06bca7e6bcc24eb5a42b60c6dab3bce107315b94262657f4287944bd2cdc89312498c56e483a8e796cca9d02150091db8be34ba49bbf8443e6dfa613e0b17e600c41028180607f07a27d3a0807ebf7b6640912a4dfe3214410225d79ba2f29672a488a5c5dcbb79f503b7f18108cb6b8d9b325951d2202226167cb1c2725e2955382b37cda08e226c1b65d60095dfc6f27f522b6775f918453af0f5880fb039b3026ea03f1903100414f275d0d3715dd638882b46e9e8d6f56241bb4496a15495b09e2df270281807308fad131e8cba343c1fc613b24f84ae0a9944cdeca1663de971f74f9fdef6de937e2dfdc3ca9587cec2c6835922724b4c5c1e501c5b0764d73a81bcae80a572d0aa58ca27d23651b54c2ad8aeebaa8452334f1496257ca72401ed0d60c838a8004f361da105d81e91814231ea21db7a5f4a8d8c82863859329a151eba5b9a6021463d8c7c434d7dfa8092ad29f137f5a32f527ee3c
+repeats=1
+input=
+
+algo=SHA256
+key_type=DSA_PRIV
+key=308201ba020100028181009b4519b665efa283f28ba19c2f0ca5ad259bda158f00c39305229300a2e5814dc76dfb95482bde5f6574fc1d758987b7f29ed7236a71bbda90fcac4ed5c540706ec2d695169342f26de74c90e9aac0bf7c4c601eaf06bca7e6bcc24eb5a42b60c6dab3bce107315b94262657f4287944bd2cdc89312498c56e483a8e796cca9d02150091db8be34ba49bbf8443e6dfa613e0b17e600c41028180607f07a27d3a0807ebf7b6640912a4dfe3214410225d79ba2f29672a488a5c5dcbb79f503b7f18108cb6b8d9b325951d2202226167cb1c2725e2955382b37cda08e226c1b65d60095dfc6f27f522b6775f918453af0f5880fb039b3026ea03f1903100414f275d0d3715dd638882b46e9e8d6f56241bb4496a15495b09e2df270281807308fad131e8cba343c1fc613b24f84ae0a9944cdeca1663de971f74f9fdef6de937e2dfdc3ca9587cec2c6835922724b4c5c1e501c5b0764d73a81bcae80a572d0aa58ca27d23651b54c2ad8aeebaa8452334f1496257ca72401ed0d60c838a8004f361da105d81e91814231ea21db7a5f4a8d8c82863859329a151eba5b9a6021463d8c7c434d7dfa8092ad29f137f5a32f527ee3c
+repeats=1
+input=a
+
+algo=SHA256
+key_type=DSA_PRIV
+key=308201ba020100028181009b4519b665efa283f28ba19c2f0ca5ad259bda158f00c39305229300a2e5814dc76dfb95482bde5f6574fc1d758987b7f29ed7236a71bbda90fcac4ed5c540706ec2d695169342f26de74c90e9aac0bf7c4c601eaf06bca7e6bcc24eb5a42b60c6dab3bce107315b94262657f4287944bd2cdc89312498c56e483a8e796cca9d02150091db8be34ba49bbf8443e6dfa613e0b17e600c41028180607f07a27d3a0807ebf7b6640912a4dfe3214410225d79ba2f29672a488a5c5dcbb79f503b7f18108cb6b8d9b325951d2202226167cb1c2725e2955382b37cda08e226c1b65d60095dfc6f27f522b6775f918453af0f5880fb039b3026ea03f1903100414f275d0d3715dd638882b46e9e8d6f56241bb4496a15495b09e2df270281807308fad131e8cba343c1fc613b24f84ae0a9944cdeca1663de971f74f9fdef6de937e2dfdc3ca9587cec2c6835922724b4c5c1e501c5b0764d73a81bcae80a572d0aa58ca27d23651b54c2ad8aeebaa8452334f1496257ca72401ed0d60c838a8004f361da105d81e91814231ea21db7a5f4a8d8c82863859329a151eba5b9a6021463d8c7c434d7dfa8092ad29f137f5a32f527ee3c
+repeats=1
+input=message signature
+
+algo=SHA256
+key_type=DSA_PRIV
+key=308201ba020100028181009b4519b665efa283f28ba19c2f0ca5ad259bda158f00c39305229300a2e5814dc76dfb95482bde5f6574fc1d758987b7f29ed7236a71bbda90fcac4ed5c540706ec2d695169342f26de74c90e9aac0bf7c4c601eaf06bca7e6bcc24eb5a42b60c6dab3bce107315b94262657f4287944bd2cdc89312498c56e483a8e796cca9d02150091db8be34ba49bbf8443e6dfa613e0b17e600c41028180607f07a27d3a0807ebf7b6640912a4dfe3214410225d79ba2f29672a488a5c5dcbb79f503b7f18108cb6b8d9b325951d2202226167cb1c2725e2955382b37cda08e226c1b65d60095dfc6f27f522b6775f918453af0f5880fb039b3026ea03f1903100414f275d0d3715dd638882b46e9e8d6f56241bb4496a15495b09e2df270281807308fad131e8cba343c1fc613b24f84ae0a9944cdeca1663de971f74f9fdef6de937e2dfdc3ca9587cec2c6835922724b4c5c1e501c5b0764d73a81bcae80a572d0aa58ca27d23651b54c2ad8aeebaa8452334f1496257ca72401ed0d60c838a8004f361da105d81e91814231ea21db7a5f4a8d8c82863859329a151eba5b9a6021463d8c7c434d7dfa8092ad29f137f5a32f527ee3c
+repeats=1
+input=qwertyuiopasdfghjklzxcvbnm
+
+algo=SHA256
+key_type=DSA_PRIV
+key=308201ba020100028181009b4519b665efa283f28ba19c2f0ca5ad259bda158f00c39305229300a2e5814dc76dfb95482bde5f6574fc1d758987b7f29ed7236a71bbda90fcac4ed5c540706ec2d695169342f26de74c90e9aac0bf7c4c601eaf06bca7e6bcc24eb5a42b60c6dab3bce107315b94262657f4287944bd2cdc89312498c56e483a8e796cca9d02150091db8be34ba49bbf8443e6dfa613e0b17e600c41028180607f07a27d3a0807ebf7b6640912a4dfe3214410225d79ba2f29672a488a5c5dcbb79f503b7f18108cb6b8d9b325951d2202226167cb1c2725e2955382b37cda08e226c1b65d60095dfc6f27f522b6775f918453af0f5880fb039b3026ea03f1903100414f275d0d3715dd638882b46e9e8d6f56241bb4496a15495b09e2df270281807308fad131e8cba343c1fc613b24f84ae0a9944cdeca1663de971f74f9fdef6de937e2dfdc3ca9587cec2c6835922724b4c5c1e501c5b0764d73a81bcae80a572d0aa58ca27d23651b54c2ad8aeebaa8452334f1496257ca72401ed0d60c838a8004f361da105d81e91814231ea21db7a5f4a8d8c82863859329a151eba5b9a6021463d8c7c434d7dfa8092ad29f137f5a32f527ee3c
+repeats=1
+input=1234567890qwertyuiop !@#$%^&*() POIUYTREWQ
+
+algo=SHA256
+key_type=DSA_PRIV
+key=308201ba020100028181009b4519b665efa283f28ba19c2f0ca5ad259bda158f00c39305229300a2e5814dc76dfb95482bde5f6574fc1d758987b7f29ed7236a71bbda90fcac4ed5c540706ec2d695169342f26de74c90e9aac0bf7c4c601eaf06bca7e6bcc24eb5a42b60c6dab3bce107315b94262657f4287944bd2cdc89312498c56e483a8e796cca9d02150091db8be34ba49bbf8443e6dfa613e0b17e600c41028180607f07a27d3a0807ebf7b6640912a4dfe3214410225d79ba2f29672a488a5c5dcbb79f503b7f18108cb6b8d9b325951d2202226167cb1c2725e2955382b37cda08e226c1b65d60095dfc6f27f522b6775f918453af0f5880fb039b3026ea03f1903100414f275d0d3715dd638882b46e9e8d6f56241bb4496a15495b09e2df270281807308fad131e8cba343c1fc613b24f84ae0a9944cdeca1663de971f74f9fdef6de937e2dfdc3ca9587cec2c6835922724b4c5c1e501c5b0764d73a81bcae80a572d0aa58ca27d23651b54c2ad8aeebaa8452334f1496257ca72401ed0d60c838a8004f361da105d81e91814231ea21db7a5f4a8d8c82863859329a151eba5b9a6021463d8c7c434d7dfa8092ad29f137f5a32f527ee3c
+repeats=10
+input=repeat test
+
+algo=SHA256
+key_type=DSA_PRIV
+key=308201ba020100028181009b4519b665efa283f28ba19c2f0ca5ad259bda158f00c39305229300a2e5814dc76dfb95482bde5f6574fc1d758987b7f29ed7236a71bbda90fcac4ed5c540706ec2d695169342f26de74c90e9aac0bf7c4c601eaf06bca7e6bcc24eb5a42b60c6dab3bce107315b94262657f4287944bd2cdc89312498c56e483a8e796cca9d02150091db8be34ba49bbf8443e6dfa613e0b17e600c41028180607f07a27d3a0807ebf7b6640912a4dfe3214410225d79ba2f29672a488a5c5dcbb79f503b7f18108cb6b8d9b325951d2202226167cb1c2725e2955382b37cda08e226c1b65d60095dfc6f27f522b6775f918453af0f5880fb039b3026ea03f1903100414f275d0d3715dd638882b46e9e8d6f56241bb4496a15495b09e2df270281807308fad131e8cba343c1fc613b24f84ae0a9944cdeca1663de971f74f9fdef6de937e2dfdc3ca9587cec2c6835922724b4c5c1e501c5b0764d73a81bcae80a572d0aa58ca27d23651b54c2ad8aeebaa8452334f1496257ca72401ed0d60c838a8004f361da105d81e91814231ea21db7a5f4a8d8c82863859329a151eba5b9a6021463d8c7c434d7dfa8092ad29f137f5a32f527ee3c
+repeats=1000
+input=qwerty
index 6e2b737..41b0ae3 100644 (file)
@@ -223,3 +223,57 @@ RUNNER_TEST(T6090_yaca_sign_test_vectors, YacaTest)
                         << "key is different than expected");
     }
 }
+
+RUNNER_TEST(T6100_yaca_sign_verify_test_vectors, YacaTest)
+{
+    auto tvv = loadTestVector("sign_verify_ascii.txt");
+
+    for (const auto& tv : tvv) {
+        yaca_digest_algorithm_e algo;
+        yaca_key_type_e key_type;
+        Buffer key_data;
+        size_t repeats;
+        std::string input;
+
+        tv.get("algo", algo);
+        tv.get("key_type", key_type);
+        tv.get("key", key_data);
+        tv.get("repeats", repeats);
+        tv.get("input", input);
+
+        KeyPtr key_prv = import_key(key_type, nullptr, key_data.data(), key_data.size());
+        KeyPtr key_pub = extract_public_key(key_prv);
+
+        CtxPtr ctx = sign_init(algo, key_prv);
+        size_t output_len = get_output_length(ctx);
+
+        if (input.size() > 0) {
+            for (size_t i = 0; i < repeats; i++)
+                YACA_SUCCESS(yaca_sign_update(ctx.get(),
+                                              input.c_str(),
+                                              input.size()));
+        }
+
+        Buffer output(output_len);
+        YACA_SUCCESS(yaca_sign_finalize(ctx.get(), output.data(), &output_len));
+        RUNNER_ASSERT_MSG(output.size() >= output_len,
+                          "Length returned from yaca_sign_finalize() (" << output_len <<
+                          ") is greater than the one returned from yaca_context_get_output_length() ("
+                          << output.size() << ")");
+        output.resize(output_len);
+
+        ctx = verify_init(algo, key_pub);
+
+        if (input.size() > 0) {
+            for (size_t i = 0; i < repeats; i++)
+                YACA_SUCCESS(yaca_verify_update(ctx.get(),
+                                                input.c_str(),
+                                                input.size()));
+        }
+
+        int ret = yaca_verify_finalize(ctx.get(), output.data(), output_len);
+        YACA_ASSERT_MSG(YACA_ERROR_NONE == ret,
+                        "Verification failed for \"" << truncate_str(input, 16) << "\" with "
+                        << digest2str(algo) << " and " << keytype2str(key_type) << " key" );
+    }
+}