@@ -91,6 +91,7 @@ pub const CKK_GOSTR3410: CK_KEY_TYPE = 48;
9191pub const CKK_GOSTR3411 : CK_KEY_TYPE = 49 ;
9292pub const CKK_GOST28147 : CK_KEY_TYPE = 50 ;
9393pub const CKK_EC_EDWARDS : CK_KEY_TYPE = 64 ;
94+ pub const CKK_HKDF : CK_KEY_TYPE = 66 ;
9495pub const CKC_X_509 : CK_CERTIFICATE_TYPE = 0 ;
9596pub const CKC_X_509_ATTR_CERT : CK_CERTIFICATE_TYPE = 1 ;
9697pub const CKC_WTLS : CK_CERTIFICATE_TYPE = 2 ;
@@ -530,6 +531,9 @@ pub const CKM_RSA_PKCS_OAEP_TPM_1_1: CK_MECHANISM_TYPE = 16386;
530531pub const CKM_EC_EDWARDS_KEY_PAIR_GEN : CK_MECHANISM_TYPE = 4181 ;
531532pub const CKM_EC_MONTGOMERY_KEY_PAIR_GEN : CK_MECHANISM_TYPE = 4182 ;
532533pub const CKM_EDDSA : CK_MECHANISM_TYPE = 4183 ;
534+ pub const CKM_HKDF_DERIVE : CK_MECHANISM_TYPE = 16426 ;
535+ pub const CKM_HKDF_DATA : CK_MECHANISM_TYPE = 16427 ;
536+ pub const CKM_HKDF_KEY_GEN : CK_MECHANISM_TYPE = 16428 ;
533537pub const CK_OTP_FORMAT_DECIMAL : CK_ULONG = 0 ;
534538pub const CK_OTP_FORMAT_HEXADECIMAL : CK_ULONG = 1 ;
535539pub const CK_OTP_FORMAT_ALPHANUMERIC : CK_ULONG = 2 ;
@@ -566,6 +570,9 @@ pub const CKD_SHA256_KDF: CK_EC_KDF_TYPE = 6;
566570pub const CKD_SHA384_KDF : CK_EC_KDF_TYPE = 7 ;
567571pub const CKD_SHA512_KDF : CK_EC_KDF_TYPE = 8 ;
568572pub const CKD_CPDIVERSIFY_KDF : CK_EC_KDF_TYPE = 9 ;
573+ pub const CKF_HKDF_SALT_NULL : CK_FLAGS = 1 ;
574+ pub const CKF_HKDF_SALT_DATA : CK_FLAGS = 2 ;
575+ pub const CKF_HKDF_SALT_KEY : CK_FLAGS = 4 ;
569576pub const CKF_HW : CK_FLAGS = 1 ;
570577pub const CKF_ENCRYPT : CK_FLAGS = 256 ;
571578pub const CKF_DECRYPT : CK_FLAGS = 512 ;
@@ -2105,6 +2112,133 @@ impl Default for ck_aes_cbc_encrypt_data_params {
21052112 }
21062113 }
21072114}
2115+ #[ repr( C ) ]
2116+ #[ derive( Debug , Copy , Clone ) ]
2117+ pub struct ck_hkdf_params {
2118+ pub bExtract : :: std:: os:: raw:: c_uchar ,
2119+ pub bExpand : :: std:: os:: raw:: c_uchar ,
2120+ pub prfHashMechanism : CK_MECHANISM_TYPE ,
2121+ pub ulSaltType : :: std:: os:: raw:: c_ulong ,
2122+ pub pSalt : * mut :: std:: os:: raw:: c_uchar ,
2123+ pub ulSaltLen : :: std:: os:: raw:: c_ulong ,
2124+ pub hSaltKey : CK_OBJECT_HANDLE ,
2125+ pub pInfo : * mut :: std:: os:: raw:: c_uchar ,
2126+ pub ulInfoLen : :: std:: os:: raw:: c_ulong ,
2127+ }
2128+ #[ test]
2129+ fn bindgen_test_layout_ck_hkdf_params ( ) {
2130+ const UNINIT : :: std:: mem:: MaybeUninit < ck_hkdf_params > = :: std:: mem:: MaybeUninit :: uninit ( ) ;
2131+ let ptr = UNINIT . as_ptr ( ) ;
2132+ assert_eq ! (
2133+ :: std:: mem:: size_of:: <ck_hkdf_params>( ) ,
2134+ 64usize ,
2135+ concat!( "Size of: " , stringify!( ck_hkdf_params) )
2136+ ) ;
2137+ assert_eq ! (
2138+ :: std:: mem:: align_of:: <ck_hkdf_params>( ) ,
2139+ 8usize ,
2140+ concat!( "Alignment of " , stringify!( ck_hkdf_params) )
2141+ ) ;
2142+ assert_eq ! (
2143+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . bExtract) as usize - ptr as usize } ,
2144+ 0usize ,
2145+ concat!(
2146+ "Offset of field: " ,
2147+ stringify!( ck_hkdf_params) ,
2148+ "::" ,
2149+ stringify!( bExtract)
2150+ )
2151+ ) ;
2152+ assert_eq ! (
2153+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . bExpand) as usize - ptr as usize } ,
2154+ 1usize ,
2155+ concat!(
2156+ "Offset of field: " ,
2157+ stringify!( ck_hkdf_params) ,
2158+ "::" ,
2159+ stringify!( bExpand)
2160+ )
2161+ ) ;
2162+ assert_eq ! (
2163+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . prfHashMechanism) as usize - ptr as usize } ,
2164+ 8usize ,
2165+ concat!(
2166+ "Offset of field: " ,
2167+ stringify!( ck_hkdf_params) ,
2168+ "::" ,
2169+ stringify!( prfHashMechanism)
2170+ )
2171+ ) ;
2172+ assert_eq ! (
2173+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . ulSaltType) as usize - ptr as usize } ,
2174+ 16usize ,
2175+ concat!(
2176+ "Offset of field: " ,
2177+ stringify!( ck_hkdf_params) ,
2178+ "::" ,
2179+ stringify!( ulSaltType)
2180+ )
2181+ ) ;
2182+ assert_eq ! (
2183+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . pSalt) as usize - ptr as usize } ,
2184+ 24usize ,
2185+ concat!(
2186+ "Offset of field: " ,
2187+ stringify!( ck_hkdf_params) ,
2188+ "::" ,
2189+ stringify!( pSalt)
2190+ )
2191+ ) ;
2192+ assert_eq ! (
2193+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . ulSaltLen) as usize - ptr as usize } ,
2194+ 32usize ,
2195+ concat!(
2196+ "Offset of field: " ,
2197+ stringify!( ck_hkdf_params) ,
2198+ "::" ,
2199+ stringify!( ulSaltLen)
2200+ )
2201+ ) ;
2202+ assert_eq ! (
2203+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . hSaltKey) as usize - ptr as usize } ,
2204+ 40usize ,
2205+ concat!(
2206+ "Offset of field: " ,
2207+ stringify!( ck_hkdf_params) ,
2208+ "::" ,
2209+ stringify!( hSaltKey)
2210+ )
2211+ ) ;
2212+ assert_eq ! (
2213+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . pInfo) as usize - ptr as usize } ,
2214+ 48usize ,
2215+ concat!(
2216+ "Offset of field: " ,
2217+ stringify!( ck_hkdf_params) ,
2218+ "::" ,
2219+ stringify!( pInfo)
2220+ )
2221+ ) ;
2222+ assert_eq ! (
2223+ unsafe { :: std:: ptr:: addr_of!( ( * ptr) . ulInfoLen) as usize - ptr as usize } ,
2224+ 56usize ,
2225+ concat!(
2226+ "Offset of field: " ,
2227+ stringify!( ck_hkdf_params) ,
2228+ "::" ,
2229+ stringify!( ulInfoLen)
2230+ )
2231+ ) ;
2232+ }
2233+ impl Default for ck_hkdf_params {
2234+ fn default ( ) -> Self {
2235+ let mut s = :: std:: mem:: MaybeUninit :: < Self > :: uninit ( ) ;
2236+ unsafe {
2237+ :: std:: ptr:: write_bytes ( s. as_mut_ptr ( ) , 0 , 1 ) ;
2238+ s. assume_init ( )
2239+ }
2240+ }
2241+ }
21082242pub type CK_RV = :: std:: os:: raw:: c_ulong ;
21092243pub type CK_NOTIFY = :: std:: option:: Option <
21102244 unsafe extern "C" fn (
@@ -3517,6 +3651,8 @@ pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS = ck_des_cbc_encrypt_data_params;
35173651pub type CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR = * mut ck_des_cbc_encrypt_data_params ;
35183652pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS = ck_aes_cbc_encrypt_data_params ;
35193653pub type CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR = * mut ck_aes_cbc_encrypt_data_params ;
3654+ pub type CK_HKDF_PARAMS = ck_hkdf_params ;
3655+ pub type CK_HKDF_PARAMS_PTR = * mut ck_hkdf_params ;
35203656extern crate libloading;
35213657pub struct Pkcs11 {
35223658 __library : :: libloading:: Library ,
0 commit comments