小编nul*_*ull的帖子

ECDSA secp256k1 密钥对生成和在 Swift 上签名

我正在为 Swift 上的 iOS 制作 Hyperledger Sawtooth 客户端原型。

在此之前,我在 Java 上为 Android 做同样的事情。在 Java 实现中,使用 SpongyCastle 库可以轻松实现:生成密钥的函数如下所示:

public static KeyPair getKeyPair() throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException {
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("ECDSA", "SC");
        ECGenParameterSpec ecGenParameterSpec = new ECGenParameterSpec("secp256k1");
        keyPairGenerator.initialize(ecGenParameterSpec, new SecureRandom());
        return keyPairGenerator.generateKeyPair();
    }
Run Code Online (Sandbox Code Playgroud)

我需要在 Swift 中做同样的事情:

生成一个secp256k1密钥对并用它对一个字节数组进行签名

并使用它来对字节数组进行签名:

        Signature signature = Signature.getInstance("ECDSA", "SC");
        signature.initSign(keyPair.getPrivate(), new SecureRandom());
        signature.update(bytes);
        byte[] signedBytes = signature.sign();
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了“secp256k1 swift”并找到了这些库:

所有这些都是比特币核心的 secp256k1 库与 Swift 的绑定。

我可以做类似的东西let …

cryptography ios ecdsa swift hyperledger-sawtooth

3
推荐指数
1
解决办法
3657
查看次数

标签 统计

cryptography ×1

ecdsa ×1

hyperledger-sawtooth ×1

ios ×1

swift ×1