From 26d9277c30a0dad3443148f9dcee62b9ef1cf209 Mon Sep 17 00:00:00 2001 From: Erin Millard Date: Tue, 3 Sep 2013 21:14:54 +1000 Subject: [PATCH] Added 4096-bit tests. --- README.md | 18 +++++--- test/fixture/pem/dsa-2048-nopass.private.pem | 20 --------- test/fixture/pem/dsa-2048-nopass.public.pem | 20 --------- test/fixture/pem/dsa-2048.param.pem | 14 ------ test/fixture/pem/dsa-2048.private.pem | 23 ---------- test/fixture/pem/dsa-2048.public.pem | 20 --------- test/fixture/pem/dsa-4096-nopass.private.pem | 36 --------------- test/fixture/pem/dsa-4096-nopass.public.pem | 36 --------------- test/fixture/pem/dsa-4096.param.pem | 25 ----------- test/suite/Functional.test.coffee | 47 +++++++++++++++++++- 10 files changed, 56 insertions(+), 203 deletions(-) delete mode 100644 test/fixture/pem/dsa-2048-nopass.private.pem delete mode 100644 test/fixture/pem/dsa-2048-nopass.public.pem delete mode 100644 test/fixture/pem/dsa-2048.param.pem delete mode 100644 test/fixture/pem/dsa-2048.private.pem delete mode 100644 test/fixture/pem/dsa-2048.public.pem delete mode 100644 test/fixture/pem/dsa-4096-nopass.private.pem delete mode 100644 test/fixture/pem/dsa-4096-nopass.public.pem delete mode 100644 test/fixture/pem/dsa-4096.param.pem diff --git a/README.md b/README.md index 15bd61d..383b90c 100644 --- a/README.md +++ b/README.md @@ -21,14 +21,16 @@ information, see the [Lockbox website]. ### Generating keys -Generating of keys is handled by the `openssl` command line tool (not part of -*Lockbox*). Generating a private 2048-bit RSA key in PEM format with no password -can be done with this command: +*Lockbox* uses [RSA] keys in [PEM] format. This is a standard format understood +by [OpenSSL]. Generating of keys is handled by the `openssl` command line tool +(not part of *Lockbox*). Generating a 2048-bit private key can be achieved with +this command: openssl genrsa -out private.pem 2048 -To create a key with a password, simply add the `-des3` flag, which will prompt -for password input before the key is created: +Private keys can have password protection. To create a key with a password, +simply add the `-des3` flag, which will prompt for password input before the key +is created: openssl genrsa -des3 -out private.pem 2048 @@ -39,8 +41,7 @@ responsible for encrypting data. *Lockbox* is capable of extracting public keys from private keys, there is no need to create matching public key files; but if for some reason a public key -file is required, this command will create one (from an RSA key in this -example): +file is required, this command will create one: openssl rsa -pubout -in private.pem -out public.pem @@ -241,6 +242,9 @@ A cipher for encrypting *and* decrypting data, with a bound key. [Lockbox website]: http://lqnt.co/lockbox [lockbox.KeyFactory]: #lockboxkeyfactory +[OpenSSL]: http://en.wikipedia.org/wiki/OpenSSL +[PEM]: http://en.wikipedia.org/wiki/Privacy-enhanced_Electronic_Mail +[RSA]: http://en.wikipedia.org/wiki/RSA_(algorithm) [Build Status]: https://api.travis-ci.org/eloquent/lockbox-nodejs.png?branch=master [NPM]: https://npmjs.org/ diff --git a/test/fixture/pem/dsa-2048-nopass.private.pem b/test/fixture/pem/dsa-2048-nopass.private.pem deleted file mode 100644 index 65d162b..0000000 --- a/test/fixture/pem/dsa-2048-nopass.private.pem +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN DSA PRIVATE KEY----- -MIIDVgIBAAKCAQEAsaoff4p2wM24e5HOwSVsuQ+2dEDXfxlsV9ktCHiNYK/wDNf2 -1y2B0sbKmAcSNwCVpY7mALAOV3mBDjJBTGxwSgwRPcCOzkBdiKEZIy2LF8Cp3F+C -IeMw0uSCrVfhwyA8ICtyExg+jsXAQMvHIfvhsnsQugIKT0G+3o/Ki6N0o2FiZcNh -lJABNn9To6JCCjEtMWmgvJW3luOPYQyPeeVz4ZowpAkuuhdCs94Vsea+j2ICHYqq -EP3aRg5rIyYKsu7jCbbCoKyRKsI9gxb+kpZRAYHT2zPfIq7L7yqOtt1ebPT2UyJU -biwY2vF8WyK+LX6JrCJy5fgSEVO0FGmduf3fWwIhAOddA2+hpI2v8chBWvbxEQNs -hRUh7e8kNNFlfFes+aXbAoIBAQCEgGgbfu2mIPLZCubtyCAaV7fY3QKKzj62EZaX -TuKnahh4rThofYhR/tqQdGb14N+OWjivMlYDzMS2YkQhGvA0h1k7KemGMbU11loh -mHWJXNEz3PEWZXC7N1Cv6CiocJ+n/lRuWFL4uffkIWYJx8BmrqRuEW00HKqXjTeH -VVX2WvrBao55/J8Nr73m5XYwoPk5iYoflLM7Mmw9Cc9x4AcYuD9IujxZdz0WnET3 -CRVhx499m4IRCBZ/Jf0hmG7nzstbL23SNhqxFVZDVtV8SxbnJdk/eMd5pbTtONYm -RXwTMai13jTRjUq22Ma7u+mM/9C6r+YO9QwVETEdYSW82xjzAoIBACqNbqU8cKDI -c8NMRbdXG/6no9zpB+0rdI0O1JKTtYfpizGJa+P+RMjwKIjzODZE1TtnoUWrHQV5 -MfOjiKtqAEjmFKhy4SpVFhbN8sm2Kr3V3YW64m3g7dVHgH19/HDo+QkrgFmRNIbE -OCYIEQBa0oFEIrVb75B//97JBFqpj1k37ia/ZWtZ7y6IgNBwFPMupKLeOz6Fsj15 -rGcA4ew7hTNfXYPcNQE7vZHN9ISG9ZkEcmfdeXcDHI9DsSe2x5YlDePMH6CTMS7k -F9oPMySQ5nEvgrZtFWvoVYM2Ff/GFvmqXNzr3KW0Go3Z/EeORWwWWoyj+nBINYFd -nGM4OpQVSsICIE1hvMdjbAgkec5FbQ80a2n81CP2oHV2hspWpfNmIdwE ------END DSA PRIVATE KEY----- diff --git a/test/fixture/pem/dsa-2048-nopass.public.pem b/test/fixture/pem/dsa-2048-nopass.public.pem deleted file mode 100644 index 3adb1c8..0000000 --- a/test/fixture/pem/dsa-2048-nopass.public.pem +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIDRzCCAjoGByqGSM44BAEwggItAoIBAQCxqh9/inbAzbh7kc7BJWy5D7Z0QNd/ -GWxX2S0IeI1gr/AM1/bXLYHSxsqYBxI3AJWljuYAsA5XeYEOMkFMbHBKDBE9wI7O -QF2IoRkjLYsXwKncX4Ih4zDS5IKtV+HDIDwgK3ITGD6OxcBAy8ch++GyexC6AgpP -Qb7ej8qLo3SjYWJlw2GUkAE2f1OjokIKMS0xaaC8lbeW449hDI955XPhmjCkCS66 -F0Kz3hWx5r6PYgIdiqoQ/dpGDmsjJgqy7uMJtsKgrJEqwj2DFv6SllEBgdPbM98i -rsvvKo623V5s9PZTIlRuLBja8XxbIr4tfomsInLl+BIRU7QUaZ25/d9bAiEA510D -b6Gkja/xyEFa9vERA2yFFSHt7yQ00WV8V6z5pdsCggEBAISAaBt+7aYg8tkK5u3I -IBpXt9jdAorOPrYRlpdO4qdqGHitOGh9iFH+2pB0ZvXg345aOK8yVgPMxLZiRCEa -8DSHWTsp6YYxtTXWWiGYdYlc0TPc8RZlcLs3UK/oKKhwn6f+VG5YUvi59+QhZgnH -wGaupG4RbTQcqpeNN4dVVfZa+sFqjnn8nw2vvebldjCg+TmJih+UszsybD0Jz3Hg -Bxi4P0i6PFl3PRacRPcJFWHHj32bghEIFn8l/SGYbufOy1svbdI2GrEVVkNW1XxL -Fucl2T94x3mltO041iZFfBMxqLXeNNGNSrbYxru76Yz/0Lqv5g71DBURMR1hJbzb -GPMDggEFAAKCAQAqjW6lPHCgyHPDTEW3Vxv+p6Pc6QftK3SNDtSSk7WH6YsxiWvj -/kTI8CiI8zg2RNU7Z6FFqx0FeTHzo4iragBI5hSocuEqVRYWzfLJtiq91d2FuuJt -4O3VR4B9ffxw6PkJK4BZkTSGxDgmCBEAWtKBRCK1W++Qf//eyQRaqY9ZN+4mv2Vr -We8uiIDQcBTzLqSi3js+hbI9eaxnAOHsO4UzX12D3DUBO72RzfSEhvWZBHJn3Xl3 -AxyPQ7EntseWJQ3jzB+gkzEu5BfaDzMkkOZxL4K2bRVr6FWDNhX/xhb5qlzc69yl -tBqN2fxHjkVsFlqMo/pwSDWBXZxjODqUFUrC ------END PUBLIC KEY----- diff --git a/test/fixture/pem/dsa-2048.param.pem b/test/fixture/pem/dsa-2048.param.pem deleted file mode 100644 index 86e387e..0000000 --- a/test/fixture/pem/dsa-2048.param.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN DSA PARAMETERS----- -MIICLQKCAQEAsaoff4p2wM24e5HOwSVsuQ+2dEDXfxlsV9ktCHiNYK/wDNf21y2B -0sbKmAcSNwCVpY7mALAOV3mBDjJBTGxwSgwRPcCOzkBdiKEZIy2LF8Cp3F+CIeMw -0uSCrVfhwyA8ICtyExg+jsXAQMvHIfvhsnsQugIKT0G+3o/Ki6N0o2FiZcNhlJAB -Nn9To6JCCjEtMWmgvJW3luOPYQyPeeVz4ZowpAkuuhdCs94Vsea+j2ICHYqqEP3a -Rg5rIyYKsu7jCbbCoKyRKsI9gxb+kpZRAYHT2zPfIq7L7yqOtt1ebPT2UyJUbiwY -2vF8WyK+LX6JrCJy5fgSEVO0FGmduf3fWwIhAOddA2+hpI2v8chBWvbxEQNshRUh -7e8kNNFlfFes+aXbAoIBAQCEgGgbfu2mIPLZCubtyCAaV7fY3QKKzj62EZaXTuKn -ahh4rThofYhR/tqQdGb14N+OWjivMlYDzMS2YkQhGvA0h1k7KemGMbU11lohmHWJ -XNEz3PEWZXC7N1Cv6CiocJ+n/lRuWFL4uffkIWYJx8BmrqRuEW00HKqXjTeHVVX2 -WvrBao55/J8Nr73m5XYwoPk5iYoflLM7Mmw9Cc9x4AcYuD9IujxZdz0WnET3CRVh -x499m4IRCBZ/Jf0hmG7nzstbL23SNhqxFVZDVtV8SxbnJdk/eMd5pbTtONYmRXwT -Mai13jTRjUq22Ma7u+mM/9C6r+YO9QwVETEdYSW82xjz ------END DSA PARAMETERS----- diff --git a/test/fixture/pem/dsa-2048.private.pem b/test/fixture/pem/dsa-2048.private.pem deleted file mode 100644 index 7725aaa..0000000 --- a/test/fixture/pem/dsa-2048.private.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN DSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: DES-EDE3-CBC,C6F7E2A2C6C81235 - -88CqvzcPM5gyNhkRSks+ttY22PGA/MtDj+5j7LIZ9wlAJqF5I+QzFi7GOm2AIVfy -qBXi+Bh0qATOeeYquyiE81FRMqHkCqAQG2DmxdRE1Zcl0Tm4nmEPpasOcHd9s7p4 -N4AgEPOHsAsb+ZRm+Ct5WQCpR+wGKkqsRJAyXV2/RFVr8KTNOcztz8FVWScRDvHn -sHFtUi4CKnGAhednf9Sf02MbQp4MRAZ73zLzfVxs7i8+R2lCACsbGR4fGYNSWSX+ -hGiGvWNxsafj19ITY6hlqow13MeoxvIS0RmWx8GD4pSqVU3+otKuh1h9Cb5ZCp5f -JDXa6koUP1vxzdvjgXnl44yMvHLnyet7JLgvwmiTMOeUYfPSvGKXAnW6uJku2TRk -YGtlsKkGMSbkG58Mpjv/idX+Bvakce7DoLo6hAyusbyY5wGtaDqoJYK1BslgUYkE -qHRhdGN4jIvQCh7Z178PNepqU6+QIOrKlNtDm1EQ3aJNnBHrGfBeuj/D7c1bOlOB -dj0XA4GLadCBtVQ9FPXSWehKhiQA/gAisWSVlIXRhyunQduwdFF7gVWUNl5e3PAu -hXJqJBNarBUctnNVDckOy5T8keSJ46QyUPRXEhVckX/RhXWg/p7hJHSJrsif9RFS -rhp4/x8iMBaO85NuS30O1tgptW/fpYz/+rEamVSLvdrygCP/pTvWBiSPUQzbNfVb -1wIzbJ3Ynx+S5Ys7y9ZbvQw7qfeVY24h2ix1oGxdVBVoBqknw/vn/Z2wxXqGJXWH -HZ7QBKhGqH78XOS75odPlrtWSrHeIojDOTa+Q504l5DuhLqcGG+6bbP1vIAo/HNP -fCs2uLMAenO9/GK6Iti33r2FdgYj9npM1KxDc1oFTc+AaR7gVZPYbCf9KBU1S74W -WIJ4E3KgpIaFnoUrRFRUf7FS+isgUnzcLR6vRCNqnqowkv2F5vgW1g0ZJv8cW8Tp -8Mbp85qqCVDRVQBrQC2a9xj+u3prE8yMGq8+sOVxI+r9Qg580sO9/r8GZlFWKenK -ZI/2hSJM9HmBXNahuo9O0LrD7r7teeiLgbcp30l8dGmdMfzPvjo7ZSZiYRAAgKv9 -ss5Fkh6yCodxygdI769jfooVszmpYq3GGe2BLVeucLTKZYv6vtoEvB9FcFLFS9o4 ------END DSA PRIVATE KEY----- diff --git a/test/fixture/pem/dsa-2048.public.pem b/test/fixture/pem/dsa-2048.public.pem deleted file mode 100644 index 4858a1d..0000000 --- a/test/fixture/pem/dsa-2048.public.pem +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIDSDCCAjoGByqGSM44BAEwggItAoIBAQCxqh9/inbAzbh7kc7BJWy5D7Z0QNd/ -GWxX2S0IeI1gr/AM1/bXLYHSxsqYBxI3AJWljuYAsA5XeYEOMkFMbHBKDBE9wI7O -QF2IoRkjLYsXwKncX4Ih4zDS5IKtV+HDIDwgK3ITGD6OxcBAy8ch++GyexC6AgpP -Qb7ej8qLo3SjYWJlw2GUkAE2f1OjokIKMS0xaaC8lbeW449hDI955XPhmjCkCS66 -F0Kz3hWx5r6PYgIdiqoQ/dpGDmsjJgqy7uMJtsKgrJEqwj2DFv6SllEBgdPbM98i -rsvvKo623V5s9PZTIlRuLBja8XxbIr4tfomsInLl+BIRU7QUaZ25/d9bAiEA510D -b6Gkja/xyEFa9vERA2yFFSHt7yQ00WV8V6z5pdsCggEBAISAaBt+7aYg8tkK5u3I -IBpXt9jdAorOPrYRlpdO4qdqGHitOGh9iFH+2pB0ZvXg345aOK8yVgPMxLZiRCEa -8DSHWTsp6YYxtTXWWiGYdYlc0TPc8RZlcLs3UK/oKKhwn6f+VG5YUvi59+QhZgnH -wGaupG4RbTQcqpeNN4dVVfZa+sFqjnn8nw2vvebldjCg+TmJih+UszsybD0Jz3Hg -Bxi4P0i6PFl3PRacRPcJFWHHj32bghEIFn8l/SGYbufOy1svbdI2GrEVVkNW1XxL -Fucl2T94x3mltO041iZFfBMxqLXeNNGNSrbYxru76Yz/0Lqv5g71DBURMR1hJbzb -GPMDggEGAAKCAQEAlePfxcLFDzMoE0N6ryJtRfNkubFCxxYAN3a4GDQ3wWRraTqA -AgDiY18YIu48DCB4ZStT0ewASTNaFZb97Ahe0Yyosgi0MIa7ZwmhDUvleNWrvbhk -6bcWP/bZCGzeUym8WPHUqEocCcTe5/tcFHGIPoDjP+JXv+lMaudT48Z521M1d9+M -k9y4dAjCkPbn4cCuRv9/sBAXcA33FzM4rzFLCMqeZqkRIWt9Ihm2W0n4GTO59ePY -/h7FOt8Tz5O21vMf9G6LBL28bzHME2LGPx4lsTH2YgKMEUmPphOtBomFbGsHXT/i -oXG2mTHIqr8JfO6atP69Ld2sHjV+5UI6vH0NOA== ------END PUBLIC KEY----- diff --git a/test/fixture/pem/dsa-4096-nopass.private.pem b/test/fixture/pem/dsa-4096-nopass.private.pem deleted file mode 100644 index aa66092..0000000 --- a/test/fixture/pem/dsa-4096-nopass.private.pem +++ /dev/null @@ -1,36 +0,0 @@ ------BEGIN DSA PRIVATE KEY----- -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 ------END DSA PRIVATE KEY----- diff --git a/test/fixture/pem/dsa-4096-nopass.public.pem b/test/fixture/pem/dsa-4096-nopass.public.pem deleted file mode 100644 index a527ef5..0000000 --- a/test/fixture/pem/dsa-4096-nopass.public.pem +++ /dev/null @@ -1,36 +0,0 @@ ------BEGIN PUBLIC KEY----- -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 -lzjQp6adS6DOT4E66pS6XXYXfMj/BhRQ4ss= ------END PUBLIC KEY----- diff --git a/test/fixture/pem/dsa-4096.param.pem b/test/fixture/pem/dsa-4096.param.pem deleted file mode 100644 index 5638415..0000000 --- a/test/fixture/pem/dsa-4096.param.pem +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN DSA PARAMETERS----- -MIIELAKCAgEA3KVXDXkyRdXTk7elxPKwlexh70F+6YVhsh/J5L/S29Y9IRi9Gnvk -M0gh9p4EGKViQRmQeVQ6uEBHGoORLJqP4k0LI+NpHQ1LpIciMu90/SFoyCjg7757 -2Y18ACjQm2JrutmiZW2ISTGkZrHAH8CEq92dgRRhrz7oR1sV7D/dRbHNFmjIYE7q -m4zUfhk+8tCLFN6tjfvqv6YNXuhgtFuTohOCfHBKc47W9sM6Q3WTBgbndkZrBk27 -mRb1xuOA9be+cfPsU1TQ9Rhby8RZPVV/nCMppEh5+NqNNxH/vcnMJkzYcsokM6yk -c8+fOMuD7SVgo8y3yOnLpX/TRFYceELAmtJM+NSGFukxz6eaFZgU7mA2vrwnaMD3 -WR8frfkofSLs4bgm6D+lC3SAEwSqdt9mnN8IXStwBnbOygGCMZ1pJqJTYhYsAjWU -Uc8wnQdaNfoEDmCGY9glm9cEupUJrQTZPPMIeSC+S6Bl9BBYFDDgwg59D/1fxWgf -zXakqQFZVy+7YMBazfbF1TzkdyjfUfS8aBh38REeaiq7GcYvXvwiBdcniuW34b5l -F7nvl84+gjCSFvRB2Xo8la9x6SiO8HmTJM05UCHI7H87MMJErDxJxC3EN892HZdr -/yxPbjAW4ecJsSAm/CvhlsypfXLv4mUD68hGoEH4CTSRcPbBUYaiGpcCIQCfFrQY -T35XJuMgBdzWj4OFMuUy6hsjq67/O8k1+3rHuwKCAgAfh+0NYogyFuuLFiAtjU0c -Ua4TXrrTAF6VgDvOgg7xwX6cfgAUp4EK/6hlgEg7fLA6mpRNYG5Dwpx7y0GR58Ca -HZzcZIOjSBfWRoc3+UO1J/YoWb8Q7XloCvTo8qr8xeJjfaeVBmDwgoSYA7YMkV+s -G3uLMrXIdhXIEsLaTv9WfqjEWSaWWJVR/bxNttFMuKHgsU4AAg7HmqHJrsLYAK1h -Tt0f5Q9TQB1YUzHQjlBGlI1rWPUy16N4fMT+imN2lnsthWkpgedHOD+u/VIxkp8b -MfooJhwOoy5ty/u6JEz3yZd9r+cdY8u6ZQkpM0e9oBEf0UX6ZbEfUqwZHo5+IQiR -UkVgO7CLpUkyQIFZI/qf2TRfX1az6X/6ZLGqaOUvHL7bmvB7C/gI4gZn5eS3dYiw -iG4UMEEE1mAsPWWzs+tExhGe0lPjVWUpMDWEHil/mLJQdkzUkxYauCQONFikBQhZ -xlRfPb5LDZp9VsdnX1xZjckdtUsteQS3pRDWMQsOnuShcXGdD2xxu6AWsKJ5Etm+ -Iy6SHY7Yji+2xHm+kXcgP21HOfgSEMKtiJnmQKYzvD5NgKVREFbRnSkn/oqW0AnZ -f/kmLrA0C9wNaoyhw2INzd5JsH489BB6KX3bpE6zPi2hOUMcnfJAdn/oTOFZTEao -Ud4fjz4wtfIRKE23AiSoZw== ------END DSA PARAMETERS----- diff --git a/test/suite/Functional.test.coffee b/test/suite/Functional.test.coffee index 08675bc..536ac40 100644 --- a/test/suite/Functional.test.coffee +++ b/test/suite/Functional.test.coffee @@ -10,6 +10,7 @@ file that was distributed with this source code. {assert} = require 'chai' path = require 'path' sinon = require 'sinon' +util = require 'util' lockbox = require '../../' + process.env.TEST_ROOT + '/main' DecryptionCipher = require '../../' + process.env.TEST_ROOT + '/DecryptionCipher' EncryptionCipher = require '../../' + process.env.TEST_ROOT + '/EncryptionCipher' @@ -29,6 +30,7 @@ suite 'Functional tests', => @specVectorData = 'Test vector 1': + bits: 2048 data: '' key: '12345678901234567890123456789012' iv: '1234567890123456' @@ -45,8 +47,10 @@ suite 'Functional tests', => 'ByMT1UmNQ0AWjm8KJiH8hLXPr09rbo5Vz' + 's6c5lSrjMmM9itNTFRhW3KMfhqusPDqWJ' + '7K37AvEHDaLULPKBNj24c' + rsaLength: 342 'Test vector 2': + bits: 2048 data: '1234' key: '12345678901234567890123456789012' iv: '1234567890123456' @@ -63,8 +67,10 @@ suite 'Functional tests', => 'm71f4TLMKHTz-CmYinvzj7G_pYmvtHeh' + 'uxDzjdrT4lbetTuESm-YHKtq9JEj6E2S' + 'ER4TURlVKf14sPeDgRUo88-zvM7BWpMv' + rsaLength: 342 'Test vector 3': + bits: 2048 data: '1234567890123456' key: '12345678901234567890123456789012' iv: '1234567890123456' @@ -82,19 +88,56 @@ suite 'Functional tests', => 'SxIPU4O8vomXpUqWzneJ4CBlVmSYgUJa' + '4zsJUnll4lufFRTYTYjuCgQhunOAIVS2' + 'DxuQH8bSZZrHKNIghc0D3Q' + rsaLength: 342 + + 'Test vector 4': + bits: 4096 + data: '1234567890123456' + key: '12345678901234567890123456789012' + iv: '1234567890123456' + ciphertext: + 'XncYhc3C20kG5Zb8VPB0OGBik6N6a6JY' + + '333Hz6VN3lQ21xMoc16XW0873AzuyvDI' + + 'YAjNzN0pAQo0CosedUptYLLwRtGrsfUr' + + 'XIZxteHNZ7JiEXGZ8W_6bz9jlbnpfNdH' + + 'GxaR-aePTZWSbyPyPdQysGJlqclXJb_K' + + 'dKfqGHLYOf0LO93kvljQ4ccux18vm8PQ' + + 'GIeAH-L5qMfzfOHzcCXbVU746pZf7mNR' + + 'uIEgfp0AM-JEKItYTIZxr8kP7-WlVDf0' + + '7cjQkZuUEQ7d9FQLKOWviuQ-PQd2enwI' + + 'MYo3btEiu2XHmUcZEcI2esz_vwBGxHNM' + + 'HGrshgpuP_EvPPR_1EogS2EGHs0l_owU' + + 'hHx4V8LvgMBnO3O2nO9p2WA7ZKH1zMZU' + + 'gGaxMAlZrMweaGvEcke2nwnfLUBVytYd' + + 'QNOBV7TmJ3XMXwgpavZ2eKvVXUpdKfcm' + + 'fsGDxjkJRN8BqDTrSZZmSKZe9VZkGSNS' + + '99jF9BEa6dmy7RTLy3xSaWdPwbElX3pA' + + 'pgQR5BKHz6DP5p86gaQITelAMMYaZQK3' + + 'tNvW6ncRfJGlD3ax_TezCOtrEmlzVCRe' + + 'OsbK51H_xfST_0PO-hXG35NIGC1vDV8r' + + 'iDMr47HbRIFwm9NxT1VR0hDF0LbIIbkS' + + 'YucMkD_Zv9JjoL4FX0rM0T0fvDJBeJXw' + + 'Zt1ifDOvWxogZVZkmIFCWuM7CVJ5ZeJb' + + 'nxUU2E2I7goEIbpzgCFUtg8bkB_G0mWa' + + 'xyjSIIXNA90' + rsaLength: 684 for name, parameters of @specVectorData test '- ' + name + ' encryption', => + keyName = util.format 'rsa-%s-nopass.private.pem', parameters.bits + @key = @keyFactory.createPrivateKeyFromFileSync path.resolve @fixturePath, keyName (sinon.stub @encryptionCipher, '_generateKey').returns new Buffer parameters.key, 'binary' (sinon.stub @encryptionCipher, '_generateIv').returns new Buffer parameters.iv, 'binary' - expected = parameters.ciphertext.substring 342 + expected = parameters.ciphertext.substring parameters.rsaLength actual = @encryptionCipher.encrypt @key, parameters.data actual = actual.toString 'binary' - actual = actual.substring 342 + actual = actual.substring parameters.rsaLength assert.strictEqual actual, expected test '- ' + name + ' decryption', => + keyName = util.format 'rsa-%s-nopass.private.pem', parameters.bits + @key = @keyFactory.createPrivateKeyFromFileSync path.resolve @fixturePath, keyName actual = @decryptionCipher.decrypt @key, parameters.ciphertext actual = actual.toString 'binary'