QByteArray CppHash::ComputeHash(const QByteArray &data) { QByteArray hash(GetDigestSize(), 0); sha1.CalculateDigest(reinterpret_cast<byte *>(hash.data()), reinterpret_cast<const byte *>(data.data()), data.size()); return hash; }
virtual QByteArray ComputeHash(const QByteArray &data) { QByteArray hash(GetDigestSize(), 0); m_data.CalculateDigest(reinterpret_cast<byte *>(hash.data()), reinterpret_cast<const byte *>(data.constData()), data.size()); return hash; }
// // This is a wrapper function around the TPM2_StartAuthSession command. // It performs the command, calculates the session key, and updates a // SESSION structure. // TPM_RC StartAuthSession( SESSION *session ) { TPM_RC rval; TPM2B_ENCRYPTED_SECRET key; char label[] = "ATH"; TSS2_SYS_CONTEXT *tmpSysContext; UINT16 bytes; int i; key.t.size = 0; tmpSysContext = InitSysContext( 1000, resMgrTctiContext, &abiVersion ); if( tmpSysContext == 0 ) return TSS2_APP_RC_INIT_SYS_CONTEXT_FAILED; if( session->nonceOlder.t.size == 0 ) { session->nonceOlder.t.size = GetDigestSize( TPM_ALG_SHA1 ); for( i = 0; i < session->nonceOlder.t.size; i++ ) session->nonceOlder.t.buffer[i] = 0; } session->nonceNewer.t.size = session->nonceOlder.t.size; rval = Tss2_Sys_StartAuthSession( tmpSysContext, session->tpmKey, session->bind, 0, &( session->nonceOlder ), &( session->encryptedSalt ), session->sessionType, &( session->symmetric ), session->authHash, &( session->sessionHandle ), &( session->nonceNewer ), 0 ); if( rval == TPM_RC_SUCCESS ) { if( session->tpmKey == TPM_RH_NULL ) session->salt.t.size = 0; if( session->bind == TPM_RH_NULL ) session->authValueBind.t.size = 0; if( session->tpmKey == TPM_RH_NULL && session->bind == TPM_RH_NULL ) { session->sessionKey.b.size = 0; } else { // Generate the key used as input to the KDF. rval = ConcatSizedByteBuffer( (TPM2B_MAX_BUFFER *)&key, &( session->authValueBind.b ) ); if( rval != TPM_RC_SUCCESS ) { TeardownSysContext( &tmpSysContext ); return( rval ); } rval = ConcatSizedByteBuffer( (TPM2B_MAX_BUFFER *)&key, &( session->salt.b ) ); if( rval != TPM_RC_SUCCESS ) { TeardownSysContext( &tmpSysContext ); return( rval ); } bytes = GetDigestSize( session->authHash ); if( key.t.size == 0 ) { session->sessionKey.t.size = 0; } else { rval = KDFa( session->authHash, &(key.b), label, &( session->nonceNewer.b ), &( session->nonceOlder.b ), bytes * 8, (TPM2B_MAX_BUFFER *)&( session->sessionKey ) ); } if( rval != TPM_RC_SUCCESS ) { TeardownSysContext( &tmpSysContext ); return( TSS2_APP_RC_CREATE_SESSION_KEY_FAILED ); } } session->nonceTpmDecrypt.b.size = 0; session->nonceTpmEncrypt.b.size = 0; session->nvNameChanged = 0; } TeardownSysContext( &tmpSysContext ); return rval; }
virtual QByteArray ComputeHash() { QByteArray hash(GetDigestSize(), 0); m_data.Final(reinterpret_cast<byte *>(hash.data())); return hash; }
int wc_PBKDF2(byte* output, const byte* passwd, int pLen, const byte* salt, int sLen, int iterations, int kLen, int hashType) { word32 i = 1; int hLen; int j, ret; Hmac hmac; #ifdef WOLFSSL_SMALL_STACK byte* buffer; #else byte buffer[MAX_DIGEST_SIZE]; #endif hLen = GetDigestSize(hashType); if (hLen < 0) return BAD_FUNC_ARG; #ifdef WOLFSSL_SMALL_STACK buffer = (byte*)XMALLOC(MAX_DIGEST_SIZE, NULL, DYNAMIC_TYPE_TMP_BUFFER); if (buffer == NULL) return MEMORY_E; #endif ret = wc_HmacSetKey(&hmac, hashType, passwd, pLen); if (ret == 0) { while (kLen) { int currentLen; ret = wc_HmacUpdate(&hmac, salt, sLen); if (ret != 0) break; /* encode i */ for (j = 0; j < 4; j++) { byte b = (byte)(i >> ((3-j) * 8)); ret = wc_HmacUpdate(&hmac, &b, 1); if (ret != 0) break; } /* check ret from inside for loop */ if (ret != 0) break; ret = wc_HmacFinal(&hmac, buffer); if (ret != 0) break; currentLen = min(kLen, hLen); XMEMCPY(output, buffer, currentLen); for (j = 1; j < iterations; j++) { ret = wc_HmacUpdate(&hmac, buffer, hLen); if (ret != 0) break; ret = wc_HmacFinal(&hmac, buffer); if (ret != 0) break; xorbuf(output, buffer, currentLen); } /* check ret from inside for loop */ if (ret != 0) break; output += currentLen; kLen -= currentLen; i++; } } #ifdef WOLFSSL_SMALL_STACK XFREE(buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER); #endif return ret; }
QByteArray CppHash::ComputeHash() { QByteArray hash(GetDigestSize(), 0); sha1.Final(reinterpret_cast<byte *>(hash.data())); return hash; }
BOOL TDigest::GetVal(void *data) { DWORD size = GetDigestSize(); return pCryptGetHashParam(hHash, HP_HASHVAL, (BYTE *)data, &size, 0); }
void Hash::ValidateDigestParameters (const BufferPtr &buffer) const { if (buffer.Size() != GetDigestSize ()) throw ParameterIncorrect (SRC_POS); }