00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.ext.security;
00032
00033 import java.io.IOException;
00034 import java.io.Serializable;
00035 import java.math.BigInteger;
00036 import java.security.KeyPair;
00037 import java.security.Provider;
00038 import java.security.SecureRandom;
00039 import java.security.Security;
00040 import java.security.cert.X509Certificate;
00041 import java.text.DateFormat;
00042 import java.util.Date;
00043 import java.util.Hashtable;
00044 import java.util.Random;
00045
00046 import org.apache.log4j.Logger;
00047 import org.bouncycastle.asn1.x509.X509Name;
00048 import org.bouncycastle.jce.provider.JDKKeyPairGenerator;
00049 import org.bouncycastle.x509.X509V3CertificateGenerator;
00050 import org.objectweb.proactive.core.util.log.Loggers;
00051 import org.objectweb.proactive.core.util.log.ProActiveLogger;
00052 import org.objectweb.proactive.ext.security.crypto.Session;
00053
00054
00055 public class DefaultProActiveSecurityManager extends ProActiveSecurityManager
00056 implements Serializable {
00057 private transient Logger logger;
00058
00059 public DefaultProActiveSecurityManager() {
00060
00061
00062
00063 }
00064
00065 public DefaultProActiveSecurityManager(String vide)
00066 throws Exception {
00067 super(vide);
00068 sessions = new Hashtable<Long,Session>();
00069 logger = ProActiveLogger.getLogger(Loggers.SECURITY);
00070
00071 Provider myProvider = new org.bouncycastle.jce.provider.BouncyCastleProvider();
00072 Security.addProvider(myProvider);
00073
00074
00075 KeyPair keyPair = null;
00076 SecureRandom rand = new SecureRandom();
00077
00078 JDKKeyPairGenerator.RSA keyPairGen = new JDKKeyPairGenerator.RSA();
00079
00080 keyPairGen.initialize(1024, rand);
00081
00082 keyPair = keyPairGen.generateKeyPair();
00083
00084
00085
00086 X509V3CertificateGenerator certifGenerator = new X509V3CertificateGenerator();
00087
00088 X509Certificate certif = null;
00089
00090 DateFormat convert = DateFormat.getDateInstance();
00091
00092
00093 String subjectCN = "CN=Generic Certificate" + new Random().nextLong() +
00094 ", OU=Generic Certificate, EmailAddress=none";
00095
00096
00097 X509Name subject = new X509Name(subjectCN);
00098 X509Name issuer = new X509Name(
00099 "CN=Generic Certificate, OU=Generic Certificate, EmailAddress=none");
00100
00101 certifGenerator.setSubjectDN(subject);
00102 certifGenerator.setIssuerDN(issuer);
00103 certifGenerator.setSignatureAlgorithm("MD5withRSA");
00104
00105
00106
00107 Date start = new Date(System.currentTimeMillis() - 50000);
00108 Date stop = new Date(System.currentTimeMillis() + 50000);
00109
00110 certifGenerator.setNotAfter(stop);
00111 certifGenerator.setNotBefore(start);
00112
00113 certifGenerator.setSerialNumber(new BigInteger("1"));
00114
00115
00116
00117
00118
00119
00120
00121
00122 }
00123
00124 public ProActiveSecurityManager getProActiveSecurityManager() {
00125 return this;
00126 }
00127
00128 public PolicyRule getPolicyTo(X509Certificate certificate) {
00129
00130 return new PolicyRule();
00131 }
00132
00133 public Communication getPolicyTo(String type, String from, String to) {
00134
00135 return new Communication();
00136 }
00137
00138 private void readObject(java.io.ObjectInputStream in)
00139 throws IOException, ClassNotFoundException {
00140 in.defaultReadObject();
00141
00142
00143 logger = ProActiveLogger.getLogger(Loggers.SECURITY);
00144 }
00145 }