@@ -244,6 +244,14 @@ func hashToPKCS11(hashFunction crypto.Hash) (uint, uint, uint, error) {
244
244
return pkcs11 .CKM_SHA384 , pkcs11 .CKG_MGF1_SHA384 , 48 , nil
245
245
case crypto .SHA512 :
246
246
return pkcs11 .CKM_SHA512 , pkcs11 .CKG_MGF1_SHA512 , 64 , nil
247
+ case crypto .SHA3_224 :
248
+ return pkcs11 .CKM_SHA3_224 , pkcs11 .CKG_MGF1_SHA3_224 , 28 , nil
249
+ case crypto .SHA3_256 :
250
+ return pkcs11 .CKM_SHA3_256 , pkcs11 .CKG_MGF1_SHA3_256 , 32 , nil
251
+ case crypto .SHA3_384 :
252
+ return pkcs11 .CKM_SHA3_384 , pkcs11 .CKG_MGF1_SHA3_384 , 48 , nil
253
+ case crypto .SHA3_512 :
254
+ return pkcs11 .CKM_SHA3_512 , pkcs11 .CKG_MGF1_SHA3_512 , 64 , nil
247
255
default :
248
256
return 0 , 0 , 0 , errUnsupportedRSAOptions
249
257
}
@@ -279,11 +287,15 @@ func signPSS(session *pkcs11Session, key *pkcs11PrivateKeyRSA, digest []byte, op
279
287
}
280
288
281
289
var pkcs1Prefix = map [crypto.Hash ][]byte {
282
- crypto .SHA1 : {0x30 , 0x21 , 0x30 , 0x09 , 0x06 , 0x05 , 0x2b , 0x0e , 0x03 , 0x02 , 0x1a , 0x05 , 0x00 , 0x04 , 0x14 },
283
- crypto .SHA224 : {0x30 , 0x2d , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x04 , 0x05 , 0x00 , 0x04 , 0x1c },
284
- crypto .SHA256 : {0x30 , 0x31 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x01 , 0x05 , 0x00 , 0x04 , 0x20 },
285
- crypto .SHA384 : {0x30 , 0x41 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x02 , 0x05 , 0x00 , 0x04 , 0x30 },
286
- crypto .SHA512 : {0x30 , 0x51 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x03 , 0x05 , 0x00 , 0x04 , 0x40 },
290
+ crypto .SHA1 : {0x30 , 0x21 , 0x30 , 0x09 , 0x06 , 0x05 , 0x2b , 0x0e , 0x03 , 0x02 , 0x1a , 0x05 , 0x00 , 0x04 , 0x14 },
291
+ crypto .SHA224 : {0x30 , 0x2d , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x04 , 0x05 , 0x00 , 0x04 , 0x1c },
292
+ crypto .SHA256 : {0x30 , 0x31 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x01 , 0x05 , 0x00 , 0x04 , 0x20 },
293
+ crypto .SHA384 : {0x30 , 0x41 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x02 , 0x05 , 0x00 , 0x04 , 0x30 },
294
+ crypto .SHA512 : {0x30 , 0x51 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x03 , 0x05 , 0x00 , 0x04 , 0x40 },
295
+ crypto .SHA3_224 : []byte {0x30 , 0x2d , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x07 , 0x05 , 0x00 , 0x04 , 0x1c },
296
+ crypto .SHA3_256 : []byte {0x30 , 0x31 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x08 , 0x05 , 0x00 , 0x04 , 0x20 },
297
+ crypto .SHA3_384 : []byte {0x30 , 0x41 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x09 , 0x05 , 0x00 , 0x04 , 0x30 },
298
+ crypto .SHA3_512 : []byte {0x30 , 0x51 , 0x30 , 0x0d , 0x06 , 0x09 , 0x60 , 0x86 , 0x48 , 0x01 , 0x65 , 0x03 , 0x04 , 0x02 , 0x0a , 0x05 , 0x00 , 0x04 , 0x40 },
287
299
}
288
300
289
301
func signPKCS1v15 (session * pkcs11Session , key * pkcs11PrivateKeyRSA , digest []byte , hash crypto.Hash ) (signature []byte , err error ) {
0 commit comments