diff options
Diffstat (limited to 'libraries/spongycastle/prov/src/test/jdk1.1/org/spongycastle/jce/provider/test/PKCS10CertRequestTest.java')
-rw-r--r-- | libraries/spongycastle/prov/src/test/jdk1.1/org/spongycastle/jce/provider/test/PKCS10CertRequestTest.java | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/libraries/spongycastle/prov/src/test/jdk1.1/org/spongycastle/jce/provider/test/PKCS10CertRequestTest.java b/libraries/spongycastle/prov/src/test/jdk1.1/org/spongycastle/jce/provider/test/PKCS10CertRequestTest.java new file mode 100644 index 000000000..bffe5b27f --- /dev/null +++ b/libraries/spongycastle/prov/src/test/jdk1.1/org/spongycastle/jce/provider/test/PKCS10CertRequestTest.java @@ -0,0 +1,99 @@ +package org.spongycastle.jce.provider.test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.Security; +import java.util.Hashtable; + +import org.spongycastle.asn1.ASN1InputStream; +import org.spongycastle.asn1.ASN1Sequence; +import org.spongycastle.asn1.DEROutputStream; +import org.spongycastle.asn1.x509.X509Name; +import org.spongycastle.jce.PKCS10CertificationRequest; +import org.spongycastle.jce.X509Principal; +import org.spongycastle.jce.provider.BouncyCastleProvider; +import org.spongycastle.util.test.SimpleTestResult; +import org.spongycastle.util.test.Test; +import org.spongycastle.util.test.TestResult; + +/** + **/ +public class PKCS10CertRequestTest + implements Test +{ + public String getName() + { + return "PKCS10CertRequest"; + } + + public TestResult perform() + { + try + { + KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SC"); + + kpg.initialize(512); + + KeyPair kp = kpg.generateKeyPair(); + + Hashtable attrs = new Hashtable(); + + attrs.put(X509Principal.C, "AU"); + attrs.put(X509Principal.O, "The Legion of the Bouncy Castle"); + attrs.put(X509Principal.L, "Melbourne"); + attrs.put(X509Principal.ST, "Victoria"); + attrs.put(X509Principal.EmailAddress, "feedback-crypto@bouncycastle.org"); + + X509Name subject = new X509Name(attrs); + + PKCS10CertificationRequest req1 = new PKCS10CertificationRequest( + "SHA1withRSA", + subject, + kp.getPublic(), + null, + kp.getPrivate()); + + ByteArrayOutputStream bOut = new ByteArrayOutputStream(); + DEROutputStream dOut = new DEROutputStream(bOut); + + dOut.writeObject(req1); + dOut.close(); + + ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray()); + ASN1InputStream dIn = new ASN1InputStream(bIn); + + PKCS10CertificationRequest req2 = new PKCS10CertificationRequest( + (ASN1Sequence)dIn.readObject()); + + if (!req2.verify()) + { + return new SimpleTestResult(false, getName() + ": Failed verify check."); + } + + if (!req2.getPublicKey().equals(req1.getPublicKey())) + { + return new SimpleTestResult(false, getName() + ": Failed public key check."); + } + + return new SimpleTestResult(true, getName() + ": Okay"); + } + catch (Exception e) + { +e.printStackTrace(); + return new SimpleTestResult(false, getName() + ": exception - " + e.toString()); + } + } + + public static void main( + String[] args) + { + Security.addProvider(new BouncyCastleProvider()); + + Test test = new PKCS10CertRequestTest(); + TestResult result = test.perform(); + + System.out.println(result.toString()); + } +} |