org.bouncycastle.cms.CMSAlgorithm Java Examples

The following examples show how to use org.bouncycastle.cms.CMSAlgorithm. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Client.java    From xipki with Apache License 2.0 6 votes vote down vote up
private ContentInfo encryptThenSign(PkiMessage request, PrivateKey identityKey,
    X509Cert identityCert) throws ScepClientException {
  HashAlgo hashAlgo = caCaps.mostSecureHashAlgo();
  String signatureAlgorithm = ScepUtil.getSignatureAlgorithm(identityKey, hashAlgo);
  ASN1ObjectIdentifier encAlgId;
  if (caCaps.containsCapability(CaCapability.AES)) {
    encAlgId = CMSAlgorithm.AES128_CBC;
  } else if (caCaps.containsCapability(CaCapability.DES3)) {
    encAlgId = CMSAlgorithm.DES_EDE3_CBC;
  } else if (useInsecureAlgorithms) {
    encAlgId = CMSAlgorithm.DES_CBC;
  } else { // no support of DES
    throw new ScepClientException("DES will not be supported by this client");
  }

  try {
    return request.encode(identityKey, signatureAlgorithm, identityCert,
        new X509Cert[]{identityCert}, authorityCertStore.getEncryptionCert(), encAlgId);
  } catch (MessageEncodingException ex) {
    throw new ScepClientException(ex);
  }
}
 
Example #2
Source File: BouncyCastleCrypto.java    From tutorials with MIT License 6 votes vote down vote up
public static byte[] encryptData(final byte[] data, X509Certificate encryptionCertificate) throws CertificateEncodingException, CMSException, IOException {
    byte[] encryptedData = null;
    if (null != data && null != encryptionCertificate) {
        CMSEnvelopedDataGenerator cmsEnvelopedDataGenerator = new CMSEnvelopedDataGenerator();
        JceKeyTransRecipientInfoGenerator jceKey = new JceKeyTransRecipientInfoGenerator(encryptionCertificate);
        cmsEnvelopedDataGenerator.addRecipientInfoGenerator(jceKey);
        CMSTypedData msg = new CMSProcessableByteArray(data);
        OutputEncryptor encryptor = new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider("BC").build();
        CMSEnvelopedData cmsEnvelopedData = cmsEnvelopedDataGenerator.generate(msg, encryptor);
        encryptedData = cmsEnvelopedData.getEncoded();
    }
    return encryptedData;
}