2013-01-20 16:25:22 -07:00
2013-01-20 16:55:10 -07:00
# define TEST_NAME "auth"
# include "cmptest.h"
2013-01-20 16:25:22 -07:00
/* "Test Case 2" from RFC 4231 */
unsigned char key [ 32 ] = " Jefe " ;
2013-04-26 21:52:21 -07:00
unsigned char c [ ] = " what do ya want for nothing? " ;
2013-01-20 16:25:22 -07:00
2014-09-16 14:59:19 -07:00
/* Hacker manifesto */
2014-09-16 15:25:38 -07:00
unsigned char key2 [ ] = " Another one got caught today, it's all over the papers. \" Teenager Arrested in Computer Crime Scandal \" , \" Hacker Arrested after Bank Tampering \" ... Damn kids. They're all alike. " ;
2014-09-16 14:59:19 -07:00
unsigned char a [ crypto_auth_BYTES ] ;
unsigned char a2 [ crypto_auth_hmacsha512_BYTES ] ;
2013-01-20 16:25:22 -07:00
2013-01-20 16:48:08 -07:00
int main ( void )
2013-01-20 16:25:22 -07:00
{
2014-09-16 14:59:19 -07:00
crypto_auth_hmacsha512_state st ;
2014-09-14 10:34:16 -07:00
int i ;
2014-09-13 14:11:12 -07:00
2015-01-23 15:08:49 -07:00
assert ( crypto_auth_hmacsha512_statebytes ( ) = =
sizeof ( crypto_auth_hmacsha512_state ) ) ;
2014-09-14 11:32:55 -07:00
crypto_auth ( a , c , sizeof c - 1U , key ) ;
2014-09-16 14:59:19 -07:00
for ( i = 0 ; i < sizeof a ; + + i ) {
2014-09-14 11:32:55 -07:00
printf ( " ,0x%02x " , ( unsigned int ) a [ i ] ) ;
if ( i % 8 = = 7 )
printf ( " \n " ) ;
2014-09-14 10:34:16 -07:00
}
2014-09-16 14:59:19 -07:00
printf ( " \n " ) ;
crypto_auth_hmacsha512_init ( & st , key , sizeof key ) ;
crypto_auth_hmacsha512_update ( & st , c , 1U ) ;
crypto_auth_hmacsha512_update ( & st , c , sizeof c - 2U ) ;
crypto_auth_hmacsha512_final ( & st , a2 ) ;
for ( i = 0 ; i < sizeof a2 ; + + i ) {
printf ( " ,0x%02x " , ( unsigned int ) a2 [ i ] ) ;
if ( i % 8 = = 7 )
printf ( " \n " ) ;
}
printf ( " \n " ) ;
crypto_auth_hmacsha512_init ( & st , key2 , sizeof key2 ) ;
crypto_auth_hmacsha512_update ( & st , c , 1U ) ;
crypto_auth_hmacsha512_update ( & st , c , sizeof c - 2U ) ;
crypto_auth_hmacsha512_final ( & st , a2 ) ;
for ( i = 0 ; i < sizeof a2 ; + + i ) {
printf ( " ,0x%02x " , ( unsigned int ) a2 [ i ] ) ;
if ( i % 8 = = 7 )
printf ( " \n " ) ;
}
2014-09-13 14:11:12 -07:00
2014-09-14 10:34:16 -07:00
assert ( crypto_auth_bytes ( ) > 0U ) ;
assert ( crypto_auth_keybytes ( ) > 0U ) ;
assert ( strcmp ( crypto_auth_primitive ( ) , " hmacsha512256 " ) = = 0 ) ;
assert ( crypto_auth_hmacsha256_bytes ( ) > 0U ) ;
assert ( crypto_auth_hmacsha256_keybytes ( ) > 0U ) ;
assert ( crypto_auth_hmacsha512_bytes ( ) > 0U ) ;
assert ( crypto_auth_hmacsha512_keybytes ( ) > 0U ) ;
assert ( crypto_auth_hmacsha512256_bytes ( ) = = crypto_auth_bytes ( ) ) ;
assert ( crypto_auth_hmacsha512256_keybytes ( ) = = crypto_auth_keybytes ( ) ) ;
2015-05-09 06:54:18 -07:00
assert ( crypto_auth_hmacsha512256_statebytes ( ) > =
crypto_auth_hmacsha512256_keybytes ( ) ) ;
2015-01-23 15:08:49 -07:00
assert ( crypto_auth_hmacsha256_statebytes ( ) = =
sizeof ( crypto_auth_hmacsha256_state ) ) ;
assert ( crypto_auth_hmacsha512_statebytes ( ) = =
sizeof ( crypto_auth_hmacsha512_state ) ) ;
2014-09-14 10:34:16 -07:00
return 0 ;
2013-01-20 16:25:22 -07:00
}