1 package org.sapia.util.license; 2 3 import java.io.IOException ; 4 import java.security.KeyPair ; 5 import java.security.KeyPairGenerator ; 6 import java.security.SecureRandom ; 7 import java.util.Date ; 8 import java.util.Map ; 9 10 42 public class LicenseRegistrationFactory { 43 44 private SecurityFactory _fac; 45 46 public LicenseRegistrationFactory(SecurityFactory fac){ 47 _fac = fac; 48 } 49 50 public LicenseRegistrationFactory(){ 51 this(new SecurityFactory()); 52 } 53 54 57 public SecurityFactory getSecurityFactory(){ 58 return _fac; 59 } 60 61 72 public LicenseRegistration createRegistration(Object serializableVendorId, License license, Date currentDate, LicenseIdFactory idFactory) throws IOException , Exception { 73 return createRegistration(serializableVendorId, 1024, license, currentDate, idFactory); 74 } 75 76 87 public LicenseRegistration createRegistration(Object serializableVendorId, 88 License license, 89 Map serializableData, 90 Date currentDate, 91 LicenseIdFactory idFactory) throws IOException , Exception { 92 return createRegistration(serializableVendorId, 1024, license, serializableData, currentDate, idFactory); 93 } 94 95 106 public LicenseRegistration createRegistration(Object serializableVendorId, 107 int strength, 108 License license, 109 Date currentDate, 110 LicenseIdFactory idFactory) throws IOException , Exception { 111 return createRegistration(serializableVendorId, strength, license, null, currentDate, idFactory); 112 } 113 114 126 public LicenseRegistration createRegistration(Object serializableVendorId, 127 int strength, 128 License license, 129 Map serializableData, 130 Date currentDate, 131 LicenseIdFactory idFactory) throws IOException , Exception { 132 KeyPairGenerator kpGen = _fac.newKeyPairGenerator("DSA"); 133 kpGen.initialize(strength, new SecureRandom ()); 134 KeyPair kp = kpGen.generateKeyPair(); 135 LicenseRecord rec = LicenseRecord.newInstance(serializableVendorId, license, kp.getPublic(), kp.getPrivate(), _fac, idFactory); 136 return new LicenseRegistration(serializableVendorId, rec, kp, serializableData, currentDate); 137 } 138 139 } 140 | Popular Tags |