@@ -11570,6 +11570,11 @@ int WP11_GetOperationState(WP11_Session* session, unsigned char* stateData,
1157011570{
1157111571 unsigned long bufferAvailable = * stateDataLen ;
1157211572 unsigned long mechSize = 0 ;
11573+ #if defined(LIBWOLFSSL_VERSION_HEX ) && LIBWOLFSSL_VERSION_HEX < 0x05007004
11574+ wc_HashAlg * hashAlg ;
11575+ #else
11576+ wc_Hashes * hashAlg ;
11577+ #endif
1157311578
1157411579 * stateDataLen = sizeof (session -> mechanism );
1157511580
@@ -11613,35 +11618,37 @@ int WP11_GetOperationState(WP11_Session* session, unsigned char* stateData,
1161311618 XMEMCPY (stateData , & session -> mechanism , sizeof (session -> mechanism ));
1161411619 stateData += sizeof (session -> mechanism );
1161511620
11621+ #if defined(LIBWOLFSSL_VERSION_HEX ) && LIBWOLFSSL_VERSION_HEX < 0x05007004
11622+ hashAlg = & session -> params .digest .hash ;
11623+ #else
11624+ hashAlg = & session -> params .digest .hash .alg ;
11625+ #endif
11626+
11627+
1161611628 switch (session -> mechanism ) {
1161711629#ifndef NO_SHA
1161811630 case CKM_SHA1 :
11619- wc_ShaCopy (& session -> params .digest .hash .alg .sha ,
11620- (wc_Sha * )stateData );
11631+ wc_ShaCopy (& hashAlg -> sha , (wc_Sha * )stateData );
1162111632 break ;
1162211633#endif
1162311634#ifdef WOLFSSL_SHA224
1162411635 case CKM_SHA224 :
11625- wc_Sha224Copy (& session -> params .digest .hash .alg .sha224 ,
11626- (wc_Sha224 * )stateData );
11636+ wc_Sha224Copy (& hashAlg -> sha224 , (wc_Sha224 * )stateData );
1162711637 break ;
1162811638#endif
1162911639#ifndef NO_SHA256
1163011640 case CKM_SHA256 :
11631- wc_Sha256Copy (& session -> params .digest .hash .alg .sha256 ,
11632- (wc_Sha256 * )stateData );
11641+ wc_Sha256Copy (& hashAlg -> sha256 , (wc_Sha256 * )stateData );
1163311642 break ;
1163411643#endif
1163511644#ifdef WOLFSSL_SHA384
1163611645 case CKM_SHA384 :
11637- wc_Sha384Copy (& session -> params .digest .hash .alg .sha384 ,
11638- (wc_Sha384 * )stateData );
11646+ wc_Sha384Copy (& hashAlg -> sha384 , (wc_Sha384 * )stateData );
1163911647 break ;
1164011648#endif
1164111649#ifdef WOLFSSL_SHA512
1164211650 case CKM_SHA512 :
11643- wc_Sha512Copy (& session -> params .digest .hash .alg .sha512 ,
11644- (wc_Sha512 * )stateData );
11651+ wc_Sha512Copy (& hashAlg -> sha512 , (wc_Sha512 * )stateData );
1164511652 break ;
1164611653#endif
1164711654 }
@@ -11655,6 +11662,11 @@ int WP11_SetOperationState(WP11_Session* session, unsigned char* stateData,
1165511662 unsigned long mechSize = 0 ;
1165611663 int hashType = WC_HASH_TYPE_NONE ;
1165711664 int ret ;
11665+ #if defined(LIBWOLFSSL_VERSION_HEX ) && LIBWOLFSSL_VERSION_HEX < 0x05007004
11666+ wc_HashAlg * hashAlg ;
11667+ #else
11668+ wc_Hashes * hashAlg ;
11669+ #endif
1165811670
1165911671 if (stateDataLen < sizeof (session -> mechanism ))
1166011672 return CKR_SAVED_STATE_INVALID ;
@@ -11706,35 +11718,36 @@ int WP11_SetOperationState(WP11_Session* session, unsigned char* stateData,
1170611718 if (ret != CKR_OK )
1170711719 return ret ;
1170811720
11721+ #if defined(LIBWOLFSSL_VERSION_HEX ) && LIBWOLFSSL_VERSION_HEX < 0x05007004
11722+ hashAlg = & session -> params .digest .hash ;
11723+ #else
11724+ hashAlg = & session -> params .digest .hash .alg ;
11725+ #endif
11726+
1170911727 switch (session -> mechanism ) {
1171011728#ifndef NO_SHA
1171111729 case CKM_SHA1 :
11712- wc_ShaCopy ((wc_Sha * )stateData ,
11713- & session -> params .digest .hash .alg .sha );
11730+ wc_ShaCopy ((wc_Sha * )stateData , & hashAlg -> sha );
1171411731 break ;
1171511732#endif
1171611733#ifdef WOLFSSL_SHA224
1171711734 case CKM_SHA224 :
11718- wc_Sha224Copy ((wc_Sha224 * )stateData ,
11719- & session -> params .digest .hash .alg .sha224 );
11735+ wc_Sha224Copy ((wc_Sha224 * )stateData , & hashAlg -> sha224 );
1172011736 break ;
1172111737#endif
1172211738#ifndef NO_SHA256
1172311739 case CKM_SHA256 :
11724- wc_Sha256Copy ((wc_Sha256 * )stateData ,
11725- & session -> params .digest .hash .alg .sha256 );
11740+ wc_Sha256Copy ((wc_Sha256 * )stateData , & hashAlg -> sha256 );
1172611741 break ;
1172711742#endif
1172811743#ifdef WOLFSSL_SHA384
1172911744 case CKM_SHA384 :
11730- wc_Sha384Copy ((wc_Sha384 * )stateData ,
11731- & session -> params .digest .hash .alg .sha384 );
11745+ wc_Sha384Copy ((wc_Sha384 * )stateData , & hashAlg -> sha384 );
1173211746 break ;
1173311747#endif
1173411748#ifdef WOLFSSL_SHA512
1173511749 case CKM_SHA512 :
11736- wc_Sha512Copy ((wc_Sha512 * )stateData ,
11737- & session -> params .digest .hash .alg .sha512 );
11750+ wc_Sha512Copy ((wc_Sha512 * )stateData , & hashAlg -> sha512 );
1173811751 break ;
1173911752#endif
1174011753 }
0 commit comments