标签: public-key-exchange

输出 SecKeyCopyExternalRepresentation

我试图将公钥从我的 iPhone 传递给其他方,但是我无法使用 iOS 的输出。

let parameters: [String: Any] = [
    kSecAttrKeySizeInBits as String: 384,
    kSecAttrKeyType as String: kSecAttrKeyTypeEC,
    kSecPrivateKeyAttrs as String: [
        kSecAttrIsPermanent as String: false
    ]
]

var error: Unmanaged<CFError>?
let privateKey = SecKeyCreateRandomKey(parameters as CFDictionary, &error)
let publicKey = SecKeyCopyPublicKey(privateKey!)

let pub = SecKeyCopyExternalRepresentation(publicKey!, &error)
let pubData = pub as Data?
print(pubData!.base64EncodedString())
Run Code Online (Sandbox Code Playgroud)

示例输出:

BJSCZtBatd2BYEHtyLB0qTZNlphKf3ZTGI6Nke3dSxIDpyP9FWMZbG0zcdIXWENyndskfxV0No/yz369ngL2EHZYw6ggNysOnZ5IQSPOLFFl44m1aARXQ==TVAzjda

在python(我的第二方所在的地方)中,我有以下内容:

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization

pub_key = serialisation.load_pem_public_key(
    data=xcode_data.encode(),
    backend=default_backend()
)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是 ValueError: Could not deserialize key data.

那么 …

python cryptography public-key swift public-key-exchange

4
推荐指数
1
解决办法
2576
查看次数

使用bufio.NewReader(conn)读取整个消息

我正在golang中使用一个简单的聊天服务器和客户端.我在阅读net.Conn的消息时遇到了一些麻烦.到目前为止,这就是我一直在做的事情:

bufio.NewReader(conn).ReadString('\n')
Run Code Online (Sandbox Code Playgroud)

由于用户按Enter键发送消息,我只需要读取'\n'.但我现在正致力于加密,当在客户端和服务器之间发送公钥时,密钥有时包含'\n',这使得很难获得整个密钥.我只是想知道如何阅读整个消息而不是停留在特定的角色.谢谢!

encryption networking chat go public-key-exchange

2
推荐指数
1
解决办法
1265
查看次数