HMAC |
A Keyed-Hash Message Authentication Code is a specific type of code base of RFC 2104. It works using a secret cryptographic key and a cryptographic hash function. Un Keyed-Hash Message Authentication Code es un tipo específico de código basado en RFC 2104. Este trabaja usando una llave criptográfica secreta y una función criptográfica de hash. |
Problem 1 |
Create a Wintempla Dialog application called Mixture to generate a digest using HMAC SHA-1 from a given message using Windows Cryptography. Cree una aplicación de diálogo de Wintempla llamada MySecurity para generar un digest usando HMAC SHA-1 desde un mensaje dado usando Windows Cryptography. |
Step A |
Edit the stdafx.h file to activate Windows Cryptography using Wintempla classes (this step may not be necessary). Edite el archivo stdafx.h para activar Windows Cryptography usando las clases de Wintempla (este paso podría no ser necesario.) |
stdafx.h |
... //_________________________________________ Cryptography #define WIN_CRYPTOGRAPHY ... |
Step B |
Edit the Mixture.cpp file as shown. Edite el archivo Mixture.cpp como se muestra. |
Mixture.cpp |
... void Mixture::Window_Open(Win::Event& e) { } void Mixture::btGenerate_Click(Win::Event& e) { tbxDigest.Text = L""; string message; Sys::Convert::WstringToString(tbxMessage.Text, message); // string secretKey; Sys::Convert::WstringToString(tbxSecretKey.Text, secretKey); unsigned char digest[128]; // Crypt::Assistant assistant; const int digest_len = assistant.Hmac(CALG_SHA1, (unsigned char*)secretKey.c_str(), (unsigned int)secretKey.size(), (unsigned char*)message.c_str(), (unsigned int)message.size(), digest); wchar_t text[64]; for (int i = 0; i < digest_len; i++) { _snwprintf_s(text, 64, _TRUNCATE, L"%2.2x", digest[i]); tbxDigest.Text += text; } } |