• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ECUtil类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: engineGenerateSecret

import sun.security.util.ECUtil; //导入依赖的package包/类
@Override
protected byte[] engineGenerateSecret() throws IllegalStateException {
    if ((privateKey == null) || (publicValue == null)) {
        throw new IllegalStateException("Not initialized correctly");
    }

    byte[] s = privateKey.getS().toByteArray();
    byte[] encodedParams =                   // DER OID
        ECUtil.encodeECParameterSpec(null, privateKey.getParams());

    try {

        return deriveKey(s, publicValue, encodedParams);

    } catch (GeneralSecurityException e) {
        throw new ProviderException("Could not derive key", e);
    }

}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:20,代码来源:ECDHKeyAgreement.java


示例2: initialize

import sun.security.util.ECUtil; //导入依赖的package包/类
@Override
public void initialize(AlgorithmParameterSpec params, SecureRandom random)
        throws InvalidAlgorithmParameterException {

    if (params instanceof ECParameterSpec) {
        this.params = ECUtil.getECParameterSpec(null,
                                                (ECParameterSpec)params);
        if (this.params == null) {
            throw new InvalidAlgorithmParameterException(
                "Unsupported curve: " + params);
        }
    } else if (params instanceof ECGenParameterSpec) {
        String name = ((ECGenParameterSpec)params).getName();
        this.params = ECUtil.getECParameterSpec(null, name);
        if (this.params == null) {
            throw new InvalidAlgorithmParameterException(
                "Unknown curve name: " + name);
        }
    } else {
        throw new InvalidAlgorithmParameterException(
            "ECParameterSpec or ECGenParameterSpec required for EC");
    }
    this.keySize =
        ((ECParameterSpec)this.params).getCurve().getField().getFieldSize();
    this.random = random;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:27,代码来源:ECKeyPairGenerator.java


示例3: generatePrivate

import sun.security.util.ECUtil; //导入依赖的package包/类
private PrivateKey generatePrivate(BigInteger s, ECParameterSpec params)
        throws PKCS11Exception {
    byte[] encodedParams =
        ECUtil.encodeECParameterSpec(getSunECProvider(), params);
    CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
        new CK_ATTRIBUTE(CKA_CLASS, CKO_PRIVATE_KEY),
        new CK_ATTRIBUTE(CKA_KEY_TYPE, CKK_EC),
        new CK_ATTRIBUTE(CKA_VALUE, s),
        new CK_ATTRIBUTE(CKA_EC_PARAMS, encodedParams),
    };
    attributes = token.getAttributes
            (O_IMPORT, CKO_PRIVATE_KEY, CKK_EC, attributes);
    Session session = null;
    try {
        session = token.getObjSession();
        long keyID = token.p11.C_CreateObject(session.id(), attributes);
        return P11Key.privateKey
            (session, keyID, "EC", params.getCurve().getField().getFieldSize(), attributes);
    } finally {
        token.releaseSession(session);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:23,代码来源:P11ECKeyFactory.java


示例4: ECPrivateKeyImpl

import sun.security.util.ECUtil; //导入依赖的package包/类
/**
 * Construct a key from its components. Used by the
 * KeyFactory.
 */
ECPrivateKeyImpl(BigInteger s, ECParameterSpec params)
        throws InvalidKeyException {
    this.s = s;
    this.params = params;
    // generate the encoding
    algid = new AlgorithmId
        (AlgorithmId.EC_oid, ECParameters.getAlgorithmParameters(params));
    try {
        DerOutputStream out = new DerOutputStream();
        out.putInteger(1); // version 1
        byte[] privBytes = ECUtil.trimZeroes(s.toByteArray());
        out.putOctetString(privBytes);
        DerValue val =
            new DerValue(DerValue.tag_Sequence, out.toByteArray());
        key = val.toByteArray();
    } catch (IOException exc) {
        // should never occur
        throw new InvalidKeyException(exc);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:25,代码来源:ECPrivateKeyImpl.java


示例5: engineDoPhase

import sun.security.util.ECUtil; //导入依赖的package包/类
@Override
protected Key engineDoPhase(Key key, boolean lastPhase)
        throws InvalidKeyException, IllegalStateException {
    if (privateKey == null) {
        throw new IllegalStateException("Not initialized");
    }
    if (publicValue != null) {
        throw new IllegalStateException("Phase already executed");
    }
    if (!lastPhase) {
        throw new IllegalStateException
            ("Only two party agreement supported, lastPhase must be true");
    }
    if (!(key instanceof ECPublicKey)) {
        throw new InvalidKeyException
            ("Key must be a PublicKey with algorithm EC");
    }

    ECPublicKey ecKey = (ECPublicKey)key;
    ECParameterSpec params = ecKey.getParams();

    if (ecKey instanceof ECPublicKeyImpl) {
        publicValue = ((ECPublicKeyImpl)ecKey).getEncodedPublicValue();
    } else { // instanceof ECPublicKey
        publicValue =
            ECUtil.encodePoint(ecKey.getW(), params.getCurve());
    }
    int keyLenBits = params.getCurve().getField().getFieldSize();
    secretLen = (keyLenBits + 7) >> 3;

    return null;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:33,代码来源:ECDHKeyAgreement.java


示例6: generateKeyPair

import sun.security.util.ECUtil; //导入依赖的package包/类
@Override
public KeyPair generateKeyPair() {

    byte[] encodedParams =
        ECUtil.encodeECParameterSpec(null, (ECParameterSpec)params);

    // seed is twice the key size (in bytes) plus 1
    byte[] seed = new byte[(((keySize + 7) >> 3) + 1) * 2];
    if (random == null) {
        random = JCAUtil.getSecureRandom();
    }
    random.nextBytes(seed);

    try {

        Object[] keyBytes = generateECKeyPair(keySize, encodedParams, seed);

        // The 'params' object supplied above is equivalent to the native
        // one so there is no need to fetch it.
        // keyBytes[0] is the encoding of the native private key
        BigInteger s = new BigInteger(1, (byte[])keyBytes[0]);

        PrivateKey privateKey =
            new ECPrivateKeyImpl(s, (ECParameterSpec)params);

        // keyBytes[1] is the encoding of the native public key
        ECPoint w = ECUtil.decodePoint((byte[])keyBytes[1],
            ((ECParameterSpec)params).getCurve());
        PublicKey publicKey =
            new ECPublicKeyImpl(w, (ECParameterSpec)params);

        return new KeyPair(publicKey, privateKey);

    } catch (Exception e) {
        throw new ProviderException(e);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:38,代码来源:ECKeyPairGenerator.java


示例7: getEncodedPublicValue

import sun.security.util.ECUtil; //导入依赖的package包/类
static byte[] getEncodedPublicValue(PublicKey key) throws InvalidKeyException {
    if (key instanceof ECPublicKey) {
        ECPublicKey ecKey = (ECPublicKey)key;
        ECPoint w = ecKey.getW();
        ECParameterSpec params = ecKey.getParams();
        return ECUtil.encodePoint(w, params.getCurve());
    } else {
        // should never occur
        throw new InvalidKeyException
            ("Key class not yet supported: " + key.getClass().getName());
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:13,代码来源:P11ECKeyFactory.java


示例8: implTranslatePublicKey

import sun.security.util.ECUtil; //导入依赖的package包/类
PublicKey implTranslatePublicKey(PublicKey key) throws InvalidKeyException {
    try {
        if (key instanceof ECPublicKey) {
            ECPublicKey ecKey = (ECPublicKey)key;
            return generatePublic(
                ecKey.getW(),
                ecKey.getParams()
            );
        } else if ("X.509".equals(key.getFormat())) {
            // let Sun provider parse for us, then recurse
            byte[] encoded = key.getEncoded();

            try {
                key = ECUtil.decodeX509ECPublicKey(encoded);
            } catch (InvalidKeySpecException ikse) {
                throw new InvalidKeyException(ikse);
            }

            return implTranslatePublicKey(key);
        } else {
            throw new InvalidKeyException("PublicKey must be instance "
                    + "of ECPublicKey or have X.509 encoding");
        }
    } catch (PKCS11Exception e) {
        throw new InvalidKeyException("Could not create EC public key", e);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:28,代码来源:P11ECKeyFactory.java


示例9: implTranslatePrivateKey

import sun.security.util.ECUtil; //导入依赖的package包/类
PrivateKey implTranslatePrivateKey(PrivateKey key)
        throws InvalidKeyException {
    try {
        if (key instanceof ECPrivateKey) {
            ECPrivateKey ecKey = (ECPrivateKey)key;
            return generatePrivate(
                ecKey.getS(),
                ecKey.getParams()
            );
        } else if ("PKCS#8".equals(key.getFormat())) {
            // let Sun provider parse for us, then recurse
            byte[] encoded = key.getEncoded();

            try {
                key = ECUtil.decodePKCS8ECPrivateKey(encoded);
            } catch (InvalidKeySpecException ikse) {
                throw new InvalidKeyException(ikse);
            }

            return implTranslatePrivateKey(key);
        } else {
            throw new InvalidKeyException("PrivateKey must be instance "
                    + "of ECPrivateKey or have PKCS#8 encoding");
        }
    } catch (PKCS11Exception e) {
        throw new InvalidKeyException("Could not create EC private key", e);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:29,代码来源:P11ECKeyFactory.java


示例10: generatePublic

import sun.security.util.ECUtil; //导入依赖的package包/类
private PublicKey generatePublic(ECPoint point, ECParameterSpec params)
        throws PKCS11Exception {
    byte[] encodedParams =
        ECUtil.encodeECParameterSpec(getSunECProvider(), params);
    byte[] encodedPoint =
        ECUtil.encodePoint(point, params.getCurve());

    // Check whether the X9.63 encoding of an EC point shall be wrapped
    // in an ASN.1 OCTET STRING
    if (!token.config.getUseEcX963Encoding()) {
        try {
            encodedPoint =
                new DerValue(DerValue.tag_OctetString, encodedPoint)
                    .toByteArray();
        } catch (IOException e) {
            throw new
                IllegalArgumentException("Could not DER encode point", e);
        }
    }

    CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
        new CK_ATTRIBUTE(CKA_CLASS, CKO_PUBLIC_KEY),
        new CK_ATTRIBUTE(CKA_KEY_TYPE, CKK_EC),
        new CK_ATTRIBUTE(CKA_EC_POINT, encodedPoint),
        new CK_ATTRIBUTE(CKA_EC_PARAMS, encodedParams),
    };
    attributes = token.getAttributes
            (O_IMPORT, CKO_PUBLIC_KEY, CKK_EC, attributes);
    Session session = null;
    try {
        session = token.getObjSession();
        long keyID = token.p11.C_CreateObject(session.id(), attributes);
        return P11Key.publicKey
            (session, keyID, "EC", params.getCurve().getField().getFieldSize(), attributes);
    } finally {
        token.releaseSession(session);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:39,代码来源:P11ECKeyFactory.java


示例11: getEncodedInternal

import sun.security.util.ECUtil; //导入依赖的package包/类
synchronized byte[] getEncodedInternal() {
    token.ensureValid();
    if (encoded == null) {
        fetchValues();
        try {
            Key key = ECUtil.generateECPrivateKey(s, params);
            encoded = key.getEncoded();
        } catch (InvalidKeySpecException e) {
            throw new ProviderException(e);
        }
    }
    return encoded;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:14,代码来源:P11Key.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java READDIR3Request类代码示例发布时间:2022-05-22
下一篇:
Java StartLogSegmentResponseProto类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap