Crypt-Nettle
view release on metacpan or search on metacpan
t/03-cipher.t view on Meta::CPAN
# -*- cperl -*-
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl 03-cipher.t'
#########################
use strict;
use warnings;
use Test;
use ExtUtils::testlib;
use Crypt::Nettle::Cipher;
use MIME::Base64;
use bytes;
#########################
# i generated this with:
# for key in 0 deadbeef ffffffff; do printf " '%s' => {\n" "$key"; for secret in '0123456789abcdef0123456789abcdef' '________________________________' 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; do printf " '%s' => {\n" "$secret"; for algo in aes camel...
# FIXME: i'm only testing AES, CAMELLIA, and CAST here. should try to test more!
# FIXME: i'm only testing ECB mode. We should test CTR and CBC modes as well!
# key -> cleartext -> algorithm -> ciphertext
my $ciphers = {
'0' => {
'0123456789abcdef0123456789abcdef' => {
'aes128' => 'FPX+dGlm8pJlHCKIu/9GCRT1/nRpZvKSZRwiiLv/Rgk=',
'aes192' => 'VAuhOrO8xcaLJZhKON6Z3FQLoTqzvMXGiyWYSjjemdw=',
'aes256' => 'uMMzGtqcnpOzXOYBwDQNrbjDMxranJ6Ts1zmAcA0Da0=',
'camellia128' => 'WJ3mFua227sR8qEjht3WoFid5hbmttu7EfKhI4bd1qA=',
'camellia192' => 'ZtOzFqft8hYo0Qeyw3ChYWbTsxan7fIWKNEHssNwoWE=',
'camellia256' => 'wz550k7ACrEGTuo/iIGjcsM+edJOwAqxBk7qP4iBo3I=',
'cast128' => 'AgErxAPAImxRPiOHi4rECAIBK8QDwCJsUT4jh4uKxAg=',
},
'________________________________' => {
'aes128' => 'vl0hoii4uzOEz1YOYSGe4L5dIaIouLszhM9WDmEhnuA=',
'aes192' => '1MBpeGBtac/kP/vsfipDwNTAaXhgbWnP5D/77H4qQ8A=',
'aes256' => '1ofX420A5l606zs6+Bd2G9aH1+NtAOZetOs7OvgXdhs=',
'camellia128' => 'zi1YQCOVEGPJPRppKWAPLM4tWEAjlRBjyT0aaSlgDyw=',
'camellia192' => 'pC2/k6TjF9QbfHj6Q161zqQtv5Ok4xfUG3x4+kNetc4=',
'camellia256' => 'KLFoXrxeRdKP9N0JFSPBPyixaF68XkXSj/TdCRUjwT8=',
'cast128' => 'MVtMoRQHNlExW0yhFAc2UTFbTKEUBzZRMVtMoRQHNlE=',
},
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' => {
'aes128' => 'sX26cpATfV71XS7W3S9yy7F9unKQE31e9V0u1t0vcss=',
'aes192' => 'er4z4nhhNhF7QxaMPFjwwHq+M+J4YTYRe0MWjDxY8MA=',
'aes256' => 'Wwo/gOlgfKBTRmWaToiX41sKP4DpYHygU0Zlmk6Il+M=',
'camellia128' => 'q8SeTMi1DNV4+CYSRnNYRqvEnkzItQzVePgmEkZzWEY=',
'camellia192' => '2+a1BGrdVUX3LnNgRP06ddvmtQRq3VVF9y5zYET9OnU=',
'camellia256' => 'iJ5YoiuDzOiimhUq8Bs1rYieWKIrg8zoopoVKvAbNa0=',
'cast128' => 'W3gZ70Snjs1beBnvRKeOzVt4Ge9Ep47NW3gZ70Snjs0=',
},
},
'deadbeef' => {
'0123456789abcdef0123456789abcdef' => {
'aes128' => 'J8irigIL+FjFEqlKkoUrqCfIq4oCC/hYxRKpSpKFK6g=',
'aes192' => 'WYXL3tPORMV7otd83dJT8lmFy97TzkTFe6LXfN3SU/I=',
'aes256' => 'aHuNBkMZtN10LFaOqPT782h7jQZDGbTddCxWjqj0+/M=',
'camellia128' => 'vWkKE2JwRj4y/lZCcLqEUr1pChNicEY+Mv5WQnC6hFI=',
'camellia192' => 'AE+DO5uh0LjWPY6/OV/L/ABPgzubodC41j2Ovzlfy/w=',
'camellia256' => 'KfP76Kdxi/5G5xTAq2XclCnz++incYv+RucUwKtl3JQ=',
'cast128' => 'pdrqdb9LyfyRbc2HctQnRKXa6nW/S8n8kW3Nh3LUJ0Q=',
},
'________________________________' => {
'aes128' => 'aRqz/75E/tofvG1auUFmoGkas/++RP7aH7xtWrlBZqA=',
'aes192' => 'X3geXxxnGERQPId4UbuZKF94Hl8cZxhEUDyHeFG7mSg=',
'aes256' => 'Ui7t6WzzrPfNBX7b5vy741Iu7els86z3zQV+2+b8u+M=',
'camellia128' => 'QbIujYiG//CHquJF61wPe0GyLo2Ihv/wh6riRetcD3s=',
'camellia192' => 'xbbVQfLvFX56KpjzuLXOmMW21UHy7xV+eiqY87i1zpg=',
'camellia256' => 'Sw1UNoUD4D1+n8a5o9U7AksNVDaFA+A9fp/GuaPVOwI=',
'cast128' => 'XwA7FM4jm9xfADsUziOb3F8AOxTOI5vcXwA7FM4jm9w=',
},
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' => {
'aes128' => 'fJjY9L5/3DMJ/gCrDGQ8ZHyY2PS+f9wzCf4AqwxkPGQ=',
'aes192' => 'U3dhTTDuOyMj/spFMExiolN3YU0w7jsjI/7KRTBMYqI=',
'aes256' => 'jJ0bZdvTowtTePLSjkpc+4ydG2Xb06MLU3jy0o5KXPs=',
'camellia128' => 'QWG/Fp34d8ejSiyYGafzjUFhvxad+HfHo0osmBmn840=',
'camellia192' => 'J1fn0/Z0BVOLBhJTPvn7LydX59P2dAVTiwYSUz75+y8=',
'camellia256' => 'owNk1XEWS9CXEJFnMeNmF6MDZNVxFkvQlxCRZzHjZhc=',
'cast128' => 'qOj5dcDNDRio6Pl1wM0NGKjo+XXAzQ0YqOj5dcDNDRg=',
},
( run in 0.680 second using v1.01-cache-2.11-cpan-e1769b4cff6 )