如何生成公钥的专用密钥在X25519?

德米特罗·季托夫:

我与目前基于加密X25519密钥工作。

我的问题是,基本上,如何导出PublicKey从现有X25519 PrivateKey

我发现的代码XDHKeyPairGenerator

BigInteger publicKey = ops.computePublic(privateKey.clone());

但是,这个包是特定于平台的,因此无法访问。我找不到这样做通过公开访问接口的方法。

德米特罗·季托夫:

到目前为止,我发现只有一个办法通过JDK提供的接口来做到这一点(不使用像充气城堡或谷歌亭任何附加库):

public class StaticSecureRandom extends SecureRandom {

    private final byte[] privateKey;

    public StaticSecureRandom(byte[] privateKey) {
        this.privateKey = privateKey.clone();
    }

    @Override
    public void nextBytes(byte[] bytes) {
        System.arraycopy(privateKey, 0, bytes, 0, privateKey.length);
    }

}
    public PublicKey generatePublicKeyFromPrivate(PrivateKey privateKey) throws GeneralSecurityException {
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(X25519);
        keyPairGenerator.initialize(new NamedParameterSpec(X25519), new StaticSecureRandom(getScalar(privateKey)));
        return keyPairGenerator.generateKeyPair().getPublic();
    }

这不是一个很优雅的解决方案,但它工作没有任何第三方库,我无法找到任何其他方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Java

爪哇 - 如何生成专用密钥及公钥从密钥库开始(或.p12)

来自分类Dev

如何从私钥生成RSA公钥?

来自分类Dev

如何从其私钥生成ECDSA公钥?

来自分类Dev

如何从Java中的公钥生成Tor服务洋葱地址?

来自分类Dev

Flutter-如何生成私钥/公钥对以加密消息

来自分类Dev

生成RSA公钥/私钥对

来自分类Dev

RSA公钥生成-Swift

来自分类Dev

如何在Android密钥库中存储和检索从服务器端应用程序生成的RSA公钥?

来自分类Java

使用RSA公钥加密AES密钥

来自分类Java

使用ECDH公钥进行密钥包装?

来自分类Dev

分离ECDSA密钥对的公钥和私钥

来自分类Dev

GitLab SSH密钥-权限被拒绝(公钥)

来自分类Java

如何从我们创建的密钥库中检索我的公钥和私钥

来自分类Java

从文件中读取公钥或私钥时,如何解决“无效的密钥格式”?

来自分类Dev

如何从包含.Net Core中的私钥/公钥的PEM文件中导入PKCS1密钥

来自分类Linux

如何设置公钥认证?

来自分类Dev

使用x509.MarshalPKCS1PublicKey随时生成RSA公钥

来自分类Java

从字符串生成Rsa公钥

来自分类Dev

使用OpenSSL生成RSA公钥/私钥?

来自分类Dev

使用RSA私钥生成公钥?

来自分类Dev

X25519是否可以用作Android中KEX的曲线?

来自分类Java

AES 256加密:公钥和私钥如何生成和使用.net

来自分类Java

如何读取rsa公钥形式的字符串(由java生成,我想用Python读取)

来自分类Dev

如何使用Swift 3生成RSA公钥和私钥?

来自分类Dev

如何在不使用密钥服务器的情况下从OpenPGP智能卡获取公钥?

来自分类Dev

如何将RSACng创建的公钥持久保存到本地计算机或密钥存储提供程序(KSP)?

来自分类Dev

从EVP_PKEY密钥对中提取公钥?

来自分类Dev

检查输入的公钥是否是有效的OpenPGP密钥

来自分类Dev

在PHP中将openssl密钥转换为rsa公钥

TOP 榜单

热门标签

归档