66 * @license Apache-2.0
77 */
88import TestRegister from "../../lib/TestRegister.mjs" ;
9- import { ASCII_TEXT } from "../../samples/Ciphers.mjs" ;
9+ import { ALL_BYTES , ASCII_TEXT , UTF8_TEXT } from "../../samples/Ciphers.mjs" ;
10+
11+ const SOME_HEX_BYTES = "cdb23f958e018418621d9e489b7bba0f0c481f604eba2eb1ea35e38f99490cc0" ;
12+ const SOME_BASE64_BYTES = "zbI/lY4BhBhiHZ5Im3u6DwxIH2BOui6x6jXjj5lJDMA=" ;
1013
1114const P256 = {
1215 // openssl ecparam -name prime256v1 -genkey -noout -out p256.priv.key
@@ -104,7 +107,7 @@ TestRegister.addTests([
104107 } ,
105108 {
106109 "op" : "ECDSA Verify" ,
107- "args" : [ "ASN.1 HEX" , "MD5" , P256 . publicKey , ASCII_TEXT ]
110+ "args" : [ "ASN.1 HEX" , "MD5" , P256 . publicKey , ASCII_TEXT , "Raw" ]
108111 }
109112 ]
110113 } ,
@@ -119,7 +122,7 @@ TestRegister.addTests([
119122 } ,
120123 {
121124 "op" : "ECDSA Verify" ,
122- "args" : [ "ASN.1 HEX" , "SHA-1" , P256 . publicKey , ASCII_TEXT ]
125+ "args" : [ "ASN.1 HEX" , "SHA-1" , P256 . publicKey , ASCII_TEXT , "Raw" ]
123126 }
124127 ]
125128 } ,
@@ -134,7 +137,7 @@ TestRegister.addTests([
134137 } ,
135138 {
136139 "op" : "ECDSA Verify" ,
137- "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
140+ "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
138141 }
139142 ]
140143 } ,
@@ -149,7 +152,7 @@ TestRegister.addTests([
149152 } ,
150153 {
151154 "op" : "ECDSA Verify" ,
152- "args" : [ "ASN.1 HEX" , "SHA-384" , P256 . publicKey , ASCII_TEXT ]
155+ "args" : [ "ASN.1 HEX" , "SHA-384" , P256 . publicKey , ASCII_TEXT , "Raw" ]
153156 }
154157 ]
155158 } ,
@@ -164,7 +167,7 @@ TestRegister.addTests([
164167 } ,
165168 {
166169 "op" : "ECDSA Verify" ,
167- "args" : [ "ASN.1 HEX" , "SHA-512" , P256 . publicKey , ASCII_TEXT ]
170+ "args" : [ "ASN.1 HEX" , "SHA-512" , P256 . publicKey , ASCII_TEXT , "Raw" ]
168171 }
169172 ]
170173 } ,
@@ -179,7 +182,7 @@ TestRegister.addTests([
179182 } ,
180183 {
181184 "op" : "ECDSA Verify" ,
182- "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
185+ "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
183186 }
184187 ]
185188 } ,
@@ -194,7 +197,7 @@ TestRegister.addTests([
194197 } ,
195198 {
196199 "op" : "ECDSA Verify" ,
197- "args" : [ "ASN.1 HEX" , "SHA-384" , P384 . publicKey , ASCII_TEXT ]
200+ "args" : [ "ASN.1 HEX" , "SHA-384" , P384 . publicKey , ASCII_TEXT , "Raw" ]
198201 }
199202 ]
200203 } ,
@@ -209,7 +212,7 @@ TestRegister.addTests([
209212 } ,
210213 {
211214 "op" : "ECDSA Verify" ,
212- "args" : [ "ASN.1 HEX" , "SHA-512" , P521 . publicKey , ASCII_TEXT ]
215+ "args" : [ "ASN.1 HEX" , "SHA-512" , P521 . publicKey , ASCII_TEXT , "Raw" ]
213216 }
214217 ]
215218 } ,
@@ -246,7 +249,7 @@ TestRegister.addTests([
246249 recipeConfig : [
247250 {
248251 "op" : "ECDSA Verify" ,
249- "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
252+ "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
250253 }
251254 ]
252255 } ,
@@ -257,7 +260,7 @@ TestRegister.addTests([
257260 recipeConfig : [
258261 {
259262 "op" : "ECDSA Verify" ,
260- "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
263+ "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
261264 }
262265 ]
263266 } ,
@@ -268,7 +271,7 @@ TestRegister.addTests([
268271 recipeConfig : [
269272 {
270273 "op" : "ECDSA Verify" ,
271- "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
274+ "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
272275 }
273276 ]
274277 } ,
@@ -279,7 +282,7 @@ TestRegister.addTests([
279282 recipeConfig : [
280283 {
281284 "op" : "ECDSA Verify" ,
282- "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
285+ "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
283286 }
284287 ]
285288 } ,
@@ -290,7 +293,7 @@ TestRegister.addTests([
290293 recipeConfig : [
291294 {
292295 "op" : "ECDSA Verify" ,
293- "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
296+ "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
294297 }
295298 ]
296299 } ,
@@ -301,7 +304,7 @@ TestRegister.addTests([
301304 recipeConfig : [
302305 {
303306 "op" : "ECDSA Verify" ,
304- "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT ]
307+ "args" : [ "Auto" , "SHA-256" , P256 . publicKey , ASCII_TEXT , "Raw" ]
305308 }
306309 ]
307310 } ,
@@ -312,7 +315,7 @@ TestRegister.addTests([
312315 recipeConfig : [
313316 {
314317 "op" : "ECDSA Verify" ,
315- "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . privateKeyPkcs1 , ASCII_TEXT ]
318+ "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . privateKeyPkcs1 , ASCII_TEXT , "Raw" ]
316319 }
317320 ]
318321 } ,
@@ -323,7 +326,7 @@ TestRegister.addTests([
323326 recipeConfig : [
324327 {
325328 "op" : "ECDSA Verify" ,
326- "args" : [ "ASN.1 HEX" , "SHA-256" , PEM_PUB_RSA512 , ASCII_TEXT ]
329+ "args" : [ "ASN.1 HEX" , "SHA-256" , PEM_PUB_RSA512 , ASCII_TEXT , "Raw" ]
327330 }
328331 ]
329332 } ,
@@ -460,5 +463,73 @@ TestRegister.addTests([
460463 "args" : [ "Auto" , "Raw JSON" ]
461464 }
462465 ]
466+ } ,
467+ {
468+ name : "ECDSA Sign/Verify: P-256 with SHA256 UTF8" ,
469+ input : UTF8_TEXT ,
470+ expectedOutput : "Verified OK" ,
471+ recipeConfig : [
472+ {
473+ "op" : "ECDSA Sign" ,
474+ "args" : [ P256 . privateKeyPkcs1 , "SHA-256" , "ASN.1 HEX" ]
475+ } ,
476+ {
477+ "op" : "ECDSA Verify" ,
478+ "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , UTF8_TEXT , "Raw" ]
479+ }
480+ ]
481+ } ,
482+ {
483+ name : "ECDSA Sign/Verify: P-256 with SHA256 bytes raw" ,
484+ input : ALL_BYTES ,
485+ expectedOutput : "Verified OK" ,
486+ recipeConfig : [
487+ {
488+ "op" : "ECDSA Sign" ,
489+ "args" : [ P256 . privateKeyPkcs1 , "SHA-256" , "ASN.1 HEX" ]
490+ } ,
491+ {
492+ "op" : "ECDSA Verify" ,
493+ "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , ALL_BYTES , "Raw" ]
494+ }
495+ ]
496+ } ,
497+ {
498+ name : "ECDSA Sign/Verify: P-256 with SHA256 bytes hex" ,
499+ input : SOME_HEX_BYTES ,
500+ expectedOutput : "Verified OK" ,
501+ recipeConfig : [
502+ {
503+ "op" : "From Hex" ,
504+ "args" : [ "Auto" ]
505+ } ,
506+ {
507+ "op" : "ECDSA Sign" ,
508+ "args" : [ P256 . privateKeyPkcs1 , "SHA-256" , "ASN.1 HEX" ]
509+ } ,
510+ {
511+ "op" : "ECDSA Verify" ,
512+ "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , SOME_HEX_BYTES , "Hex" ]
513+ }
514+ ]
515+ } ,
516+ {
517+ name : "ECDSA Sign/Verify: P-256 with SHA256 bytes Base64" ,
518+ input : SOME_BASE64_BYTES ,
519+ expectedOutput : "Verified OK" ,
520+ recipeConfig : [
521+ {
522+ "op" : "From Base64" ,
523+ "args" : [ "A-Za-z0-9+/=" , true ]
524+ } ,
525+ {
526+ "op" : "ECDSA Sign" ,
527+ "args" : [ P256 . privateKeyPkcs1 , "SHA-256" , "ASN.1 HEX" ]
528+ } ,
529+ {
530+ "op" : "ECDSA Verify" ,
531+ "args" : [ "ASN.1 HEX" , "SHA-256" , P256 . publicKey , SOME_BASE64_BYTES , "Base64" ]
532+ }
533+ ]
463534 }
464535] ) ;
0 commit comments