栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java Security中使用openssh公钥(ecdsa-sha2-nistp256)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java Security中使用openssh公钥(ecdsa-sha2-nistp256)

为了完整起见,这是我使用的代码。它是几乎纯的JCE,在帮助器方法中散布了Bouncycastle(这会更新Java安全中的“使用authorized_keys中的公共密钥”中的示例代码):

...        } else if (type.startsWith("ecdsa-sha2-") &&     (type.endsWith("nistp256") || type.endsWith("nistp384") || type.endsWith("nistp521"))) { // based on RFC 5656, section 3.1 (https://tools.ietf.org/html/rfc5656#section-3.1) String identifier = depreType(); BigInteger q = depreBigInt(); ECPoint ecPoint = getECPoint(q, identifier); ECParameterSpec ecParameterSpec = getECParameterSpec(identifier); ECPublicKeySpec spec = new ECPublicKeySpec(ecPoint, ecParameterSpec); return KeyFactory.getInstance("EC").generatePublic(spec);        } ...ECPoint getECPoint(BigInteger q, String identifier) {    String name = identifier.replace("nist", "sec") + "r1";    ECNamedCurveParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec(name);    org.bouncycastle.math.ec.ECPoint point = ecSpec.getCurve().deprePoint(q.toByteArray());    BigInteger x = point.getAffineXCoord().toBigInteger();    BigInteger y = point.getAffineYCoord().toBigInteger();    System.out.println("BC x = " + x);    System.out.println("BC y = " + y);    return new ECPoint(x, y);}ECParameterSpec getECParameterSpec(String identifier) {    try {        // http://www.bouncycastle.org/wiki/pages/viewpage.action?pageId=362269#SupportedCurves(ECDSAandECGOST)-NIST(aliasesforSECcurves)        String name = identifier.replace("nist", "sec") + "r1";        AlgorithmParameters parameters = AlgorithmParameters.getInstance("EC");        parameters.init(new ECGenParameterSpec(name));        return parameters.getParameterSpec(ECParameterSpec.class);    } catch (InvalidParameterSpecException | NoSuchAlgorithmException e) {        throw new IllegalArgumentException("Unable to get parameter spec for identifier " + identifier, e);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506453.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号