|
From: <pe...@us...> - 2003-12-18 17:40:11
|
Update of /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto
In directory sc8-pr-cvs1:/tmp/cvs-serv29525/src/java/org/neuclear/commons/crypto
Modified Files:
CryptoTools.java
Removed Files:
RawCertificate.java
Log Message:
You can now create keys that get stored with a X509 certificate in the keystore. These can be saved as well.
IdentityCreator has been modified to allow creation of keys.
Note The actual Creation of Certificates still have a problem that will be resolved later today.
Index: CryptoTools.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/CryptoTools.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CryptoTools.java 10 Dec 2003 23:55:45 -0000 1.7
--- CryptoTools.java 18 Dec 2003 17:40:07 -0000 1.8
***************
*** 2,5 ****
--- 2,10 ----
* $Id$
* $Log$
+ * Revision 1.8 2003/12/18 17:40:07 pelle
+ * You can now create keys that get stored with a X509 certificate in the keystore. These can be saved as well.
+ * IdentityCreator has been modified to allow creation of keys.
+ * Note The actual Creation of Certificates still have a problem that will be resolved later today.
+ *
* Revision 1.7 2003/12/10 23:55:45 pelle
* Did some cleaning up in the builders
***************
*** 216,219 ****
--- 221,227 ----
import org.bouncycastle.jce.interfaces.ECPrivateKey;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
+ import org.bouncycastle.jce.X509V3CertificateGenerator;
+ import org.bouncycastle.jce.X509Principal;
+ import org.bouncycastle.asn1.x509.X509Name;
import javax.crypto.Cipher;
***************
*** 236,239 ****
--- 244,250 ----
import java.security.spec.X509EncodedKeySpec;
import java.util.Random;
+ import java.util.HashMap;
+ import java.util.Vector;
+ import java.util.Date;
// TODO Implement some code to automatically BC Provider if not installed
***************
*** 288,291 ****
--- 299,316 ----
return null;
}
+ public static PublicKey getPublicKeyFromBase64(final String b64) throws CryptoException {
+ try {
+ final byte[] barray = Base64.decode(b64);
+ final X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(barray);
+ final KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+ return keyFactory.generatePublic(pubKeySpec);
+ } catch (NoSuchAlgorithmException e) {
+ rethrowException(e);
+ } catch (InvalidKeySpecException e) {
+ rethrowException(e);
+ }
+
+ return null;
+ }
public static String formatByteArrayAsHex(final byte[] barray) {
***************
*** 747,750 ****
--- 772,792 ----
}
+ public final static Certificate createCertificate(String name,KeyPair kp) throws SignatureException, InvalidKeyException {
+ X509V3CertificateGenerator gen=new X509V3CertificateGenerator();
+ // Vector code=new Vector(1);
+ // code.add(0,"CN");
+ // Vector names=new Vector(1);
+ // names.add(0,name);
+ // final X509Name x509Name = new X509Name(code,names);
+ // gen.setIssuerDN(x509Name);
+ final X509Principal x509 = new X509Principal("CN="+name+", OU=NEU, O=NEU, L=NEU, ST=NEU, C=PA");
+ gen.setSubjectDN(x509);
+ gen.setIssuerDN(x509);
+ gen.setPublicKey(kp.getPublic());
+ gen.setNotBefore(new Date());
+ gen.setSignatureAlgorithm("SHA1withRSA");
+ gen.setSerialNumber(new BigInteger( digest(kp.getPublic().getEncoded())));
+ return gen.generateX509Certificate(kp.getPrivate());
+ }
{
ensureProvider();
***************
*** 762,766 ****
private static SecureRandom randSource;
! public final static String DEFAULT_KEYSTORE = System.getProperty("user.home") + "/.keystore";
public static final int RAND_BIT_LENGTH = 128;
--- 804,808 ----
private static SecureRandom randSource;
! public final static String DEFAULT_KEYSTORE = System.getProperty("user.home") + "/.neuclear/keystore.jks";
public static final int RAND_BIT_LENGTH = 128;
--- RawCertificate.java DELETED ---
|