问题标签 [commoncrypto]

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.

0 投票
1 回答
2193 浏览

objective-c - 从 NSData 中提取子数据而不复制

我有以下情况:有一个我需要解密的 NSData。数据包括:

  • 定长文件头
  • 加密内容

我正在使用 CCCrypt 进行解密,但这可能并不重要,因为这更像是一个与 NSData 相关的问题。这就是我现在分离事物的方式(伪代码):

如您所见,我的问题是,为了解密,我需要提取没有标头的 NSData 部分。但是有没有办法以某种方式简单地“重用”已经存在的字节而不是制作副本?也许有某种方法可以从中创建一个无复制字节缓冲区,跳过前 X 个字节并将其传递给 CCCrypt?

谢谢你的帮助

0 投票
1 回答
850 浏览

ios - 使用 CFB8 的 3DES 加密并且在 iOS 中没有填充?

我正在开发一个将加密数据发送到服务器的应用程序。服务器使用带有 CFB8 的 3des 并且没有填充。我已经阅读了 stackoverflow 中的大部分相关问题,但仍然无法正常工作。已经为此工作了几天,但仍然无法使其与服务器加密相匹配。这是我尝试过的-

目前似乎CCOptions支持kCCOptionPKCS7PaddingkCCOptionECBMode。如何使用 CFB8 实现 3des 而没有填充。任何建议将不胜感激。

0 投票
1 回答
1345 浏览

ios - What would happen if kSecAttrIsPermanent is set to NO?

What is the usage of the kSecAttrIsPermanent attribute when using Apples libcommonCrypto.dylib on iOS?

Apples documentation says:

The corresponding value is of type CFBooleanRef and indicates whether this cryptographic key is to be stored permanently.


What is the reason not to store something permanently in the keychain and how long will it be stored then? (until reboot? until app is closed? until app is uninstalled?)

0 投票
2 回答
13716 浏览

ios - 使用 RSA 在 iOS 上签名和验证

如何使用 RSA 密钥对 iOS 上的一些数据进行签名和验证(最好使用系统自带的libcommonCrypto)?

0 投票
1 回答
873 浏览

ios - xamarin 中的 CryptoCommon 类在哪里

我试图使用 CryptoCommon 类,但无法在 monotuch 程序集中找到它。

我找到了 Mono.Security.Cryptography 程序集,它的性能是否与 CryptoCommon 类相同?

谢谢!!

0 投票
1 回答
946 浏览

java - iOS 和 Java 之间的公钥交换

我想与基于 Java 的服务器或 Android 设备共享在 iPhone/iPad 上生成的公钥。在 Java 端(服务器或 Android)我想在 iOS 上使用java.securitylibcommonCrypto(SecKeyRef 的东西)。

除了这两个平台之间的公钥交换之外,我已经完成了所有工作。通过使用SecItemCopyMatching,我只能将公钥导出为苹果公司不支持的某种格式。使用 Java,我可以将公钥加载为 X509 证书(通过java.security.X509EncodedKeySpec)或模块和指数(通过java.security.RSAPublicKeySpec)。

现在我需要知道如何将 aSecKeyRef作为 X509 证书导出,或者(我猜这是更简单的解决方案)从中获取模块和指数。我也需要倒退的方式。

SecKeyRef以下是从 a 加载并编码为 BASE64的一些示例公钥:

0 投票
0 回答
465 浏览

python - CommonCrypto (iOS) 的 RSA 公钥格式

我正在尝试将我的 python 服务器中的公钥导入 iOS 钥匙串。我从服务器接收密钥作为 NSData 对象。

我正在使用 Apple 的 Crypto 示例中的 addPeerPublicKey:keyBits: 函数将 NSData 转换为 SecKeyRef,这就是我需要引用它的方式。该功能无法将密钥存储在钥匙串中,我不知道为什么。(SecItemAdd() 返回 0=success 但 getKeyRefWithPersistentKeyRef: 返回 null)。

我在我的服务器上使用 PyCrypto 生成 RSA 密钥并以 DER 格式将它们导出到我的客户端。我还需要做些什么来转换格式以使其可存储在 Apple 钥匙串中吗?

0 投票
1 回答
693 浏览

ios - 使用 RNCryptor 的 iPhone 应用程序是否需要任何加密注册?

使用 RNCryptor 发布到应用商店的应用是否需要注册导出加密注册(即获取加密注册号 ERN)?

我已经删除了所有 SSL 文件,因为我不使用它们,看起来剩余的代码只使用了 Apple 的 CommonCrypto 库,尽管我不是 100% 的。

0 投票
1 回答
491 浏览

ios - 使用 AES 加密数据

我正在构建一个将与服务器(php)通信的应用程序,并且我想加密这种通信(可能会使用 json)。经过大量搜索和阅读后,我找到了AESCrypt-Objc项目。在测试加密时(我正在使用网络工具AES 加密测试),我发现在加密结果中我丢失了 16 个字节的数据。这是我在 AES 项目中使用的示例:

要加密的字符串:“敏捷的棕色狐狸跳过了懒惰的狗”。密码:“12345678901234561234567890123456”

结果:

<7eda336b 82f3e279 ae7638fe cccfffc6 5fbef8da 6df76d97 67d8cfa8 5bce2ae9>

我的代码:

网络工具:

相同的字符串和密码

结果:

<7eda336b 82f3e279 ae7638fe cccfffc6 5fbef8da 6df76d97 67d8cfa8 5bce2ae9 ca2ed34a 48f85af2 909654d5 b0de0fb7>

如您所见,我缺少一些字节...:) 我尝试在算法中添加到缓冲区,但没有成功。

有什么建议吗?谢谢

(如果问题不够详细,请告诉我)

0 投票
2 回答
455 浏览

ios - 使用 NSInputStream 进行 NSMutableData 加密

我正在尝试使用 CommonCrypto 加密 NSMutableData 对象(将结果字节复制到自身,而不复制它)。以前,我使用 CCCrypt() “一次性”方法,主要是因为它看起来很简单。我注意到我的数据对象在内存中重复了。为了避免这种情况,我尝试使用缓冲区大小为 2048 字节的 NSInputStream 对象。我正在阅读我的 NSMutableData 对象,并不断调用 CCCryptorUpdate() 来处理加密。问题是,它似乎仍然是重复的。这是我当前的代码(请注意,它是NSMutableData 上的一个类别——主要是因为历史原因——因此是“自我”引用):

我在这里肯定遗漏了一些明显的东西,加密,甚至使用输入流对我来说有点新。