hmac

Тема в разделе "WASM.BEGINNERS", создана пользователем wasmer, 20 сен 2007.

  1. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    пишу процедуру вычисления HMAC-MD5 с помощью cryptohash.lib
    Код (Text):
    1. invoke GetProcessHeap
    2.     mov hHeap,eax
    3.     mov eax,128
    4.     add eax,blocksize
    5.     invoke HeapAlloc,hHeap,HEAP_ZERO_MEMORY,eax
    6.     mov pHeap,eax
    7. mov pad_buf,eax
    8. mov pad_const,36h
    9. mov edx,2
    10. pad:
    11. xor eax,eax
    12. lea esi,key
    13. mov edi,pad_buf
    14. mov ecx,64
    15. pad_loop:
    16. lodsb
    17. xor al,pad_const
    18. stosb
    19. loop pad_loop
    20. dec edx
    21. test edx,edx
    22. jz padded
    23. mov eax,pHeap
    24. add eax,64
    25. mov pad_buf,eax
    26. mov pad_const,5ch
    27. jmp pad
    28. padded:
    29.                         invoke MD5Init
    30. mov ebx,pHeap
    31.             invoke MD5Update,ebx,64
    32.             invoke MD5Update,offset message,message_len
    33.             invoke MD5Final
    34. mov esi,eax
    35. mov edi,pHeap
    36. add edi,128
    37. push edi
    38. mov ecx,blocksize
    39. rep movsb
    40.                         invoke MD5Init
    41. mov ebx,pHeap
    42. add ebx,64
    43.             invoke MD5Update,ebx,64
    44. pop ebx
    45.             invoke MD5Update,ebx,blocksize
    46.             invoke MD5Final
    47.  
    48.     invoke HeapFree,hHeap,0,pHeap
    первые два теста из RFC2202 проходят, а третий нет, хотя MD5 сообщения вычисляется верно
     
  2. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    разобрался - код верный, неправильно задал ключ