use of org.xipki.ca.certprofile.x509.jaxb.SMIMECapability in project xipki by xipki.
the class XmlX509Certprofile method initSmimeCapabilities.
private void initSmimeCapabilities(Set<ASN1ObjectIdentifier> extnIds, ExtensionsType extensionsType) throws CertprofileException {
ASN1ObjectIdentifier type = ObjectIdentifiers.id_smimeCapabilities;
if (!extensionControls.containsKey(type)) {
return;
}
extnIds.remove(type);
SMIMECapabilities extConf = (SMIMECapabilities) getExtensionValue(type, extensionsType, SMIMECapabilities.class);
if (extConf == null) {
return;
}
List<SMIMECapability> list = extConf.getSMIMECapability();
ASN1EncodableVector vec = new ASN1EncodableVector();
for (SMIMECapability m : list) {
ASN1ObjectIdentifier oid = new ASN1ObjectIdentifier(m.getCapabilityID().getValue());
ASN1Encodable params = null;
org.xipki.ca.certprofile.x509.jaxb.SMIMECapability.Parameters capParams = m.getParameters();
if (capParams != null) {
if (capParams.getInteger() != null) {
params = new ASN1Integer(capParams.getInteger());
} else if (capParams.getBase64Binary() != null) {
params = readAsn1Encodable(capParams.getBase64Binary().getValue());
}
}
org.bouncycastle.asn1.smime.SMIMECapability cap = new org.bouncycastle.asn1.smime.SMIMECapability(oid, params);
vec.add(cap);
}
ASN1Encodable extValue = new DERSequence(vec);
smimeCapabilities = new ExtensionValue(extensionControls.get(type).isCritical(), extValue);
}
use of org.xipki.ca.certprofile.x509.jaxb.SMIMECapability in project xipki by xipki.
the class ProfileConfCreatorDemo method createSmimeCapabilities.
private static ExtensionValueType createSmimeCapabilities() {
SMIMECapabilities caps = new SMIMECapabilities();
// DES-EDE3-CBC
SMIMECapability cap = new SMIMECapability();
caps.getSMIMECapability().add(cap);
cap.setCapabilityID(createOidType(new ASN1ObjectIdentifier("1.2.840.113549.3.7"), "DES-EDE3-CBC"));
// RC2-CBC keysize 128
cap = new SMIMECapability();
caps.getSMIMECapability().add(cap);
cap.setCapabilityID(createOidType(new ASN1ObjectIdentifier("1.2.840.113549.3.2"), "RC2-CBC"));
cap.setParameters(new org.xipki.ca.certprofile.x509.jaxb.SMIMECapability.Parameters());
cap.getParameters().setInteger(BigInteger.valueOf(128));
// RC2-CBC keysize 64
cap = new SMIMECapability();
caps.getSMIMECapability().add(cap);
cap.setCapabilityID(createOidType(new ASN1ObjectIdentifier("1.2.840.113549.3.2"), "RC2-CBC"));
cap.setParameters(new org.xipki.ca.certprofile.x509.jaxb.SMIMECapability.Parameters());
Base64BinaryWithDescType binary = new Base64BinaryWithDescType();
try {
binary.setValue(new ASN1Integer(64).getEncoded());
binary.setDescription("INTEGER 64");
} catch (IOException ex) {
throw new RuntimeException(ex.getMessage());
}
cap.getParameters().setBase64Binary(binary);
return createExtensionValueType(caps);
}
Aggregations