问题标签 [apple-cryptokit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - SECP256K1 使用 SawTooth Swift 进行验证
我正在尝试使用 SawTooth SDK 来对 Secp256k1 密钥对进行签名/验证。当我尝试验证时,每个人似乎都期待结束:
我总是得到“验证失败......”知道我做错了什么吗?谢谢!
swift - 使用 Apples CryptoKit 在 iOS 和 Kotlin/Java 之间进行跨平台 AES 加密
我想使用 Apples CryptoKit 将加密数据从运行 kotlin 应用程序的服务器发送到 iOS 应用程序。我在初始化AES.GCM.SealedBox
和解密数据时遇到问题。一般来说,我不明白 Sealboxstag
的用途。
所以首先是 Kotlin 方面:
IOS:
当然,双方都有相同的密钥和 iv/nonce。我遇到的错误消息是:
排队:
编辑 I:附加有效载荷信息:
服务器(科特林):
客户端(iOS):
ios - 如何存储加密数据
我正在尝试在 UserDefaults 中存储和检索我的加密文本数据,但检索它时出现问题。我使用 CryptoKit 来加密和解密数据。
错误消息是:“无法将 'Foundation.__NSSwiftData' (0x7fff89d1ee50) 类型的值转换为 'CryptoKit.ChaChaPoly.SealedBox' (0x7fff8085abc8)。”
有没有更好的方法将 SymmetricKey 存储在钥匙串中,而无需通过 UnsafeBytes 将其转换为字符串?我使用 SwiftKeychainWrapper。
ios - iOS - 如何在 iOS 12 中执行 sharedSecretFromKeyAgreement
最近,Apple 在 iOS 13 中引入了 CryptoKit,它有一个方法 sharedSecretFromKeyAgreement,它根据公钥和私钥之间的密钥协议生成共享密钥。这如何在 iOS 12 及更低版本中实现?
iOS 13
swift - 在数据库中存储 CryptoKit 公钥
我正在尝试将用户的 CryptoKit 公钥存储在我的 Parse 数据库中,但出现以下错误。
错误
代码
我尝试通过 (String(publicKey) 将 publicKey 转换为 String,但出现错误Initializer 'init(_:)' requires that 'Curve25519.KeyAgreement.PublicKey' conform to 'LosslessStringConvertible'
swift - iOS CryptoKit AES-GCM 是否可以使用少于 12 个字节的随机数?
我正在尝试与使用 AES-GCM 和 4 字节随机数(UInt32)的现有设备进行交互。这是一个简单的增量计数器,每次操作发生时都会增加:
然后我尝试对其进行加密并检索如下值:
但是,AES.GCM.Nonce
少于 12 字节的情况下不起作用,因此 4 字节的 nonce 会导致它抛出错误。我试过用一个备用的 0'ed 8 字节填充随机数:
但是设备拒绝了加密值,所以我认为这是不正确的。如果有人对实现这个 Swift 的最佳方式有任何建议,那就太棒了!谢谢你。
ios - 解密 AES/GCM/PKCS5Padding iOS Swift
我正在尝试使用 AES 解密来解密 Base64Encoded String 消息。
加密消息(Base64Encoded 字符串): tNC6umcfBS/gelbo2VJF3i4LAhUKMp4oDHWN5KyYUTWeJIQKKYx6oAcQnGncIrPJNC1tUYMKV4kJQj3q9voIOrxc1n7FmRFvDXeRgWGNcGYO66dH3VjoEgF0oxZOpfzwSZKSv3Jm7Q=
密码(字符串) =“SOMEPASSWORDSTRING”
解密消息的步骤:
数据必须从 base 64 解码为普通字符串。
从输入中提取 IV 和加密文本
使用 IV 和相同的密码生成用于加密文本的密钥。密钥生成应遵循与以下相同的步骤。
生成 PBE 密钥(256 位)
使用生成的密钥和 IV,以与以下完全相同的方式初始化密码
此密钥初始化密码对象
生成密码以从加密文本中获取消息。
下面是用于解密输入消息的 JAVA 代码
我在 Swift 中使用下面的代码来生成与上面的 JAVA 代码相同的代码,但是我无法解密消息/密文。
用法:
任何线索将不胜感激,我想知道我在尝试快速转换时是否缺少一些配置或数据转换。
ios - 在 iOS 上使用 P256.Signing.PublicKey 时出现问题
我使用以下命令生成了一个公钥/私钥对:
这会产生以下结果(不用担心,私钥用于测试,不用于任何地方)
公钥为 65 个字节。
接下来我以 Base64 格式导出公钥
这会生成以下文件
但是,如果我对上述密钥进行 base64decode,结果是 88 个字节。
将这 88 个字节传递给P256.Signing.PublicKey(rawRepresentation: data)
会导致以下错误:
CryptoKit.CryptoKitError.incorrectParameterSize
然而,这有效:
知道我需要做什么才能使其正常工作吗?
谢谢!
swift - Ubuntu 上的快速 CryptoKit
我正在尝试将一个小型 swift 程序“ main.swift ”编译为 Ubuntu 18.08 上的可执行文件。我使用Swift 包管理器来管理我的依赖项。在这个非常简单的情况下,我只有一个依赖项,即这个开源 CryptoKit。我有一个 swift 文件,它只是尝试导入 CryptoKit。
我的Package.swift文件如下所示:
当我尝试使用swift build构建可执行文件时,它会获取存储库,但随后会给出未找到产品的错误。快速构建的标准输出:
也许我错过了一些明显的东西?我仍然是 swift 世界的初学者。
swift - 测试 CryptoKit 的数据验证
我想验证一些下载的数据是否未经修改。我的期望是,如果我修改原始数据,签名会失败。虽然这在某些情况下是正确的(data2
),但令人惊讶的是,在其他情况下却不起作用(data3
)。使用 hashes/Digest
返回相同的结果。
为简单起见CryptoKit
。CommonCrypto
这在(我的) /SecKey...
实施中也失败了。