Source Code Cross Referenced for OAEPTest.java in  » Security » Bouncy-Castle » org » bouncycastle » crypto » test » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Security » Bouncy Castle » org.bouncycastle.crypto.test 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        package org.bouncycastle.crypto.test;
002:
003:        import java.io.ByteArrayInputStream;
004:        import java.security.SecureRandom;
005:
006:        import org.bouncycastle.asn1.ASN1InputStream;
007:        import org.bouncycastle.asn1.ASN1Sequence;
008:        import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
009:        import org.bouncycastle.asn1.pkcs.RSAPrivateKeyStructure;
010:        import org.bouncycastle.asn1.x509.RSAPublicKeyStructure;
011:        import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
012:        import org.bouncycastle.crypto.AsymmetricBlockCipher;
013:        import org.bouncycastle.crypto.encodings.OAEPEncoding;
014:        import org.bouncycastle.crypto.engines.RSAEngine;
015:        import org.bouncycastle.crypto.params.ParametersWithRandom;
016:        import org.bouncycastle.crypto.params.RSAKeyParameters;
017:        import org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters;
018:        import org.bouncycastle.util.encoders.Hex;
019:        import org.bouncycastle.util.test.SimpleTestResult;
020:        import org.bouncycastle.util.test.Test;
021:        import org.bouncycastle.util.test.TestResult;
022:
023:        public class OAEPTest implements  Test {
024:            static byte[] pubKeyEnc1 = { (byte) 0x30, (byte) 0x5a, (byte) 0x30,
025:                    (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a,
026:                    (byte) 0x86, (byte) 0x48, (byte) 0x86, (byte) 0xf7,
027:                    (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x01,
028:                    (byte) 0x05, (byte) 0x00, (byte) 0x03, (byte) 0x49,
029:                    (byte) 0x00, (byte) 0x30, (byte) 0x46, (byte) 0x02,
030:                    (byte) 0x41, (byte) 0x00, (byte) 0xaa, (byte) 0x36,
031:                    (byte) 0xab, (byte) 0xce, (byte) 0x88, (byte) 0xac,
032:                    (byte) 0xfd, (byte) 0xff, (byte) 0x55, (byte) 0x52,
033:                    (byte) 0x3c, (byte) 0x7f, (byte) 0xc4, (byte) 0x52,
034:                    (byte) 0x3f, (byte) 0x90, (byte) 0xef, (byte) 0xa0,
035:                    (byte) 0x0d, (byte) 0xf3, (byte) 0x77, (byte) 0x4a,
036:                    (byte) 0x25, (byte) 0x9f, (byte) 0x2e, (byte) 0x62,
037:                    (byte) 0xb4, (byte) 0xc5, (byte) 0xd9, (byte) 0x9c,
038:                    (byte) 0xb5, (byte) 0xad, (byte) 0xb3, (byte) 0x00,
039:                    (byte) 0xa0, (byte) 0x28, (byte) 0x5e, (byte) 0x53,
040:                    (byte) 0x01, (byte) 0x93, (byte) 0x0e, (byte) 0x0c,
041:                    (byte) 0x70, (byte) 0xfb, (byte) 0x68, (byte) 0x76,
042:                    (byte) 0x93, (byte) 0x9c, (byte) 0xe6, (byte) 0x16,
043:                    (byte) 0xce, (byte) 0x62, (byte) 0x4a, (byte) 0x11,
044:                    (byte) 0xe0, (byte) 0x08, (byte) 0x6d, (byte) 0x34,
045:                    (byte) 0x1e, (byte) 0xbc, (byte) 0xac, (byte) 0xa0,
046:                    (byte) 0xa1, (byte) 0xf5, (byte) 0x02, (byte) 0x01,
047:                    (byte) 0x11 };
048:
049:            static byte[] privKeyEnc1 = { (byte) 0x30, (byte) 0x82,
050:                    (byte) 0x01, (byte) 0x52, (byte) 0x02, (byte) 0x01,
051:                    (byte) 0x00, (byte) 0x30, (byte) 0x0d, (byte) 0x06,
052:                    (byte) 0x09, (byte) 0x2a, (byte) 0x86, (byte) 0x48,
053:                    (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01,
054:                    (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x00,
055:                    (byte) 0x04, (byte) 0x82, (byte) 0x01, (byte) 0x3c,
056:                    (byte) 0x30, (byte) 0x82, (byte) 0x01, (byte) 0x38,
057:                    (byte) 0x02, (byte) 0x01, (byte) 0x00, (byte) 0x02,
058:                    (byte) 0x41, (byte) 0x00, (byte) 0xaa, (byte) 0x36,
059:                    (byte) 0xab, (byte) 0xce, (byte) 0x88, (byte) 0xac,
060:                    (byte) 0xfd, (byte) 0xff, (byte) 0x55, (byte) 0x52,
061:                    (byte) 0x3c, (byte) 0x7f, (byte) 0xc4, (byte) 0x52,
062:                    (byte) 0x3f, (byte) 0x90, (byte) 0xef, (byte) 0xa0,
063:                    (byte) 0x0d, (byte) 0xf3, (byte) 0x77, (byte) 0x4a,
064:                    (byte) 0x25, (byte) 0x9f, (byte) 0x2e, (byte) 0x62,
065:                    (byte) 0xb4, (byte) 0xc5, (byte) 0xd9, (byte) 0x9c,
066:                    (byte) 0xb5, (byte) 0xad, (byte) 0xb3, (byte) 0x00,
067:                    (byte) 0xa0, (byte) 0x28, (byte) 0x5e, (byte) 0x53,
068:                    (byte) 0x01, (byte) 0x93, (byte) 0x0e, (byte) 0x0c,
069:                    (byte) 0x70, (byte) 0xfb, (byte) 0x68, (byte) 0x76,
070:                    (byte) 0x93, (byte) 0x9c, (byte) 0xe6, (byte) 0x16,
071:                    (byte) 0xce, (byte) 0x62, (byte) 0x4a, (byte) 0x11,
072:                    (byte) 0xe0, (byte) 0x08, (byte) 0x6d, (byte) 0x34,
073:                    (byte) 0x1e, (byte) 0xbc, (byte) 0xac, (byte) 0xa0,
074:                    (byte) 0xa1, (byte) 0xf5, (byte) 0x02, (byte) 0x01,
075:                    (byte) 0x11, (byte) 0x02, (byte) 0x40, (byte) 0x0a,
076:                    (byte) 0x03, (byte) 0x37, (byte) 0x48, (byte) 0x62,
077:                    (byte) 0x64, (byte) 0x87, (byte) 0x69, (byte) 0x5f,
078:                    (byte) 0x5f, (byte) 0x30, (byte) 0xbc, (byte) 0x38,
079:                    (byte) 0xb9, (byte) 0x8b, (byte) 0x44, (byte) 0xc2,
080:                    (byte) 0xcd, (byte) 0x2d, (byte) 0xff, (byte) 0x43,
081:                    (byte) 0x40, (byte) 0x98, (byte) 0xcd, (byte) 0x20,
082:                    (byte) 0xd8, (byte) 0xa1, (byte) 0x38, (byte) 0xd0,
083:                    (byte) 0x90, (byte) 0xbf, (byte) 0x64, (byte) 0x79,
084:                    (byte) 0x7c, (byte) 0x3f, (byte) 0xa7, (byte) 0xa2,
085:                    (byte) 0xcd, (byte) 0xcb, (byte) 0x3c, (byte) 0xd1,
086:                    (byte) 0xe0, (byte) 0xbd, (byte) 0xba, (byte) 0x26,
087:                    (byte) 0x54, (byte) 0xb4, (byte) 0xf9, (byte) 0xdf,
088:                    (byte) 0x8e, (byte) 0x8a, (byte) 0xe5, (byte) 0x9d,
089:                    (byte) 0x73, (byte) 0x3d, (byte) 0x9f, (byte) 0x33,
090:                    (byte) 0xb3, (byte) 0x01, (byte) 0x62, (byte) 0x4a,
091:                    (byte) 0xfd, (byte) 0x1d, (byte) 0x51, (byte) 0x02,
092:                    (byte) 0x21, (byte) 0x00, (byte) 0xd8, (byte) 0x40,
093:                    (byte) 0xb4, (byte) 0x16, (byte) 0x66, (byte) 0xb4,
094:                    (byte) 0x2e, (byte) 0x92, (byte) 0xea, (byte) 0x0d,
095:                    (byte) 0xa3, (byte) 0xb4, (byte) 0x32, (byte) 0x04,
096:                    (byte) 0xb5, (byte) 0xcf, (byte) 0xce, (byte) 0x33,
097:                    (byte) 0x52, (byte) 0x52, (byte) 0x4d, (byte) 0x04,
098:                    (byte) 0x16, (byte) 0xa5, (byte) 0xa4, (byte) 0x41,
099:                    (byte) 0xe7, (byte) 0x00, (byte) 0xaf, (byte) 0x46,
100:                    (byte) 0x12, (byte) 0x0d, (byte) 0x02, (byte) 0x21,
101:                    (byte) 0x00, (byte) 0xc9, (byte) 0x7f, (byte) 0xb1,
102:                    (byte) 0xf0, (byte) 0x27, (byte) 0xf4, (byte) 0x53,
103:                    (byte) 0xf6, (byte) 0x34, (byte) 0x12, (byte) 0x33,
104:                    (byte) 0xea, (byte) 0xaa, (byte) 0xd1, (byte) 0xd9,
105:                    (byte) 0x35, (byte) 0x3f, (byte) 0x6c, (byte) 0x42,
106:                    (byte) 0xd0, (byte) 0x88, (byte) 0x66, (byte) 0xb1,
107:                    (byte) 0xd0, (byte) 0x5a, (byte) 0x0f, (byte) 0x20,
108:                    (byte) 0x35, (byte) 0x02, (byte) 0x8b, (byte) 0x9d,
109:                    (byte) 0x89, (byte) 0x02, (byte) 0x20, (byte) 0x59,
110:                    (byte) 0x0b, (byte) 0x95, (byte) 0x72, (byte) 0xa2,
111:                    (byte) 0xc2, (byte) 0xa9, (byte) 0xc4, (byte) 0x06,
112:                    (byte) 0x05, (byte) 0x9d, (byte) 0xc2, (byte) 0xab,
113:                    (byte) 0x2f, (byte) 0x1d, (byte) 0xaf, (byte) 0xeb,
114:                    (byte) 0x7e, (byte) 0x8b, (byte) 0x4f, (byte) 0x10,
115:                    (byte) 0xa7, (byte) 0x54, (byte) 0x9e, (byte) 0x8e,
116:                    (byte) 0xed, (byte) 0xf5, (byte) 0xb4, (byte) 0xfc,
117:                    (byte) 0xe0, (byte) 0x9e, (byte) 0x05, (byte) 0x02,
118:                    (byte) 0x21, (byte) 0x00, (byte) 0x8e, (byte) 0x3c,
119:                    (byte) 0x05, (byte) 0x21, (byte) 0xfe, (byte) 0x15,
120:                    (byte) 0xe0, (byte) 0xea, (byte) 0x06, (byte) 0xa3,
121:                    (byte) 0x6f, (byte) 0xf0, (byte) 0xf1, (byte) 0x0c,
122:                    (byte) 0x99, (byte) 0x52, (byte) 0xc3, (byte) 0x5b,
123:                    (byte) 0x7a, (byte) 0x75, (byte) 0x14, (byte) 0xfd,
124:                    (byte) 0x32, (byte) 0x38, (byte) 0xb8, (byte) 0x0a,
125:                    (byte) 0xad, (byte) 0x52, (byte) 0x98, (byte) 0x62,
126:                    (byte) 0x8d, (byte) 0x51, (byte) 0x02, (byte) 0x20,
127:                    (byte) 0x36, (byte) 0x3f, (byte) 0xf7, (byte) 0x18,
128:                    (byte) 0x9d, (byte) 0xa8, (byte) 0xe9, (byte) 0x0b,
129:                    (byte) 0x1d, (byte) 0x34, (byte) 0x1f, (byte) 0x71,
130:                    (byte) 0xd0, (byte) 0x9b, (byte) 0x76, (byte) 0xa8,
131:                    (byte) 0xa9, (byte) 0x43, (byte) 0xe1, (byte) 0x1d,
132:                    (byte) 0x10, (byte) 0xb2, (byte) 0x4d, (byte) 0x24,
133:                    (byte) 0x9f, (byte) 0x2d, (byte) 0xea, (byte) 0xfe,
134:                    (byte) 0xf8, (byte) 0x0c, (byte) 0x18, (byte) 0x26 };
135:
136:            static byte[] output1 = { (byte) 0x1b, (byte) 0x8f, (byte) 0x05,
137:                    (byte) 0xf9, (byte) 0xca, (byte) 0x1a, (byte) 0x79,
138:                    (byte) 0x52, (byte) 0x6e, (byte) 0x53, (byte) 0xf3,
139:                    (byte) 0xcc, (byte) 0x51, (byte) 0x4f, (byte) 0xdb,
140:                    (byte) 0x89, (byte) 0x2b, (byte) 0xfb, (byte) 0x91,
141:                    (byte) 0x93, (byte) 0x23, (byte) 0x1e, (byte) 0x78,
142:                    (byte) 0xb9, (byte) 0x92, (byte) 0xe6, (byte) 0x8d,
143:                    (byte) 0x50, (byte) 0xa4, (byte) 0x80, (byte) 0xcb,
144:                    (byte) 0x52, (byte) 0x33, (byte) 0x89, (byte) 0x5c,
145:                    (byte) 0x74, (byte) 0x95, (byte) 0x8d, (byte) 0x5d,
146:                    (byte) 0x02, (byte) 0xab, (byte) 0x8c, (byte) 0x0f,
147:                    (byte) 0xd0, (byte) 0x40, (byte) 0xeb, (byte) 0x58,
148:                    (byte) 0x44, (byte) 0xb0, (byte) 0x05, (byte) 0xc3,
149:                    (byte) 0x9e, (byte) 0xd8, (byte) 0x27, (byte) 0x4a,
150:                    (byte) 0x9d, (byte) 0xbf, (byte) 0xa8, (byte) 0x06,
151:                    (byte) 0x71, (byte) 0x40, (byte) 0x94, (byte) 0x39,
152:                    (byte) 0xd2 };
153:
154:            static byte[] pubKeyEnc2 = { (byte) 0x30, (byte) 0x4c, (byte) 0x30,
155:                    (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a,
156:                    (byte) 0x86, (byte) 0x48, (byte) 0x86, (byte) 0xf7,
157:                    (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x01,
158:                    (byte) 0x05, (byte) 0x00, (byte) 0x03, (byte) 0x3b,
159:                    (byte) 0x00, (byte) 0x30, (byte) 0x38, (byte) 0x02,
160:                    (byte) 0x33, (byte) 0x00, (byte) 0xa3, (byte) 0x07,
161:                    (byte) 0x9a, (byte) 0x90, (byte) 0xdf, (byte) 0x0d,
162:                    (byte) 0xfd, (byte) 0x72, (byte) 0xac, (byte) 0x09,
163:                    (byte) 0x0c, (byte) 0xcc, (byte) 0x2a, (byte) 0x78,
164:                    (byte) 0xb8, (byte) 0x74, (byte) 0x13, (byte) 0x13,
165:                    (byte) 0x3e, (byte) 0x40, (byte) 0x75, (byte) 0x9c,
166:                    (byte) 0x98, (byte) 0xfa, (byte) 0xf8, (byte) 0x20,
167:                    (byte) 0x4f, (byte) 0x35, (byte) 0x8a, (byte) 0x0b,
168:                    (byte) 0x26, (byte) 0x3c, (byte) 0x67, (byte) 0x70,
169:                    (byte) 0xe7, (byte) 0x83, (byte) 0xa9, (byte) 0x3b,
170:                    (byte) 0x69, (byte) 0x71, (byte) 0xb7, (byte) 0x37,
171:                    (byte) 0x79, (byte) 0xd2, (byte) 0x71, (byte) 0x7b,
172:                    (byte) 0xe8, (byte) 0x34, (byte) 0x77, (byte) 0xcf,
173:                    (byte) 0x02, (byte) 0x01, (byte) 0x03 };
174:
175:            static byte[] privKeyEnc2 = { (byte) 0x30, (byte) 0x82,
176:                    (byte) 0x01, (byte) 0x13, (byte) 0x02, (byte) 0x01,
177:                    (byte) 0x00, (byte) 0x30, (byte) 0x0d, (byte) 0x06,
178:                    (byte) 0x09, (byte) 0x2a, (byte) 0x86, (byte) 0x48,
179:                    (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01,
180:                    (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x00,
181:                    (byte) 0x04, (byte) 0x81, (byte) 0xfe, (byte) 0x30,
182:                    (byte) 0x81, (byte) 0xfb, (byte) 0x02, (byte) 0x01,
183:                    (byte) 0x00, (byte) 0x02, (byte) 0x33, (byte) 0x00,
184:                    (byte) 0xa3, (byte) 0x07, (byte) 0x9a, (byte) 0x90,
185:                    (byte) 0xdf, (byte) 0x0d, (byte) 0xfd, (byte) 0x72,
186:                    (byte) 0xac, (byte) 0x09, (byte) 0x0c, (byte) 0xcc,
187:                    (byte) 0x2a, (byte) 0x78, (byte) 0xb8, (byte) 0x74,
188:                    (byte) 0x13, (byte) 0x13, (byte) 0x3e, (byte) 0x40,
189:                    (byte) 0x75, (byte) 0x9c, (byte) 0x98, (byte) 0xfa,
190:                    (byte) 0xf8, (byte) 0x20, (byte) 0x4f, (byte) 0x35,
191:                    (byte) 0x8a, (byte) 0x0b, (byte) 0x26, (byte) 0x3c,
192:                    (byte) 0x67, (byte) 0x70, (byte) 0xe7, (byte) 0x83,
193:                    (byte) 0xa9, (byte) 0x3b, (byte) 0x69, (byte) 0x71,
194:                    (byte) 0xb7, (byte) 0x37, (byte) 0x79, (byte) 0xd2,
195:                    (byte) 0x71, (byte) 0x7b, (byte) 0xe8, (byte) 0x34,
196:                    (byte) 0x77, (byte) 0xcf, (byte) 0x02, (byte) 0x01,
197:                    (byte) 0x03, (byte) 0x02, (byte) 0x32, (byte) 0x6c,
198:                    (byte) 0xaf, (byte) 0xbc, (byte) 0x60, (byte) 0x94,
199:                    (byte) 0xb3, (byte) 0xfe, (byte) 0x4c, (byte) 0x72,
200:                    (byte) 0xb0, (byte) 0xb3, (byte) 0x32, (byte) 0xc6,
201:                    (byte) 0xfb, (byte) 0x25, (byte) 0xa2, (byte) 0xb7,
202:                    (byte) 0x62, (byte) 0x29, (byte) 0x80, (byte) 0x4e,
203:                    (byte) 0x68, (byte) 0x65, (byte) 0xfc, (byte) 0xa4,
204:                    (byte) 0x5a, (byte) 0x74, (byte) 0xdf, (byte) 0x0f,
205:                    (byte) 0x8f, (byte) 0xb8, (byte) 0x41, (byte) 0x3b,
206:                    (byte) 0x52, (byte) 0xc0, (byte) 0xd0, (byte) 0xe5,
207:                    (byte) 0x3d, (byte) 0x9b, (byte) 0x59, (byte) 0x0f,
208:                    (byte) 0xf1, (byte) 0x9b, (byte) 0xe7, (byte) 0x9f,
209:                    (byte) 0x49, (byte) 0xdd, (byte) 0x21, (byte) 0xe5,
210:                    (byte) 0xeb, (byte) 0x02, (byte) 0x1a, (byte) 0x00,
211:                    (byte) 0xcf, (byte) 0x20, (byte) 0x35, (byte) 0x02,
212:                    (byte) 0x8b, (byte) 0x9d, (byte) 0x86, (byte) 0x98,
213:                    (byte) 0x40, (byte) 0xb4, (byte) 0x16, (byte) 0x66,
214:                    (byte) 0xb4, (byte) 0x2e, (byte) 0x92, (byte) 0xea,
215:                    (byte) 0x0d, (byte) 0xa3, (byte) 0xb4, (byte) 0x32,
216:                    (byte) 0x04, (byte) 0xb5, (byte) 0xcf, (byte) 0xce,
217:                    (byte) 0x91, (byte) 0x02, (byte) 0x1a, (byte) 0x00,
218:                    (byte) 0xc9, (byte) 0x7f, (byte) 0xb1, (byte) 0xf0,
219:                    (byte) 0x27, (byte) 0xf4, (byte) 0x53, (byte) 0xf6,
220:                    (byte) 0x34, (byte) 0x12, (byte) 0x33, (byte) 0xea,
221:                    (byte) 0xaa, (byte) 0xd1, (byte) 0xd9, (byte) 0x35,
222:                    (byte) 0x3f, (byte) 0x6c, (byte) 0x42, (byte) 0xd0,
223:                    (byte) 0x88, (byte) 0x66, (byte) 0xb1, (byte) 0xd0,
224:                    (byte) 0x5f, (byte) 0x02, (byte) 0x1a, (byte) 0x00,
225:                    (byte) 0x8a, (byte) 0x15, (byte) 0x78, (byte) 0xac,
226:                    (byte) 0x5d, (byte) 0x13, (byte) 0xaf, (byte) 0x10,
227:                    (byte) 0x2b, (byte) 0x22, (byte) 0xb9, (byte) 0x99,
228:                    (byte) 0xcd, (byte) 0x74, (byte) 0x61, (byte) 0xf1,
229:                    (byte) 0x5e, (byte) 0x6d, (byte) 0x22, (byte) 0xcc,
230:                    (byte) 0x03, (byte) 0x23, (byte) 0xdf, (byte) 0xdf,
231:                    (byte) 0x0b, (byte) 0x02, (byte) 0x1a, (byte) 0x00,
232:                    (byte) 0x86, (byte) 0x55, (byte) 0x21, (byte) 0x4a,
233:                    (byte) 0xc5, (byte) 0x4d, (byte) 0x8d, (byte) 0x4e,
234:                    (byte) 0xcd, (byte) 0x61, (byte) 0x77, (byte) 0xf1,
235:                    (byte) 0xc7, (byte) 0x36, (byte) 0x90, (byte) 0xce,
236:                    (byte) 0x2a, (byte) 0x48, (byte) 0x2c, (byte) 0x8b,
237:                    (byte) 0x05, (byte) 0x99, (byte) 0xcb, (byte) 0xe0,
238:                    (byte) 0x3f, (byte) 0x02, (byte) 0x1a, (byte) 0x00,
239:                    (byte) 0x83, (byte) 0xef, (byte) 0xef, (byte) 0xb8,
240:                    (byte) 0xa9, (byte) 0xa4, (byte) 0x0d, (byte) 0x1d,
241:                    (byte) 0xb6, (byte) 0xed, (byte) 0x98, (byte) 0xad,
242:                    (byte) 0x84, (byte) 0xed, (byte) 0x13, (byte) 0x35,
243:                    (byte) 0xdc, (byte) 0xc1, (byte) 0x08, (byte) 0xf3,
244:                    (byte) 0x22, (byte) 0xd0, (byte) 0x57, (byte) 0xcf,
245:                    (byte) 0x8d };
246:
247:            static byte[] output2 = { (byte) 0x14, (byte) 0xbd, (byte) 0xdd,
248:                    (byte) 0x28, (byte) 0xc9, (byte) 0x83, (byte) 0x35,
249:                    (byte) 0x19, (byte) 0x23, (byte) 0x80, (byte) 0xe8,
250:                    (byte) 0xe5, (byte) 0x49, (byte) 0xb1, (byte) 0x58,
251:                    (byte) 0x2a, (byte) 0x8b, (byte) 0x40, (byte) 0xb4,
252:                    (byte) 0x48, (byte) 0x6d, (byte) 0x03, (byte) 0xa6,
253:                    (byte) 0xa5, (byte) 0x31, (byte) 0x1f, (byte) 0x1f,
254:                    (byte) 0xd5, (byte) 0xf0, (byte) 0xa1, (byte) 0x80,
255:                    (byte) 0xe4, (byte) 0x17, (byte) 0x53, (byte) 0x03,
256:                    (byte) 0x29, (byte) 0xa9, (byte) 0x34, (byte) 0x90,
257:                    (byte) 0x74, (byte) 0xb1, (byte) 0x52, (byte) 0x13,
258:                    (byte) 0x54, (byte) 0x29, (byte) 0x08, (byte) 0x24,
259:                    (byte) 0x52, (byte) 0x62, (byte) 0x51 };
260:
261:            static byte[] pubKeyEnc3 = { (byte) 0x30, (byte) 0x81, (byte) 0x9d,
262:                    (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09,
263:                    (byte) 0x2a, (byte) 0x86, (byte) 0x48, (byte) 0x86,
264:                    (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01,
265:                    (byte) 0x01, (byte) 0x05, (byte) 0x00, (byte) 0x03,
266:                    (byte) 0x81, (byte) 0x8b, (byte) 0x00, (byte) 0x30,
267:                    (byte) 0x81, (byte) 0x87, (byte) 0x02, (byte) 0x81,
268:                    (byte) 0x81, (byte) 0x00, (byte) 0xbb, (byte) 0xf8,
269:                    (byte) 0x2f, (byte) 0x09, (byte) 0x06, (byte) 0x82,
270:                    (byte) 0xce, (byte) 0x9c, (byte) 0x23, (byte) 0x38,
271:                    (byte) 0xac, (byte) 0x2b, (byte) 0x9d, (byte) 0xa8,
272:                    (byte) 0x71, (byte) 0xf7, (byte) 0x36, (byte) 0x8d,
273:                    (byte) 0x07, (byte) 0xee, (byte) 0xd4, (byte) 0x10,
274:                    (byte) 0x43, (byte) 0xa4, (byte) 0x40, (byte) 0xd6,
275:                    (byte) 0xb6, (byte) 0xf0, (byte) 0x74, (byte) 0x54,
276:                    (byte) 0xf5, (byte) 0x1f, (byte) 0xb8, (byte) 0xdf,
277:                    (byte) 0xba, (byte) 0xaf, (byte) 0x03, (byte) 0x5c,
278:                    (byte) 0x02, (byte) 0xab, (byte) 0x61, (byte) 0xea,
279:                    (byte) 0x48, (byte) 0xce, (byte) 0xeb, (byte) 0x6f,
280:                    (byte) 0xcd, (byte) 0x48, (byte) 0x76, (byte) 0xed,
281:                    (byte) 0x52, (byte) 0x0d, (byte) 0x60, (byte) 0xe1,
282:                    (byte) 0xec, (byte) 0x46, (byte) 0x19, (byte) 0x71,
283:                    (byte) 0x9d, (byte) 0x8a, (byte) 0x5b, (byte) 0x8b,
284:                    (byte) 0x80, (byte) 0x7f, (byte) 0xaf, (byte) 0xb8,
285:                    (byte) 0xe0, (byte) 0xa3, (byte) 0xdf, (byte) 0xc7,
286:                    (byte) 0x37, (byte) 0x72, (byte) 0x3e, (byte) 0xe6,
287:                    (byte) 0xb4, (byte) 0xb7, (byte) 0xd9, (byte) 0x3a,
288:                    (byte) 0x25, (byte) 0x84, (byte) 0xee, (byte) 0x6a,
289:                    (byte) 0x64, (byte) 0x9d, (byte) 0x06, (byte) 0x09,
290:                    (byte) 0x53, (byte) 0x74, (byte) 0x88, (byte) 0x34,
291:                    (byte) 0xb2, (byte) 0x45, (byte) 0x45, (byte) 0x98,
292:                    (byte) 0x39, (byte) 0x4e, (byte) 0xe0, (byte) 0xaa,
293:                    (byte) 0xb1, (byte) 0x2d, (byte) 0x7b, (byte) 0x61,
294:                    (byte) 0xa5, (byte) 0x1f, (byte) 0x52, (byte) 0x7a,
295:                    (byte) 0x9a, (byte) 0x41, (byte) 0xf6, (byte) 0xc1,
296:                    (byte) 0x68, (byte) 0x7f, (byte) 0xe2, (byte) 0x53,
297:                    (byte) 0x72, (byte) 0x98, (byte) 0xca, (byte) 0x2a,
298:                    (byte) 0x8f, (byte) 0x59, (byte) 0x46, (byte) 0xf8,
299:                    (byte) 0xe5, (byte) 0xfd, (byte) 0x09, (byte) 0x1d,
300:                    (byte) 0xbd, (byte) 0xcb, (byte) 0x02, (byte) 0x01,
301:                    (byte) 0x11 };
302:
303:            static byte[] privKeyEnc3 = { (byte) 0x30, (byte) 0x82,
304:                    (byte) 0x02, (byte) 0x75, (byte) 0x02, (byte) 0x01,
305:                    (byte) 0x00, (byte) 0x30, (byte) 0x0d, (byte) 0x06,
306:                    (byte) 0x09, (byte) 0x2a, (byte) 0x86, (byte) 0x48,
307:                    (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01,
308:                    (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x00,
309:                    (byte) 0x04, (byte) 0x82, (byte) 0x02, (byte) 0x5f,
310:                    (byte) 0x30, (byte) 0x82, (byte) 0x02, (byte) 0x5b,
311:                    (byte) 0x02, (byte) 0x01, (byte) 0x00, (byte) 0x02,
312:                    (byte) 0x81, (byte) 0x81, (byte) 0x00, (byte) 0xbb,
313:                    (byte) 0xf8, (byte) 0x2f, (byte) 0x09, (byte) 0x06,
314:                    (byte) 0x82, (byte) 0xce, (byte) 0x9c, (byte) 0x23,
315:                    (byte) 0x38, (byte) 0xac, (byte) 0x2b, (byte) 0x9d,
316:                    (byte) 0xa8, (byte) 0x71, (byte) 0xf7, (byte) 0x36,
317:                    (byte) 0x8d, (byte) 0x07, (byte) 0xee, (byte) 0xd4,
318:                    (byte) 0x10, (byte) 0x43, (byte) 0xa4, (byte) 0x40,
319:                    (byte) 0xd6, (byte) 0xb6, (byte) 0xf0, (byte) 0x74,
320:                    (byte) 0x54, (byte) 0xf5, (byte) 0x1f, (byte) 0xb8,
321:                    (byte) 0xdf, (byte) 0xba, (byte) 0xaf, (byte) 0x03,
322:                    (byte) 0x5c, (byte) 0x02, (byte) 0xab, (byte) 0x61,
323:                    (byte) 0xea, (byte) 0x48, (byte) 0xce, (byte) 0xeb,
324:                    (byte) 0x6f, (byte) 0xcd, (byte) 0x48, (byte) 0x76,
325:                    (byte) 0xed, (byte) 0x52, (byte) 0x0d, (byte) 0x60,
326:                    (byte) 0xe1, (byte) 0xec, (byte) 0x46, (byte) 0x19,
327:                    (byte) 0x71, (byte) 0x9d, (byte) 0x8a, (byte) 0x5b,
328:                    (byte) 0x8b, (byte) 0x80, (byte) 0x7f, (byte) 0xaf,
329:                    (byte) 0xb8, (byte) 0xe0, (byte) 0xa3, (byte) 0xdf,
330:                    (byte) 0xc7, (byte) 0x37, (byte) 0x72, (byte) 0x3e,
331:                    (byte) 0xe6, (byte) 0xb4, (byte) 0xb7, (byte) 0xd9,
332:                    (byte) 0x3a, (byte) 0x25, (byte) 0x84, (byte) 0xee,
333:                    (byte) 0x6a, (byte) 0x64, (byte) 0x9d, (byte) 0x06,
334:                    (byte) 0x09, (byte) 0x53, (byte) 0x74, (byte) 0x88,
335:                    (byte) 0x34, (byte) 0xb2, (byte) 0x45, (byte) 0x45,
336:                    (byte) 0x98, (byte) 0x39, (byte) 0x4e, (byte) 0xe0,
337:                    (byte) 0xaa, (byte) 0xb1, (byte) 0x2d, (byte) 0x7b,
338:                    (byte) 0x61, (byte) 0xa5, (byte) 0x1f, (byte) 0x52,
339:                    (byte) 0x7a, (byte) 0x9a, (byte) 0x41, (byte) 0xf6,
340:                    (byte) 0xc1, (byte) 0x68, (byte) 0x7f, (byte) 0xe2,
341:                    (byte) 0x53, (byte) 0x72, (byte) 0x98, (byte) 0xca,
342:                    (byte) 0x2a, (byte) 0x8f, (byte) 0x59, (byte) 0x46,
343:                    (byte) 0xf8, (byte) 0xe5, (byte) 0xfd, (byte) 0x09,
344:                    (byte) 0x1d, (byte) 0xbd, (byte) 0xcb, (byte) 0x02,
345:                    (byte) 0x01, (byte) 0x11, (byte) 0x02, (byte) 0x81,
346:                    (byte) 0x81, (byte) 0x00, (byte) 0xa5, (byte) 0xda,
347:                    (byte) 0xfc, (byte) 0x53, (byte) 0x41, (byte) 0xfa,
348:                    (byte) 0xf2, (byte) 0x89, (byte) 0xc4, (byte) 0xb9,
349:                    (byte) 0x88, (byte) 0xdb, (byte) 0x30, (byte) 0xc1,
350:                    (byte) 0xcd, (byte) 0xf8, (byte) 0x3f, (byte) 0x31,
351:                    (byte) 0x25, (byte) 0x1e, (byte) 0x06, (byte) 0x68,
352:                    (byte) 0xb4, (byte) 0x27, (byte) 0x84, (byte) 0x81,
353:                    (byte) 0x38, (byte) 0x01, (byte) 0x57, (byte) 0x96,
354:                    (byte) 0x41, (byte) 0xb2, (byte) 0x94, (byte) 0x10,
355:                    (byte) 0xb3, (byte) 0xc7, (byte) 0x99, (byte) 0x8d,
356:                    (byte) 0x6b, (byte) 0xc4, (byte) 0x65, (byte) 0x74,
357:                    (byte) 0x5e, (byte) 0x5c, (byte) 0x39, (byte) 0x26,
358:                    (byte) 0x69, (byte) 0xd6, (byte) 0x87, (byte) 0x0d,
359:                    (byte) 0xa2, (byte) 0xc0, (byte) 0x82, (byte) 0xa9,
360:                    (byte) 0x39, (byte) 0xe3, (byte) 0x7f, (byte) 0xdc,
361:                    (byte) 0xb8, (byte) 0x2e, (byte) 0xc9, (byte) 0x3e,
362:                    (byte) 0xda, (byte) 0xc9, (byte) 0x7f, (byte) 0xf3,
363:                    (byte) 0xad, (byte) 0x59, (byte) 0x50, (byte) 0xac,
364:                    (byte) 0xcf, (byte) 0xbc, (byte) 0x11, (byte) 0x1c,
365:                    (byte) 0x76, (byte) 0xf1, (byte) 0xa9, (byte) 0x52,
366:                    (byte) 0x94, (byte) 0x44, (byte) 0xe5, (byte) 0x6a,
367:                    (byte) 0xaf, (byte) 0x68, (byte) 0xc5, (byte) 0x6c,
368:                    (byte) 0x09, (byte) 0x2c, (byte) 0xd3, (byte) 0x8d,
369:                    (byte) 0xc3, (byte) 0xbe, (byte) 0xf5, (byte) 0xd2,
370:                    (byte) 0x0a, (byte) 0x93, (byte) 0x99, (byte) 0x26,
371:                    (byte) 0xed, (byte) 0x4f, (byte) 0x74, (byte) 0xa1,
372:                    (byte) 0x3e, (byte) 0xdd, (byte) 0xfb, (byte) 0xe1,
373:                    (byte) 0xa1, (byte) 0xce, (byte) 0xcc, (byte) 0x48,
374:                    (byte) 0x94, (byte) 0xaf, (byte) 0x94, (byte) 0x28,
375:                    (byte) 0xc2, (byte) 0xb7, (byte) 0xb8, (byte) 0x88,
376:                    (byte) 0x3f, (byte) 0xe4, (byte) 0x46, (byte) 0x3a,
377:                    (byte) 0x4b, (byte) 0xc8, (byte) 0x5b, (byte) 0x1c,
378:                    (byte) 0xb3, (byte) 0xc1, (byte) 0x02, (byte) 0x41,
379:                    (byte) 0x00, (byte) 0xee, (byte) 0xcf, (byte) 0xae,
380:                    (byte) 0x81, (byte) 0xb1, (byte) 0xb9, (byte) 0xb3,
381:                    (byte) 0xc9, (byte) 0x08, (byte) 0x81, (byte) 0x0b,
382:                    (byte) 0x10, (byte) 0xa1, (byte) 0xb5, (byte) 0x60,
383:                    (byte) 0x01, (byte) 0x99, (byte) 0xeb, (byte) 0x9f,
384:                    (byte) 0x44, (byte) 0xae, (byte) 0xf4, (byte) 0xfd,
385:                    (byte) 0xa4, (byte) 0x93, (byte) 0xb8, (byte) 0x1a,
386:                    (byte) 0x9e, (byte) 0x3d, (byte) 0x84, (byte) 0xf6,
387:                    (byte) 0x32, (byte) 0x12, (byte) 0x4e, (byte) 0xf0,
388:                    (byte) 0x23, (byte) 0x6e, (byte) 0x5d, (byte) 0x1e,
389:                    (byte) 0x3b, (byte) 0x7e, (byte) 0x28, (byte) 0xfa,
390:                    (byte) 0xe7, (byte) 0xaa, (byte) 0x04, (byte) 0x0a,
391:                    (byte) 0x2d, (byte) 0x5b, (byte) 0x25, (byte) 0x21,
392:                    (byte) 0x76, (byte) 0x45, (byte) 0x9d, (byte) 0x1f,
393:                    (byte) 0x39, (byte) 0x75, (byte) 0x41, (byte) 0xba,
394:                    (byte) 0x2a, (byte) 0x58, (byte) 0xfb, (byte) 0x65,
395:                    (byte) 0x99, (byte) 0x02, (byte) 0x41, (byte) 0x00,
396:                    (byte) 0xc9, (byte) 0x7f, (byte) 0xb1, (byte) 0xf0,
397:                    (byte) 0x27, (byte) 0xf4, (byte) 0x53, (byte) 0xf6,
398:                    (byte) 0x34, (byte) 0x12, (byte) 0x33, (byte) 0xea,
399:                    (byte) 0xaa, (byte) 0xd1, (byte) 0xd9, (byte) 0x35,
400:                    (byte) 0x3f, (byte) 0x6c, (byte) 0x42, (byte) 0xd0,
401:                    (byte) 0x88, (byte) 0x66, (byte) 0xb1, (byte) 0xd0,
402:                    (byte) 0x5a, (byte) 0x0f, (byte) 0x20, (byte) 0x35,
403:                    (byte) 0x02, (byte) 0x8b, (byte) 0x9d, (byte) 0x86,
404:                    (byte) 0x98, (byte) 0x40, (byte) 0xb4, (byte) 0x16,
405:                    (byte) 0x66, (byte) 0xb4, (byte) 0x2e, (byte) 0x92,
406:                    (byte) 0xea, (byte) 0x0d, (byte) 0xa3, (byte) 0xb4,
407:                    (byte) 0x32, (byte) 0x04, (byte) 0xb5, (byte) 0xcf,
408:                    (byte) 0xce, (byte) 0x33, (byte) 0x52, (byte) 0x52,
409:                    (byte) 0x4d, (byte) 0x04, (byte) 0x16, (byte) 0xa5,
410:                    (byte) 0xa4, (byte) 0x41, (byte) 0xe7, (byte) 0x00,
411:                    (byte) 0xaf, (byte) 0x46, (byte) 0x15, (byte) 0x03,
412:                    (byte) 0x02, (byte) 0x40, (byte) 0x54, (byte) 0x49,
413:                    (byte) 0x4c, (byte) 0xa6, (byte) 0x3e, (byte) 0xba,
414:                    (byte) 0x03, (byte) 0x37, (byte) 0xe4, (byte) 0xe2,
415:                    (byte) 0x40, (byte) 0x23, (byte) 0xfc, (byte) 0xd6,
416:                    (byte) 0x9a, (byte) 0x5a, (byte) 0xeb, (byte) 0x07,
417:                    (byte) 0xdd, (byte) 0xdc, (byte) 0x01, (byte) 0x83,
418:                    (byte) 0xa4, (byte) 0xd0, (byte) 0xac, (byte) 0x9b,
419:                    (byte) 0x54, (byte) 0xb0, (byte) 0x51, (byte) 0xf2,
420:                    (byte) 0xb1, (byte) 0x3e, (byte) 0xd9, (byte) 0x49,
421:                    (byte) 0x09, (byte) 0x75, (byte) 0xea, (byte) 0xb7,
422:                    (byte) 0x74, (byte) 0x14, (byte) 0xff, (byte) 0x59,
423:                    (byte) 0xc1, (byte) 0xf7, (byte) 0x69, (byte) 0x2e,
424:                    (byte) 0x9a, (byte) 0x2e, (byte) 0x20, (byte) 0x2b,
425:                    (byte) 0x38, (byte) 0xfc, (byte) 0x91, (byte) 0x0a,
426:                    (byte) 0x47, (byte) 0x41, (byte) 0x74, (byte) 0xad,
427:                    (byte) 0xc9, (byte) 0x3c, (byte) 0x1f, (byte) 0x67,
428:                    (byte) 0xc9, (byte) 0x81, (byte) 0x02, (byte) 0x40,
429:                    (byte) 0x47, (byte) 0x1e, (byte) 0x02, (byte) 0x90,
430:                    (byte) 0xff, (byte) 0x0a, (byte) 0xf0, (byte) 0x75,
431:                    (byte) 0x03, (byte) 0x51, (byte) 0xb7, (byte) 0xf8,
432:                    (byte) 0x78, (byte) 0x86, (byte) 0x4c, (byte) 0xa9,
433:                    (byte) 0x61, (byte) 0xad, (byte) 0xbd, (byte) 0x3a,
434:                    (byte) 0x8a, (byte) 0x7e, (byte) 0x99, (byte) 0x1c,
435:                    (byte) 0x5c, (byte) 0x05, (byte) 0x56, (byte) 0xa9,
436:                    (byte) 0x4c, (byte) 0x31, (byte) 0x46, (byte) 0xa7,
437:                    (byte) 0xf9, (byte) 0x80, (byte) 0x3f, (byte) 0x8f,
438:                    (byte) 0x6f, (byte) 0x8a, (byte) 0xe3, (byte) 0x42,
439:                    (byte) 0xe9, (byte) 0x31, (byte) 0xfd, (byte) 0x8a,
440:                    (byte) 0xe4, (byte) 0x7a, (byte) 0x22, (byte) 0x0d,
441:                    (byte) 0x1b, (byte) 0x99, (byte) 0xa4, (byte) 0x95,
442:                    (byte) 0x84, (byte) 0x98, (byte) 0x07, (byte) 0xfe,
443:                    (byte) 0x39, (byte) 0xf9, (byte) 0x24, (byte) 0x5a,
444:                    (byte) 0x98, (byte) 0x36, (byte) 0xda, (byte) 0x3d,
445:                    (byte) 0x02, (byte) 0x41, (byte) 0x00, (byte) 0xb0,
446:                    (byte) 0x6c, (byte) 0x4f, (byte) 0xda, (byte) 0xbb,
447:                    (byte) 0x63, (byte) 0x01, (byte) 0x19, (byte) 0x8d,
448:                    (byte) 0x26, (byte) 0x5b, (byte) 0xdb, (byte) 0xae,
449:                    (byte) 0x94, (byte) 0x23, (byte) 0xb3, (byte) 0x80,
450:                    (byte) 0xf2, (byte) 0x71, (byte) 0xf7, (byte) 0x34,
451:                    (byte) 0x53, (byte) 0x88, (byte) 0x50, (byte) 0x93,
452:                    (byte) 0x07, (byte) 0x7f, (byte) 0xcd, (byte) 0x39,
453:                    (byte) 0xe2, (byte) 0x11, (byte) 0x9f, (byte) 0xc9,
454:                    (byte) 0x86, (byte) 0x32, (byte) 0x15, (byte) 0x4f,
455:                    (byte) 0x58, (byte) 0x83, (byte) 0xb1, (byte) 0x67,
456:                    (byte) 0xa9, (byte) 0x67, (byte) 0xbf, (byte) 0x40,
457:                    (byte) 0x2b, (byte) 0x4e, (byte) 0x9e, (byte) 0x2e,
458:                    (byte) 0x0f, (byte) 0x96, (byte) 0x56, (byte) 0xe6,
459:                    (byte) 0x98, (byte) 0xea, (byte) 0x36, (byte) 0x66,
460:                    (byte) 0xed, (byte) 0xfb, (byte) 0x25, (byte) 0x79,
461:                    (byte) 0x80, (byte) 0x39, (byte) 0xf7 };
462:
463:            static byte[] output3 = Hex
464:                    .decode("b8246b56a6ed5881aeb585d9a25b2ad790c417e080681bf1ac2bc3deb69d8bce"
465:                            + "f0c4366fec400af052a72e9b0effb5b3f2f192dbeaca03c12740057113bf1f06"
466:                            + "69ac22e9f3a7852e3c15d913cab0b8863a95c99294ce8674214954610346f4d4"
467:                            + "74b26f7c48b42ee68e1f572a1fc4026ac456b4f59f7b621ea1b9d88f64202fb1");
468:
469:            private class Rand extends SecureRandom {
470:                byte[] seed = { (byte) 0xaa, (byte) 0xfd, (byte) 0x12,
471:                        (byte) 0xf6, (byte) 0x59, (byte) 0xca, (byte) 0xe6,
472:                        (byte) 0x34, (byte) 0x89, (byte) 0xb4, (byte) 0x79,
473:                        (byte) 0xe5, (byte) 0x07, (byte) 0x6d, (byte) 0xde,
474:                        (byte) 0xc2, (byte) 0xf0, (byte) 0x6c, (byte) 0xb5,
475:                        (byte) 0x8f };
476:
477:                public void nextBytes(byte[] bytes) {
478:                    System.arraycopy(seed, 0, bytes, 0, bytes.length);
479:                }
480:            }
481:
482:            private class OAEPTester implements  Test {
483:                private int id;
484:                private byte[] pubKeyEnc;
485:                private byte[] privKeyEnc;
486:                private byte[] output;
487:
488:                OAEPTester(int id, byte[] pubKeyEnc, byte[] privKeyEnc,
489:                        byte[] output) {
490:                    this .id = id;
491:                    this .pubKeyEnc = pubKeyEnc;
492:                    this .privKeyEnc = privKeyEnc;
493:                    this .output = output;
494:                }
495:
496:                public String getName() {
497:                    return "OAEPTest " + id;
498:                }
499:
500:                public TestResult perform() {
501:                    ByteArrayInputStream bIn = new ByteArrayInputStream(
502:                            pubKeyEnc);
503:                    ASN1InputStream dIn = new ASN1InputStream(bIn);
504:
505:                    //
506:                    // extract the public key info.
507:                    //
508:                    RSAPublicKeyStructure pubStruct;
509:
510:                    try {
511:                        pubStruct = new RSAPublicKeyStructure(
512:                                (ASN1Sequence) new SubjectPublicKeyInfo(
513:                                        (ASN1Sequence) dIn.readObject())
514:                                        .getPublicKey());
515:                    } catch (Exception e) {
516:                        return new SimpleTestResult(false, getName()
517:                                + ": exception - " + e.toString());
518:                    }
519:
520:                    bIn = new ByteArrayInputStream(privKeyEnc);
521:                    dIn = new ASN1InputStream(bIn);
522:
523:                    //
524:                    // extract the private key info.
525:                    //
526:                    RSAPrivateKeyStructure privStruct;
527:
528:                    try {
529:                        privStruct = new RSAPrivateKeyStructure(
530:                                (ASN1Sequence) (new PrivateKeyInfo(
531:                                        (ASN1Sequence) dIn.readObject())
532:                                        .getPrivateKey()));
533:                    } catch (Exception e) {
534:                        return new SimpleTestResult(false, getName()
535:                                + ": exception - " + e.toString());
536:                    }
537:
538:                    RSAKeyParameters pubParameters = new RSAKeyParameters(
539:                            false, pubStruct.getModulus(), pubStruct
540:                                    .getPublicExponent());
541:
542:                    RSAKeyParameters privParameters = new RSAPrivateCrtKeyParameters(
543:                            privStruct.getModulus(), privStruct
544:                                    .getPublicExponent(), privStruct
545:                                    .getPrivateExponent(), privStruct
546:                                    .getPrime1(), privStruct.getPrime2(),
547:                            privStruct.getExponent1(), privStruct
548:                                    .getExponent2(), privStruct
549:                                    .getCoefficient());
550:
551:                    AsymmetricBlockCipher cipher = new OAEPEncoding(
552:                            new RSAEngine());
553:
554:                    cipher.init(true, new ParametersWithRandom(pubParameters,
555:                            new Rand()));
556:
557:                    byte[] out;
558:                    byte[] input = new byte[] { (byte) 0x54, (byte) 0x85,
559:                            (byte) 0x9b, (byte) 0x34, (byte) 0x2c, (byte) 0x49,
560:                            (byte) 0xea, (byte) 0x2a };
561:
562:                    try {
563:                        out = cipher.processBlock(input, 0, input.length);
564:                    } catch (Exception e) {
565:                        return new SimpleTestResult(false, getName()
566:                                + ": exception - " + e.toString());
567:                    }
568:
569:                    for (int i = 0; i != output.length; i++) {
570:                        if (out[i] != output[i]) {
571:                            return new SimpleTestResult(false, getName()
572:                                    + ": failed encryption");
573:                        }
574:                    }
575:
576:                    cipher.init(false, privParameters);
577:                    try {
578:                        out = cipher.processBlock(output, 0, output.length);
579:                    } catch (Exception e) {
580:                        return new SimpleTestResult(false, getName()
581:                                + ": exception - " + e.toString());
582:                    }
583:
584:                    for (int i = 0; i != input.length; i++) {
585:                        if (out[i] != input[i]) {
586:                            return new SimpleTestResult(false, getName()
587:                                    + ": failed decoding");
588:                        }
589:                    }
590:
591:                    return new SimpleTestResult(true, getName() + ": Okay");
592:                }
593:            }
594:
595:            public OAEPTest() {
596:            }
597:
598:            public String getName() {
599:                return "OAEP";
600:            }
601:
602:            public TestResult perform() {
603:                Test test = new OAEPTester(1, pubKeyEnc1, privKeyEnc1, output1);
604:                TestResult result = test.perform();
605:
606:                if (!result.isSuccessful()) {
607:                    return result;
608:                }
609:
610:                test = new OAEPTester(2, pubKeyEnc2, privKeyEnc2, output2);
611:                result = test.perform();
612:
613:                if (!result.isSuccessful()) {
614:                    return result;
615:                }
616:
617:                test = new OAEPTester(3, pubKeyEnc3, privKeyEnc3, output3);
618:                result = test.perform();
619:
620:                if (!result.isSuccessful()) {
621:                    return result;
622:                }
623:
624:                return new SimpleTestResult(true, "OAEP: Okay");
625:            }
626:
627:            public static void main(String[] args) {
628:                OAEPTest test = new OAEPTest();
629:                TestResult result = test.perform();
630:
631:                System.out.println(result);
632:            }
633:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.