view tests/test.phpt @ 10:130a6a714966 default tip

Use libsodium instead of libnacl
author Ivo Smits <Ivo@UCIS.nl>
date Thu, 10 Jul 2014 16:34:04 +0000
parents 84e0f7ead583
children
line wrap: on
line source

--TEST--
Test the nacl cryptography functions
--FILE--
<?php
	echo "CRYPTO_BOX_curve25519xsalsa20poly1305\n";
	echo NACL_CRYPTO_BOX_curve25519xsalsa20poly1305_PUBLICKEYBYTES."\n";
	echo NACL_CRYPTO_BOX_curve25519xsalsa20poly1305_SECRETKEYBYTES."\n";
	echo NACL_CRYPTO_BOX_curve25519xsalsa20poly1305_BEFORENMBYTES."\n";
	echo NACL_CRYPTO_BOX_curve25519xsalsa20poly1305_NONCEBYTES."\n";
	echo NACL_CRYPTO_BOX_curve25519xsalsa20poly1305_ZEROBYTES."\n";
	echo NACL_CRYPTO_BOX_curve25519xsalsa20poly1305_BOXZEROBYTES."\n";
	$m = 'HELLO WORLD';
	echo strlen($m).' - '.bin2hex($m)."\n";
	$n = str_repeat("\0", NACL_CRYPTO_BOX_curve25519xsalsa20poly1305_NONCEBYTES);
	$sk = pack('H*' , 'b3d1187a0034cbf17c5deacfb457c57e83577df7fc7a3e14630bace4bb84f4fc');
	$pk = nacl_crypto_box_curve25519xsalsa20poly1305_getpublickey($sk);
	echo strlen($pk).' - '.bin2hex($pk)."\n";
	$pk = pack('H*', 'd394ec9fce78084c1fbc208e5a17bef3bdc4f38cc1ed9e54b9e68ecb56be1418');
	$c = nacl_crypto_box_curve25519xsalsa20poly1305($m, $n, $pk, $sk);
	echo strlen($c).' - '.bin2hex($c)."\n";
	$m = nacl_crypto_box_curve25519xsalsa20poly1305_open($c, $n, $pk, $sk);
	echo strlen($m).' - '.bin2hex($m)."\n";
	$k = nacl_crypto_box_curve25519xsalsa20poly1305_beforenm($pk, $sk);
	echo strlen($k).' - '.bin2hex($k)."\n";
	$c = nacl_crypto_box_curve25519xsalsa20poly1305_afternm($m, $n, $k);
	echo strlen($c).' - '.bin2hex($c)."\n";
	$m = nacl_crypto_box_curve25519xsalsa20poly1305_open_afternm($c, $n, $k);
	echo strlen($m).' - '.bin2hex($m)."\n";
	echo "CRYPTO_BOX_curve25519xsalsa20poly1305 ok\n";
	echo "CRYPTO_SIGN_edwards25519sha512batch\n";
	echo NACL_CRYPTO_SIGN_edwards25519sha512batch_BYTES."\n";
	echo NACL_CRYPTO_SIGN_edwards25519sha512batch_PUBLICKEYBYTES."\n";
	echo NACL_CRYPTO_SIGN_edwards25519sha512batch_SECRETKEYBYTES."\n";
	echo "CRYPTO_SIGN_edwards25519sha512batch ok\n";
	echo "CRYPTO_SIGN_ed25519\n";
	echo NACL_CRYPTO_SIGN_ed25519_BYTES."\n";
	echo NACL_CRYPTO_SIGN_ed25519_PUBLICKEYBYTES."\n";
	echo NACL_CRYPTO_SIGN_ed25519_SECRETKEYBYTES."\n";
	echo NACL_CRYPTO_SIGN_ed25519_SEEDBYTES."\n";
	echo "CRYPTO_SIGN_ed25519 ok\n";
?>
--EXPECT--
CRYPTO_BOX_curve25519xsalsa20poly1305
32
32
32
24
32
16
11 - 48454c4c4f20574f524c44
32 - 4867685134ac5017b584228fab5096983173b99aee10074706ce3c9f820b0a23
27 - d7f25d6171ee1fac7242ed7c7546ddd56ee983ea24a6c7bf3bced8
11 - 48454c4c4f20574f524c44
32 - 76726914c6c1a5132931a2fc11179746c70982e948811ce93008b07f9a439001
27 - d7f25d6171ee1fac7242ed7c7546ddd56ee983ea24a6c7bf3bced8
11 - 48454c4c4f20574f524c44
CRYPTO_BOX_curve25519xsalsa20poly1305 ok
CRYPTO_SIGN_edwards25519sha512batch
64
32
64
CRYPTO_SIGN_edwards25519sha512batch ok
CRYPTO_SIGN_ed25519
64
32
64
32
CRYPTO_SIGN_ed25519 ok