當前位置: 首頁>>代碼示例>>Java>>正文


Java X500Principal.getEncoded方法代碼示例

本文整理匯總了Java中javax.security.auth.x500.X500Principal.getEncoded方法的典型用法代碼示例。如果您正苦於以下問題:Java X500Principal.getEncoded方法的具體用法?Java X500Principal.getEncoded怎麽用?Java X500Principal.getEncoded使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.security.auth.x500.X500Principal的用法示例。


在下文中一共展示了X500Principal.getEncoded方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getSubjectX500Name

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
/**
 * Return the subject of a certificate as X500Name, by reparsing if
 * necessary. X500Name should only be used if access to name components
 * is required, in other cases X500Principal is to be preferred.
 *
 * This method is currently used from within JSSE, do not remove.
 */
public static X500Name getSubjectX500Name(X509Certificate cert)
        throws CertificateParsingException {
    try {
        Principal subjectDN = cert.getSubjectDN();
        if (subjectDN instanceof X500Name) {
            return (X500Name)subjectDN;
        } else {
            X500Principal subjectX500 = cert.getSubjectX500Principal();
            return new X500Name(subjectX500.getEncoded());
        }
    } catch (IOException e) {
        throw(CertificateParsingException)
            new CertificateParsingException().initCause(e);
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:23,代碼來源:HostnameChecker.java

示例2: convertPrincipal

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
static X509Principal convertPrincipal(
    X500Principal principal)
{
    try
    {
        return new X509Principal(principal.getEncoded());
    }
    catch (IOException e)
    {
        throw new IllegalArgumentException("cannot convert principal");
    }
}
 
開發者ID:Appdome,項目名稱:ipack,代碼行數:13,代碼來源:X509Util.java

示例3: convertName

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
private static X509Name convertName(
    X500Principal    name)
{
    try
    {
        return new X509Principal(name.getEncoded());
    }
    catch (IOException e)
    {
        throw new IllegalArgumentException("can't convert name");
    }
}
 
開發者ID:Appdome,項目名稱:ipack,代碼行數:13,代碼來源:PKCS10CertificationRequest.java

示例4: setRequestorName

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
/**
 * Set the requestor name to the passed in X500Principal
 * 
 * @param requestorName a X500Principal representing the requestor name.
 */
public void setRequestorName(
    X500Principal        requestorName)
{
    try
    {
        this.requestorName = new GeneralName(GeneralName.directoryName, new X509Principal(requestorName.getEncoded()));
    }
    catch (IOException e)
    {
        throw new IllegalArgumentException("cannot encode principal: " + e);
    }
}
 
開發者ID:Appdome,項目名稱:ipack,代碼行數:18,代碼來源:OCSPReqGenerator.java

示例5: getCertificateFriendlyName

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
public static String getCertificateFriendlyName(X509Certificate cert) {
    X500Principal principal = cert.getSubjectX500Principal();
    byte[] encodedSubject = principal.getEncoded();
    String friendlyName = null;
    /* Hack so we do not have to ship a whole Spongy/bouncycastle */
    Exception exp = null;
    try {
        Class X509NameClass = Class.forName("com.android.org.bouncycastle.asn1.x509.X509Name");
        Method getInstance = X509NameClass.getMethod("getInstance", Object.class);
        Hashtable defaultSymbols = (Hashtable) X509NameClass.getField("DefaultSymbols").get(X509NameClass);
        if (!defaultSymbols.containsKey("1.2.840.113549.1.9.1")) defaultSymbols.put("1.2.840.113549.1.9.1", "eMail");
        Object subjectName = getInstance.invoke(X509NameClass, encodedSubject);
        Method toString = X509NameClass.getMethod("toString", boolean.class, Hashtable.class);
        friendlyName = (String) toString.invoke(subjectName, true, defaultSymbols);
    } catch (ClassNotFoundException | NoSuchMethodException | InvocationTargetException | IllegalAccessException | NoSuchFieldException e) {
        exp = e;
    }
    if (exp != null) VpnStatus.logException("Getting X509 Name from certificate", exp);
    /* Fallback if the reflection method did not work */
    if (friendlyName == null) friendlyName = principal.getName();
    // Really evil hack to decode email address
    // See: http://code.google.com/p/android/issues/detail?id=21531
    String[] parts = friendlyName.split(",");
    for (int i = 0; i < parts.length; i++) {
        String part = parts[i];
        if (part.startsWith("1.2.840.113549.1.9.1=#16")) {
            parts[i] = "email=" + ia5decode(part.replace("1.2.840.113549.1.9.1=#16", ""));
        }
    }
    friendlyName = TextUtils.join(",", parts);
    return friendlyName;
}
 
開發者ID:akashdeepsingh9988,項目名稱:Cybernet-VPN,代碼行數:33,代碼來源:X509Utils.java

示例6: getEncoded

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
/** {@inheritDoc} */
public byte[] getEncoded(X500Principal principal) {
    if (principal == null) {
        throw new NullPointerException("X500Principal may not be null");
    }
    return principal.getEncoded();
}
 
開發者ID:lamsfoundation,項目名稱:lams,代碼行數:8,代碼來源:InternalX500DNHandler.java

示例7: AttributeCertificateIssuer

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
public AttributeCertificateIssuer(X500Principal principal)
    throws IOException
{
    this(new X509Principal(principal.getEncoded()));
}
 
開發者ID:Appdome,項目名稱:ipack,代碼行數:6,代碼來源:AttributeCertificateIssuer.java

示例8: DistinguishedName

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
DistinguishedName(X500Principal dn) {
    name = dn.getEncoded();
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:4,代碼來源:HandshakeMessage.java

示例9: testDN

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
private static void testDN(String dn) throws Exception {
    X500Principal p = new X500Principal(dn);
    byte[] encoded = p.getEncoded();

    // name is a sequence of RDN's
    DerInputStream dis = new DerInputStream(encoded);
    DerValue[] nameseq = dis.getSequence(3);

    boolean passed = false;
    for (int i = 0; i < nameseq.length; i++) {

        // each RDN is a set of AttributeTypeAndValue
        DerInputStream is = new DerInputStream(nameseq[i].toByteArray());
        DerValue[] ava = is.getSet(3);

        for (int j = 0; j < ava.length; j++) {

            ObjectIdentifier oid = ava[j].data.getOID();

            if (oid.equals(X500Name.DOMAIN_COMPONENT_OID)) {
                DerValue value = ava[j].data.getDerValue();
                if (value.getTag() == DerValue.tag_IA5String) {
                    passed = true;
                    break;
                } else {
                    throw new SecurityException
                            ("Test failed, expected DOMAIN_COMPONENT tag '" +
                            DerValue.tag_IA5String +
                            "', got '" +
                            value.getTag() + "'");
                }
            }
        }

        if (passed) {
            break;
        }
    }

    if (passed) {
        System.out.println("Test passed");
    } else {
        throw new SecurityException("Test failed");
    }
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:46,代碼來源:DomainComponentEncoding.java

示例10: main

import javax.security.auth.x500.X500Principal; //導入方法依賴的package包/類
public static void main(String[] args) {

        try {

            // create 2 different X500Principals
            X500Principal p = new X500Principal("o=sun, cn=duke");
            X500Principal p2 = new X500Principal("o=sun, cn=dukette");

            // get the encoded bytes for the 2 principals
            byte[] encoded = p.getEncoded();
            byte[] encoded2 = p2.getEncoded();

            // create a ByteArrayInputStream with the
            // encodings from the 2 principals
            byte[] all = new byte[encoded.length + encoded2.length];
            System.arraycopy(encoded, 0, all, 0, encoded.length);
            System.arraycopy(encoded2, 0, all, encoded.length, encoded2.length);
            ByteArrayInputStream bais = new ByteArrayInputStream(all);

            // create 2 new X500Principals from the ByteArrayInputStream
            X500Principal pp = new X500Principal(bais);
            X500Principal pp2 = new X500Principal(bais);

            // sanity check the 2 new principals
            if (p.equals(pp) && p2.equals(pp2) && !pp.equals(pp2)) {
                System.out.println("Test 1 passed");
            } else {
                throw new SecurityException("Test 1 failed");
            }

            // corrupt the ByteArrayInputStream and see if the
            // mark/reset worked
            byte[] all2 = new byte[all.length];
            System.arraycopy(all, 0, all2, 0, all.length);
            all2[encoded.length + 2] = (byte)-1;
            bais = new ByteArrayInputStream(all2);

            // this should work
            X500Principal ppp = new X500Principal(bais);

            // this should throw an IOException due to stream corruption
            int origAvailable = bais.available();
            try {
                X500Principal ppp2 = new X500Principal(bais);
                throw new SecurityException("Test 2 (part a) failed");
            } catch (IllegalArgumentException iae) {
                if (bais.available() == origAvailable) {
                    System.out.println("Test 2 passed");
                } else {
                    throw new SecurityException("Test 2 (part b) failed");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new SecurityException(e.getMessage());
        }
    }
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:58,代碼來源:DerIsConstructor.java


注:本文中的javax.security.auth.x500.X500Principal.getEncoded方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。