当前位置: 首页>>代码示例>>Java>>正文


Java X509Key类代码示例

本文整理汇总了Java中sun.security.x509.X509Key的典型用法代码示例。如果您正苦于以下问题:Java X509Key类的具体用法?Java X509Key怎么用?Java X509Key使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


X509Key类属于sun.security.x509包,在下文中一共展示了X509Key类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: PKCS10

import sun.security.x509.X509Key; //导入依赖的package包/类
/**
 * Parses an encoded, signed PKCS #10 certificate request, verifying
 * the request's signature as it does so.  This constructor would
 * typically be used by a Certificate Authority, from which a new
 * certificate would then be constructed.
 *
 * @param data the DER-encoded PKCS #10 request.
 * @exception IOException for low level errors reading the data
 * @exception SignatureException when the signature is invalid
 * @exception NoSuchAlgorithmException when the signature
 *  algorithm is not supported in this environment
 */
public PKCS10(byte[] data)
throws IOException, SignatureException, NoSuchAlgorithmException {
    DerInputStream  in;
    DerValue[]      seq;
    AlgorithmId     id;
    byte[]          sigData;
    Signature       sig;

    encoded = data;

    //
    // Outer sequence:  request, signature algorithm, signature.
    // Parse, and prepare to verify later.
    //
    in = new DerInputStream(data);
    seq = in.getSequence(3);

    if (seq.length != 3)
        throw new IllegalArgumentException("not a PKCS #10 request");

    data = seq[0].toByteArray();            // reusing this variable
    id = AlgorithmId.parse(seq[1]);
    sigData = seq[2].getBitString();

    //
    // Inner sequence:  version, name, key, attributes
    //
    BigInteger      serial;
    DerValue        val;

    serial = seq[0].data.getBigInteger();
    if (!serial.equals(BigInteger.ZERO))
        throw new IllegalArgumentException("not PKCS #10 v1");

    subject = new X500Name(seq[0].data);
    subjectPublicKeyInfo = X509Key.parse(seq[0].data.getDerValue());

    // Cope with a somewhat common illegal PKCS #10 format
    if (seq[0].data.available() != 0)
        attributeSet = new PKCS10Attributes(seq[0].data);
    else
        attributeSet = new PKCS10Attributes();

    if (seq[0].data.available() != 0)
        throw new IllegalArgumentException("illegal PKCS #10 data");

    //
    // OK, we parsed it all ... validate the signature using the
    // key and signature algorithm we found.
    //
    try {
        sig = Signature.getInstance(id.getName());
        sig.initVerify(subjectPublicKeyInfo);
        sig.update(data);
        if (!sig.verify(sigData))
            throw new SignatureException("Invalid PKCS #10 signature");
    } catch (InvalidKeyException e) {
        throw new SignatureException("invalid key");
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:73,代码来源:PKCS10.java

示例2: x509EncodeECPublicKey

import sun.security.x509.X509Key; //导入依赖的package包/类
public static byte[] x509EncodeECPublicKey(ECPoint w,
        ECParameterSpec params) throws InvalidKeySpecException {
    KeyFactory keyFactory = getKeyFactory();
    ECPublicKeySpec keySpec = new ECPublicKeySpec(w, params);
    X509Key key = (X509Key)keyFactory.generatePublic(keySpec);

    return key.getEncoded();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:9,代码来源:ECUtil.java

示例3: x509EncodeECPublicKey

import sun.security.x509.X509Key; //导入依赖的package包/类
static byte[] x509EncodeECPublicKey(ECPoint w,
        ECParameterSpec params) throws InvalidKeySpecException {
    ECPublicKeySpec keySpec = new ECPublicKeySpec(w, params);
    X509Key key = (X509Key)ECGeneratePublic(keySpec);

    return key.getEncoded();
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:8,代码来源:P11ECUtil.java

示例4: PKCS10

import sun.security.x509.X509Key; //导入依赖的package包/类
/**
 * Parses an encoded, signed PKCS #10 certificate request, verifying
 * the request's signature as it does so.  This constructor would
 * typically be used by a Certificate Authority, from which a new
 * certificate would then be constructed.
 *
 * @param data the DER-encoded PKCS #10 request.
 * @exception IOException for low level errors reading the data
 * @exception SignatureException when the signature is invalid
 * @exception NoSuchAlgorithmException when the signature
 *  algorithm is not supported in this environment
 */
public PKCS10(byte[] data)
throws IOException, SignatureException, NoSuchAlgorithmException {
    DerInputStream  in;
    DerValue[]      seq;
    AlgorithmId     id;
    byte[]          sigData;
    Signature       sig;

    encoded = data;

    //
    // Outer sequence:  request, signature algorithm, signature.
    // Parse, and prepare to verify later.
    //
    in = new DerInputStream(data);
    seq = in.getSequence(3);

    if (seq.length != 3)
        throw new IllegalArgumentException("not a PKCS #10 request");

    data = seq[0].toByteArray();            // reusing this variable
    id = AlgorithmId.parse(seq[1]);
    sigData = seq[2].getBitString();

    //
    // Inner sequence:  version, name, key, attributes
    //
    BigInteger      serial;
    DerValue        val;

    serial = seq[0].data.getBigInteger();
    if (!serial.equals(BigInteger.ZERO))
        throw new IllegalArgumentException("not PKCS #10 v1");

    subject = new X500Name(seq[0].data);
    subjectPublicKeyInfo = X509Key.parse(seq[0].data.getDerValue());

    // Cope with a somewhat common illegal PKCS #10 format
    if (seq[0].data.available() != 0)
        attributeSet = new PKCS10Attributes(seq[0].data);
    else
        attributeSet = new PKCS10Attributes();

    if (seq[0].data.available() != 0)
        throw new IllegalArgumentException("illegal PKCS #10 data");

    //
    // OK, we parsed it all ... validate the signature using the
    // key and signature algorithm we found.
    //
    try {
        sigAlg = id.getName();
        sig = Signature.getInstance(sigAlg);
        sig.initVerify(subjectPublicKeyInfo);
        sig.update(data);
        if (!sig.verify(sigData))
            throw new SignatureException("Invalid PKCS #10 signature");
    } catch (InvalidKeyException e) {
        throw new SignatureException("invalid key");
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:74,代码来源:PKCS10.java

示例5: main

import sun.security.x509.X509Key; //导入依赖的package包/类
public static void main(String[] args) throws Exception {

        // initializations
        int len = ids.length;
        Object[] values = {
            new ObjectIdentifier("1.2.3.4"),
            new GregorianCalendar(1970, 1, 25, 8, 56, 7).getTime(),
            "challenging"
        };
        for (int j = 0; j < len; j++) {
            constructedMap.put(ids[j], values[j]);
        }

        X500Name subject = new X500Name("cn=Test");
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
        String sigAlg = "DSA";

        keyGen.initialize(512);

        KeyPair pair = keyGen.generateKeyPair();
        X509Key publicKey = (X509Key) pair.getPublic();
        PrivateKey privateKey = pair.getPrivate();

        Signature signature = Signature.getInstance(sigAlg);
        signature.initSign(privateKey);

        // Create the PKCS10 request
        PKCS10Attribute[] attrs = new PKCS10Attribute[len];
        for (int j = 0; j < len; j++) {
            attrs[j] = new PKCS10Attribute(ids[j], values[j]);
        }
        PKCS10 req = new PKCS10(publicKey, new PKCS10Attributes(attrs));
        System.out.println("List of attributes in constructed PKCS10 "
                + "request: ");
        checkAttributes(req.getAttributes().getElements());

        // Encode the PKCS10 request and generate another PKCS10 request from
        // the encoded byte array
        req.encodeAndSign(subject, signature);
        PKCS10 resp = new PKCS10(req.getEncoded());
        System.out.println("List of attributes in DER encoded PKCS10 Request:");
        checkAttributes(resp.getAttributes().getElements());

        if (failedCount > 0) {
            throw new RuntimeException("Attributes Compared : Failed");
        }
        System.out.println("Attributes Compared : Pass");
    }
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:49,代码来源:PKCS10AttrEncoding.java

示例6: SimpleSigner

import sun.security.x509.X509Key; //导入依赖的package包/类
public SimpleSigner(String digestAlg,
        String encryptionAlg,
        KeyPair keyPair,
        X500Name agent) throws Exception {

    if (agent == null) {
        agent = new X500Name("cn=test");
    }
    if (digestAlg == null) {
        digestAlg = "SHA";
    }
    if (encryptionAlg == null) {
        encryptionAlg = "DSA";
    }
    if (keyPair == null) {
        KeyPairGenerator keyGen =
                KeyPairGenerator.getInstance(encryptionAlg);
        keyGen.initialize(1024);
        keyPair = keyGen.generateKeyPair();
    }
    publicKey = (X509Key) keyPair.getPublic();
    privateKey = keyPair.getPrivate();

    if ("DSA".equals(encryptionAlg)) {
        this.sig = Signature.getInstance(encryptionAlg);
    } else { // RSA
        this.sig = Signature.getInstance(digestAlg + "/" + encryptionAlg);
    }
    this.sig.initSign(privateKey);

    this.agent = agent;
    this.digestAlgId = AlgorithmId.get(digestAlg);
    this.encryptionAlgId = AlgorithmId.get(encryptionAlg);
    this.algId = AlgorithmId.get(this.sig.getAlgorithm());

    this.cert = getSelfCert();
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:38,代码来源:SignerOrder.java


注:本文中的sun.security.x509.X509Key类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。