Example usage for org.bouncycastle.asn1.x500.style BCStyle SURNAME

List of usage examples for org.bouncycastle.asn1.x500.style BCStyle SURNAME

Introduction

In this page you can find the example usage for org.bouncycastle.asn1.x500.style BCStyle SURNAME.

Prototype

ASN1ObjectIdentifier SURNAME

To view the source code for org.bouncycastle.asn1.x500.style BCStyle SURNAME.

Click Source Link

Document

Naming attributes of type X520name

Usage

From source file:eu.europa.esig.dss.validation.SignedDocumentValidator.java

License:Open Source License

/**
 * This method deals with the certificate's details. The retrieved
 * information is transformed to the JAXB object.
 *
 * @param usedDigestAlgorithms//from  w w w  .j  av a  2 s .  c o  m
 *            set of different digest algorithms used to compute certificate
 *            digest
 * @param certToken
 *            current certificate token
 * @return
 */
private XmlCertificate dealCertificateDetails(final Set<DigestAlgorithm> usedDigestAlgorithms,
        final CertificateToken certToken) {

    final XmlCertificate xmlCert = new XmlCertificate();

    xmlCert.setId(certToken.getDSSId().asXmlId());

    XmlDistinguishedName xmlDistinguishedName = xmlForDistinguishedName(X500Principal.CANONICAL,
            certToken.getSubjectX500Principal());
    xmlCert.getSubjectDistinguishedName().add(xmlDistinguishedName);
    xmlDistinguishedName = xmlForDistinguishedName(X500Principal.RFC2253, certToken.getSubjectX500Principal());
    xmlCert.getSubjectDistinguishedName().add(xmlDistinguishedName);

    xmlDistinguishedName = xmlForDistinguishedName(X500Principal.CANONICAL, certToken.getIssuerX500Principal());
    xmlCert.getIssuerDistinguishedName().add(xmlDistinguishedName);
    xmlDistinguishedName = xmlForDistinguishedName(X500Principal.RFC2253, certToken.getIssuerX500Principal());
    xmlCert.getIssuerDistinguishedName().add(xmlDistinguishedName);

    xmlCert.setSerialNumber(certToken.getSerialNumber());
    X500Principal x500Principal = certToken.getSubjectX500Principal();
    xmlCert.setCommonName(DSSASN1Utils.extractAttributeFromX500Principal(BCStyle.CN, x500Principal));
    xmlCert.setCountryName(DSSASN1Utils.extractAttributeFromX500Principal(BCStyle.C, x500Principal));
    xmlCert.setOrganizationName(DSSASN1Utils.extractAttributeFromX500Principal(BCStyle.O, x500Principal));
    xmlCert.setGivenName(DSSASN1Utils.extractAttributeFromX500Principal(BCStyle.GIVENNAME, x500Principal));
    xmlCert.setOrganizationalUnit(DSSASN1Utils.extractAttributeFromX500Principal(BCStyle.OU, x500Principal));
    xmlCert.setSurname(DSSASN1Utils.extractAttributeFromX500Principal(BCStyle.SURNAME, x500Principal));
    xmlCert.setPseudonym(DSSASN1Utils.extractAttributeFromX500Principal(BCStyle.PSEUDONYM, x500Principal));

    for (final DigestAlgorithm digestAlgorithm : usedDigestAlgorithms) {

        final XmlDigestAlgAndValueType xmlDigestAlgAndValue = new XmlDigestAlgAndValueType();
        xmlDigestAlgAndValue.setDigestMethod(digestAlgorithm.getName());
        xmlDigestAlgAndValue.setDigestValue(DSSUtils.digest(digestAlgorithm, certToken));
        xmlCert.getDigestAlgAndValue().add(xmlDigestAlgAndValue);
    }
    xmlCert.setNotAfter(certToken.getNotAfter());
    xmlCert.setNotBefore(certToken.getNotBefore());
    final PublicKey publicKey = certToken.getPublicKey();
    xmlCert.setPublicKeySize(DSSPKUtils.getPublicKeySize(publicKey));
    xmlCert.setPublicKeyEncryptionAlgo(DSSPKUtils.getPublicKeyEncryptionAlgo(publicKey));

    xmlForKeyUsageBits(certToken, xmlCert);

    if (DSSASN1Utils.isOCSPSigning(certToken)) {
        xmlCert.setIdKpOCSPSigning(true);
    }
    if (DSSASN1Utils.hasIdPkixOcspNoCheckExtension(certToken)) {
        xmlCert.setIdPkixOcspNoCheck(true);
    }

    final XmlBasicSignatureType xmlBasicSignatureType = new XmlBasicSignatureType();

    final SignatureAlgorithm signatureAlgorithm = certToken.getSignatureAlgorithm();
    xmlBasicSignatureType.setDigestAlgoUsedToSignThisToken(signatureAlgorithm.getDigestAlgorithm().getName());
    xmlBasicSignatureType
            .setEncryptionAlgoUsedToSignThisToken(signatureAlgorithm.getEncryptionAlgorithm().getName());
    final String keyLength = DSSPKUtils.getPublicKeySize(certToken);
    xmlBasicSignatureType.setKeyLengthUsedToSignThisToken(keyLength);
    final boolean signatureIntact = certToken.isSignatureValid();
    xmlBasicSignatureType.setReferenceDataFound(signatureIntact);
    xmlBasicSignatureType.setReferenceDataIntact(signatureIntact);
    xmlBasicSignatureType.setSignatureIntact(signatureIntact);
    xmlBasicSignatureType.setSignatureValid(signatureIntact);
    xmlCert.setBasicSignature(xmlBasicSignatureType);

    final CertificateToken issuerToken = certToken.getIssuerToken();
    xmlCert.setSigningCertificate(xmlForSigningCertificate(issuerToken));
    xmlCert.setCertificateChain(xmlForCertificateChain(issuerToken));

    List<String> qcStatementsIdList = DSSASN1Utils.getQCStatementsIdList(certToken);
    if (CollectionUtils.isNotEmpty(qcStatementsIdList)) {
        XmlQCStatementIds qcStatementIds = new XmlQCStatementIds();
        qcStatementIds.getOid().addAll(qcStatementsIdList);
        xmlCert.setQCStatementIds(qcStatementIds);
    }

    List<String> policyIdentifiersList = DSSASN1Utils.getPolicyIdentifiers(certToken);
    if (CollectionUtils.isNotEmpty(policyIdentifiersList)) {
        XmlCertificatePolicyIds certPolicyIds = new XmlCertificatePolicyIds();
        certPolicyIds.getOid().addAll(policyIdentifiersList);
        xmlCert.setCertificatePolicyIds(certPolicyIds);
    }

    xmlCert.setSelfSigned(certToken.isSelfSigned());
    xmlCert.setTrusted(certToken.isTrusted());

    return xmlCert;
}

From source file:org.cesecore.certificates.util.DnComponentsTest.java

License:Open Source License

@Test
public void test02() {
    String dn = CertTools.stringToBCDNString("uri=fff,CN=oid,SN=12345,NAME=name,C=se");
    final X500Name name = CertTools.stringToBcX500Name(dn);
    ASN1ObjectIdentifier[] oids = name.getAttributeTypes();
    assertEquals(BCStyle.CN, oids[0]);/* w w  w  . j av  a2  s .c  om*/
    assertEquals(BCStyle.NAME, oids[1]);
    assertEquals(BCStyle.SERIALNUMBER, oids[2]);
    assertEquals(BCStyle.C, oids[3]);
    assertEquals("CN=oid,Name=name,SN=12345,C=se", dn);

    String dn1 = CertTools.stringToBCDNString("SURNAME=Json,=fff,CN=oid,SN=12345,NAME=name,C=se");
    final X500Name name1 = CertTools.stringToBcX500Name(dn1);
    ASN1ObjectIdentifier[] oids1 = name1.getAttributeTypes();
    assertEquals(BCStyle.CN, oids1[0]);
    assertEquals(BCStyle.NAME, oids1[1]);
    assertEquals(BCStyle.SERIALNUMBER, oids1[2]);
    assertEquals(BCStyle.SURNAME, oids1[3]);
    assertEquals(BCStyle.C, oids1[4]);
    assertEquals("CN=oid,Name=name,SN=12345,SURNAME=Json,C=se", dn1);

    String dn2 = CertTools.stringToBCDNString(
            "jurisdictionCountry=SE,jurisdictionState=Stockholm,SURNAME=Json,=fff,CN=oid,jurisdictionLocality=Solna,SN=12345,unstructuredname=foo.bar.com,unstructuredaddress=1.2.3.4,NAME=name,C=se");
    final X500Name name2 = CertTools.stringToBcX500Name(dn2);
    ASN1ObjectIdentifier[] oids2 = name2.getAttributeTypes();
    assertEquals(CeSecoreNameStyle.JURISDICTION_COUNTRY, oids2[0]);
    assertEquals(CeSecoreNameStyle.JURISDICTION_STATE, oids2[1]);
    assertEquals(CeSecoreNameStyle.JURISDICTION_LOCALITY, oids2[2]);
    assertEquals(CeSecoreNameStyle.UnstructuredAddress, oids2[3]);
    assertEquals(CeSecoreNameStyle.UnstructuredName, oids2[4]);
    assertEquals(BCStyle.CN, oids2[5]);
    assertEquals(BCStyle.NAME, oids2[6]);
    assertEquals(BCStyle.SERIALNUMBER, oids2[7]);
    assertEquals(BCStyle.SURNAME, oids2[8]);
    assertEquals(BCStyle.C, oids2[9]);
    assertEquals(
            "JurisdictionCountry=SE,JurisdictionState=Stockholm,JurisdictionLocality=Solna,unstructuredAddress=1.2.3.4,unstructuredName=foo.bar.com,CN=oid,Name=name,SN=12345,SURNAME=Json,C=se",
            dn2);

}