@@ -251,6 +251,10 @@ impl MechanismType {
251251 pub const SHA512_RSA_PKCS_PSS : MechanismType = MechanismType {
252252 val : CKM_SHA512_RSA_PKCS_PSS ,
253253 } ;
254+ /// SHA256-HMAC mechanism
255+ pub const SHA256_HMAC : MechanismType = MechanismType {
256+ val : CKM_SHA256_HMAC ,
257+ } ;
254258 /// GENERIC-SECRET-KEY-GEN mechanism
255259 pub const GENERIC_SECRET_KEY_GEN : MechanismType = MechanismType {
256260 val : CKM_GENERIC_SECRET_KEY_GEN ,
@@ -663,6 +667,7 @@ impl TryFrom<CK_MECHANISM_TYPE> for MechanismType {
663667 CKM_SHA256_RSA_PKCS => Ok ( MechanismType :: SHA256_RSA_PKCS ) ,
664668 CKM_SHA384_RSA_PKCS => Ok ( MechanismType :: SHA384_RSA_PKCS ) ,
665669 CKM_SHA512_RSA_PKCS => Ok ( MechanismType :: SHA512_RSA_PKCS ) ,
670+ CKM_SHA256_HMAC => Ok ( MechanismType :: SHA256_HMAC ) ,
666671 CKM_GENERIC_SECRET_KEY_GEN => Ok ( MechanismType :: GENERIC_SECRET_KEY_GEN ) ,
667672 other => {
668673 error ! ( "Mechanism type {} is not supported." , other) ;
@@ -842,7 +847,8 @@ pub enum Mechanism<'a> {
842847 Sha384RsaPkcsPss ( rsa:: PkcsPssParams ) ,
843848 /// SHA256-RSA-PKCS-PSS mechanism
844849 Sha512RsaPkcsPss ( rsa:: PkcsPssParams ) ,
845-
850+ /// SHA256-HMAC mechanism
851+ Sha256Hmac ,
846852 /// GENERIC-SECRET-KEY-GEN mechanism
847853 GenericSecretKeyGen ,
848854}
@@ -905,6 +911,8 @@ impl Mechanism<'_> {
905911 Mechanism :: Sha384RsaPkcsPss ( _) => MechanismType :: SHA384_RSA_PKCS_PSS ,
906912 Mechanism :: Sha512RsaPkcsPss ( _) => MechanismType :: SHA512_RSA_PKCS_PSS ,
907913
914+ Mechanism :: Sha256Hmac => MechanismType :: SHA256_HMAC ,
915+
908916 Mechanism :: GenericSecretKeyGen => MechanismType :: GENERIC_SECRET_KEY_GEN ,
909917 }
910918 }
@@ -971,6 +979,7 @@ impl From<&Mechanism<'_>> for CK_MECHANISM {
971979 | Mechanism :: Sha256RsaPkcs
972980 | Mechanism :: Sha384RsaPkcs
973981 | Mechanism :: Sha512RsaPkcs
982+ | Mechanism :: Sha256Hmac
974983 | Mechanism :: GenericSecretKeyGen => CK_MECHANISM {
975984 mechanism,
976985 pParameter : null_mut ( ) ,
0 commit comments