📄 iso9796test.java
字号:
if (!isSameAs(sig6, 1, data)) { fail("failed ISO9796-2 generation Test 6"); } if (!eng.verifySignature(data)) { fail("failed ISO9796-2 verify Test 6"); } } public void doTest7() throws Exception { byte[] salt = new byte[0]; RSAKeyParameters pubParameters = new RSAKeyParameters(false, mod6, pub6); RSAKeyParameters privParameters = new RSAKeyParameters(true, mod6, pri6); ParametersWithSalt sigParameters = new ParametersWithSalt(privParameters, salt); RSAEngine rsa = new RSAEngine(); byte[] data; // // ISO 9796-2 - PSS Signing // ISO9796d2PSSSigner eng = new ISO9796d2PSSSigner(rsa, new SHA1Digest(), 0, false); eng.init(true, sigParameters); eng.update(msg7[0]); eng.update(msg7, 1, msg7.length - 1); data = eng.generateSignature(); eng.init(false, pubParameters); if (!isSameAs(sig7, 0, data)) { fail("failed ISO9796-2 generation Test 7"); } eng.update(msg7[0]); eng.update(msg7, 1, msg7.length - 1); if (!eng.verifySignature(sig7)) { fail("failed ISO9796-2 verify Test 7"); } if (!isSameAs(msg7, 0, eng.getRecoveredMessage())) { fail("failed ISO9796-2 recovery Test 7"); } } public void doTest8() throws Exception { byte[] salt = Hex.decode("78E293203CBA1B7F92F05F4D171FF8CA3E738FF8"); RSAKeyParameters pubParameters = new RSAKeyParameters(false, mod6, pub6); RSAKeyParameters privParameters = new RSAKeyParameters(true, mod6, pri6); ParametersWithSalt sigParameters = new ParametersWithSalt(privParameters, salt); RSAEngine rsa = new RSAEngine(); byte[] data; // // ISO 9796-2 - PSS Signing // ISO9796d2PSSSigner eng = new ISO9796d2PSSSigner(rsa, new RIPEMD160Digest(), 20, false); eng.init(true, sigParameters); eng.update(msg8[0]); eng.update(msg8, 1, msg8.length - 1); data = eng.generateSignature(); eng.init(false, pubParameters); if (!isSameAs(sig8, 0, data)) { fail("failed ISO9796-2 generation Test 8"); } eng.update(msg8[0]); eng.update(msg8, 1, msg8.length - 1); if (!eng.verifySignature(sig8)) { fail("failed ISO9796-2 verify Test 8"); } } public void doTest9() throws Exception { RSAKeyParameters pubParameters = new RSAKeyParameters(false, mod6, pub6); RSAKeyParameters privParameters = new RSAKeyParameters(true, mod6, pri6); RSAEngine rsa = new RSAEngine(); byte[] data; // // ISO 9796-2 - PSS Signing // ISO9796d2PSSSigner eng = new ISO9796d2PSSSigner(rsa, new RIPEMD160Digest(), 0, true); eng.init(true, privParameters); eng.update(msg9[0]); eng.update(msg9, 1, msg9.length - 1); data = eng.generateSignature(); eng.init(false, pubParameters); if (!isSameAs(sig9, 0, data)) { fail("failed ISO9796-2 generation Test 9"); } eng.update(msg9[0]); eng.update(msg9, 1, msg9.length - 1); if (!eng.verifySignature(sig9)) { fail("failed ISO9796-2 verify Test 9"); } } public void doTest10() throws Exception { BigInteger mod = new BigInteger("B3ABE6D91A4020920F8B3847764ECB34C4EB64151A96FDE7B614DC986C810FF2FD73575BDF8532C06004C8B4C8B64F700A50AEC68C0701ED10E8D211A4EA554D", 16); BigInteger pubExp = new BigInteger("65537", 10); BigInteger priExp = new BigInteger("AEE76AE4716F77C5782838F328327012C097BD67E5E892E75C1356E372CCF8EE1AA2D2CBDFB4DA19F703743F7C0BA42B2D69202BA7338C294D1F8B6A5771FF41", 16); RSAKeyParameters pubParameters = new RSAKeyParameters(false, mod, pubExp); RSAKeyParameters privParameters = new RSAKeyParameters(true, mod, priExp); RSAEngine rsa = new RSAEngine(); byte[] data; // // ISO 9796-2 - PSS Signing // Digest dig = new SHA1Digest(); ISO9796d2PSSSigner eng = new ISO9796d2PSSSigner(rsa, dig, dig.getDigestSize()); // // as the padding is random this test needs to repeat a few times to // make sure // for (int i = 0; i != 500; i++) { eng.init(true, privParameters); eng.update(msg9[0]); eng.update(msg9, 1, msg9.length - 1); data = eng.generateSignature(); eng.init(false, pubParameters); eng.update(msg9[0]); eng.update(msg9, 1, msg9.length - 1); if (!eng.verifySignature(data)) { fail("failed ISO9796-2 verify Test 10"); } } } public void doTest11() throws Exception { BigInteger mod = new BigInteger("B3ABE6D91A4020920F8B3847764ECB34C4EB64151A96FDE7B614DC986C810FF2FD73575BDF8532C06004C8B4C8B64F700A50AEC68C0701ED10E8D211A4EA554D", 16); BigInteger pubExp = new BigInteger("65537", 10); BigInteger priExp = new BigInteger("AEE76AE4716F77C5782838F328327012C097BD67E5E892E75C1356E372CCF8EE1AA2D2CBDFB4DA19F703743F7C0BA42B2D69202BA7338C294D1F8B6A5771FF41", 16); RSAKeyParameters pubParameters = new RSAKeyParameters(false, mod, pubExp); RSAKeyParameters privParameters = new RSAKeyParameters(true, mod, priExp); RSAEngine rsa = new RSAEngine(); byte[] data; byte[] m1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; byte[] m2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; byte[] m3 = { 1, 2, 3, 4, 5, 6, 7, 8 }; // // ISO 9796-2 - PSS Signing // Digest dig = new SHA1Digest(); ISO9796d2PSSSigner eng = new ISO9796d2PSSSigner(rsa, dig, dig.getDigestSize()); // // check message bounds // eng.init(true, privParameters); eng.update(m1, 0, m1.length); data = eng.generateSignature(); eng.init(false, pubParameters); eng.update(m2, 0, m2.length); if (eng.verifySignature(data)) { fail("failed ISO9796-2 m2 verify Test 11"); } eng.init(false, pubParameters); eng.update(m3, 0, m3.length); if (eng.verifySignature(data)) { fail("failed ISO9796-2 m3 verify Test 11"); } eng.init(false, pubParameters); eng.update(m1, 0, m1.length); if (!eng.verifySignature(data)) { fail("failed ISO9796-2 verify Test 11"); } } public void doTest12() throws Exception { BigInteger mod = new BigInteger("B3ABE6D91A4020920F8B3847764ECB34C4EB64151A96FDE7B614DC986C810FF2FD73575BDF8532C06004C8B4C8B64F700A50AEC68C0701ED10E8D211A4EA554D", 16); BigInteger pubExp = new BigInteger("65537", 10); BigInteger priExp = new BigInteger("AEE76AE4716F77C5782838F328327012C097BD67E5E892E75C1356E372CCF8EE1AA2D2CBDFB4DA19F703743F7C0BA42B2D69202BA7338C294D1F8B6A5771FF41", 16); RSAKeyParameters pubParameters = new RSAKeyParameters(false, mod, pubExp); RSAKeyParameters privParameters = new RSAKeyParameters(true, mod, priExp); RSAEngine rsa = new RSAEngine(); byte[] data; byte[] m1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; byte[] m2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; byte[] m3 = { 1, 2, 3, 4, 5, 6, 7, 8 }; // // ISO 9796-2 - PSS Signing // Digest dig = new SHA1Digest(); ISO9796d2Signer eng = new ISO9796d2Signer(rsa, dig); // // check message bounds // eng.init(true, privParameters); eng.update(m1, 0, m1.length); data = eng.generateSignature(); eng.init(false, pubParameters); eng.update(m2, 0, m2.length); if (eng.verifySignature(data)) { fail("failed ISO9796-2 m2 verify Test 12"); } eng.init(false, pubParameters); eng.update(m3, 0, m3.length); if (eng.verifySignature(data)) { fail("failed ISO9796-2 m3 verify Test 12"); } eng.init(false, pubParameters); eng.update(m1, 0, m1.length); if (!eng.verifySignature(data)) { fail("failed ISO9796-2 verify Test 12"); } } public void performTest() throws Exception { doTest1(); doTest2(); doTest3(); doTest4(); doTest5(); doTest6(); doTest7(); doTest8(); doTest9(); doTest10(); doTest11(); doTest12(); } public static void main( String[] args) { runTest(new ISO9796Test()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -