Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <openssl/hmac.h>
- #include <openssl/evp.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- int main() {
- unsigned char* key = (unsigned char*) "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b";
- unsigned char* data = (unsigned char*) "4869205468657265";
- unsigned char* expected = (unsigned char*) "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7";
- unsigned char* result;
- HMAC_CTX* ctx;
- ENGINE* e;
- ENGINE_load_builtin_engines();
- ENGINE_register_all_complete();
- ENGINE_set_default_digests(e);
- HMAC_CTX_init(ctx);
- HMAC_Init_ex(ctx, key, 40, EVP_sha256(), e);
- result = HMAC(NULL, NULL, 40, data, 16, NULL, NULL);
- HMAC_CTX_cleanup(ctx);
- ENGINE_finish(e);
- ENGINE_free(e);
- if (strcmp((char*) result, (char*) expected) == 0) {
- printf("Test okn");
- } else {
- printf("Got %s instead of %sn", result, expected);
- }
- }
- unsigned char* key = (unsigned char*) "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b";
- unsigned char* data = (unsigned char*) "4869205468657265";
- unsigned char* expected = (unsigned char*) "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7";
- unsigned char* result;
- unsigned int result_len = 64;
- HMAC_CTX ctx;
- ENGINE* e;
- result = (unsigned char*) malloc(sizeof(char) * result_len);
- e = (ENGINE*) ENGINE_new();
- ENGINE_load_builtin_engines();
- ENGINE_register_all_complete();
- ENGINE_set_default_digests(e);
- HMAC_CTX_init(&ctx);
- HMAC_Init_ex(&ctx, key, 16, EVP_sha256(), e);
- HMAC_Update(&ctx, data, 40);
- HMAC_Final(&ctx, result, &result_len);
- HMAC_CTX_cleanup(&ctx);
- ENGINE_finish(e);
- ENGINE_free(e);
- #include <openssl/engine.h>
- #include <openssl/hmac.h>
- #include <openssl/evp.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- int main(void)
- {
- unsigned char* key = (unsigned char*) "x0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0bx0b";
- unsigned char* data = (unsigned char*) "x48x69x20x54x68x65x72x65";
- unsigned char* expected = (unsigned char*) "x49x2cxe0x20xfex25x34xa5x78x9dxc3x84x88x06xc7x8fx4fx67x11x39x7fx08xe7xe7xa1x2cxa5xa4x48x3cx8axa6";
- unsigned char* result;
- unsigned int result_len = 32;
- int i;
- HMAC_CTX ctx;
- result = (unsigned char*) malloc(sizeof(char) * result_len);
- ENGINE_load_builtin_engines();
- ENGINE_register_all_complete();
- HMAC_CTX_init(&ctx);
- HMAC_Init_ex(&ctx, key, 16, EVP_sha256(), NULL);
- HMAC_Update(&ctx, data, 8);
- HMAC_Final(&ctx, result, &result_len);
- HMAC_CTX_cleanup(&ctx);
- for (i=0; i!=result_len; i++)
- {
- if (expected[i]!=result[i])
- {
- printf("Got %02X instead of %02X at byte %d!n", result[i], expected[i], i);
- break;
- }
- }
- if (i==result_len)
- {
- printf("Test ok!n");
- }
- return 0;
- }
- int main() {
- unsigned char* key = (unsigned char*) "Jefe";
- unsigned char* data = (unsigned char*) "what do ya want for nothing?";
- unsigned char* expected = (unsigned char*) "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843";
- unsigned char* result;
- unsigned int result_len = 32;
- int i;
- static char res_hexstring[32];
- result = HMAC(EVP_sha256(), key, 4, data, 28, NULL, NULL);
- for (i = 0; i < result_len; i++) {
- sprintf(&(res_hexstring[i * 2]), "%02x", result[i]);
- }
- if (strcmp((char*) res_hexstring, (char*) expected) == 0) {
- printf("Test ok, result length %dn", result_len);
- } else {
- printf("Got %s instead of %sn", res_hexstring, expected);
- }
- }
- HMAC_CTX ctx;
- HMAC_CTX_init(&ctx);
- HMAC_Init_ex(&ctx, key, 40, EVP_sha256(), e);
- ...
- unsigned int len;
- HMAC_Final(&ctx, result, &len);
Add Comment
Please, Sign In to add comment