}else{
cert = signSession.createCertificate(admin,userData.getUsername(),password, pkcs10req.getRequestPublicKey(), -1, bDate, eDate);
}
genCertificates.add(cert);
retval.add(new TokenCertificateResponseWS(new Certificate(cert)));
}else
if(next.getType() == HardTokenConstants.REQUESTTYPE_KEYSTORE_REQUEST){
if(!next.getTokenType().equals(HardTokenConstants.TOKENTYPE_PKCS12)){
throw EjbcaWSHelper.getEjbcaException("Unsupported Key Store Type : " + next.getTokenType() + " only " + HardTokenConstants.TOKENTYPE_PKCS12 + " is supported",
logger, ErrorCode.NOT_SUPPORTED_KEY_STORE, null);
}
KeyPair keys = KeyTools.genKeys(next.getKeyspec(), next.getKeyalg());
userData.setCertificateProfileId(certificateProfileId);
userData.setCAId(cAInfo.getCAId());
userData.setPassword(password);
userData.setStatus(UserDataConstants.STATUS_NEW);
userAdminSession.changeUser(admin, userData, true);
X509Certificate cert;
if(eDate == null){
cert = (X509Certificate) signSession.createCertificate(admin,userData.getUsername(),password, keys.getPublic());
}else{
cert = (X509Certificate) signSession.createCertificate(admin,userData.getUsername(),password, keys.getPublic(), -1, bDate, eDate);
}
genCertificates.add(cert);
// Generate Keystore
// Fetch CA Cert Chain.
Collection<java.security.cert.Certificate> chain = caAdminSession.getCAInfo(admin, cAInfo.getCAId()).getCertificateChain();
String alias = CertTools.getPartFromDN(CertTools.getSubjectDN(cert), "CN");
if (alias == null){
alias = userData.getUsername();
}
java.security.KeyStore pkcs12 = KeyTools.createP12(alias, keys.getPrivate(), cert, chain);
retval.add(new TokenCertificateResponseWS(new KeyStore(pkcs12, userDataWS.getPassword())));
}else{
throw EjbcaWSHelper.getEjbcaException("Error in request, only REQUESTTYPE_PKCS10_REQUEST and REQUESTTYPE_KEYSTORE_REQUEST are supported token requests.",
logger, ErrorCode.NOT_SUPPORTED_REQUEST_TYPE, null);
}
}