问题标签 [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 投票
2 回答
689 浏览

ios - 如何使用 osx/iOS 本机安全框架创建 PKCS12 blob?

是否有机会使用安全框架在 mac/ios 上不使用 openssl来生成 PKCS12 (.p12) blob ?

我是否必须自己组合 X509、CA 和 RSA 密钥,或者该框架是否支持任何更高级别的 api?

我真的找不到办法做到这一点。

谢谢

0 投票
1 回答
1402 浏览

iphone - iphone cbc 加密返回 null

我在 NSData+AES256 类中有以下代码。我正在尝试使用以下代码对 NSString 进行 AES CBC 加密。我有钥匙和 iv。但结果为空。查不出什么问题。这是我试过的-

0 投票
1 回答
1592 浏览

macos - How to do asymmetric encryption/decryption with OSX 10.7+ without openssl?

Since openssl is deprecated in osx 10.7+, I'd like to switch from openssl to the internal osx keychain and crypto function.

But now I am stuck on asymmetric encryption/decryption.

How can I do encryption/decryption of a randomly generated symmetric key with a asymmetric (RSA) key. With openssl it's quite easy.

In the apple dev docs, they say that CommonCrypto supports asymmetric encryption, but while checking the headers, I can only see support for symmetric stuff.

Any hints?

0 投票
1 回答
1068 浏览

macos - 用本机 OSX 库替换 OpenSSL

在我们现有的与 OpenSSL 紧密耦合的应用程序中,我们希望使用 OSX 原生加密库。与此相关,我有以下问题:

  1. 我相信 OpenSSL 做了两件工作,一是确保传输层的安全,二是负责发送和接收数据。在阅读了几篇博客和文档时,我得出的结论是,我需要使用 CommonCrypto 和 NSStream,其中 CommonCrypto 用于加密和解密,而 NSStream 将用于发送和接收数据。如果这听起来不对,请纠正我。

  2. 使用 NSStream 似乎是非阻塞框架,而我们现有的应用程序将受益于阻塞机制。有没有办法解决这个问题?

0 投票
1 回答
2668 浏览

ios - iOS 上的 AES/CFB8 密码

我正在尝试在 iOS 上实现 AES/CFB8 流密码。我相信实现这一点的方法是使用 Apple 提供的 CommonCrypto 库。

我发现的所有小文档都只显示了分组密码,那么如何使用该库来完成 AES/CFB8 流密码呢?

0 投票
2 回答
2925 浏览

iphone - iOS5上的CCKeyDerivationPBKDF

按照这篇文章,我正在尝试将密码加密功能写入我的应用程序。

我编写了一个函数来运行该CCCalibratePBKDF函数并输出轮数。

这很好用,但是当我尝试实现下一部分时,一切都出错了。

我可以开始编写CCKeyDerivationPBKDF函数调用,它会自动完成函数和所有参数。当我填写它时,所有参数也会自动完成。

但是我一击中;它标记了一个错误,说“没有匹配的函数来调用'CCKeyDerivationPBKDF'”并且它不会构建或任何东西。

我已经导入了 CommonCrypto/CommonKeyDerivation.h 和 CommonCrypto/CommonCryptor.h,因为这两个都是枚举名称所必需的。

0 投票
2 回答
1293 浏览

c - OS X CommonCrypto 是否为 OpenSSL EVP_* 调用提供了兼容模式(就像 OpenSSL MD5 函数一样)?

在 Mac OS X10.7 上编译我的一个源文件并收到这些弃用警告:

我有另一组 OpenSSL 弃用警告,我在其中使用 MD5 函数,openssl/md5.h并且能够切换到 OpenSSL 调用的 CommonCrypto 版本,如下所示:

但是我找不到任何关于与这些EVP_*调用相关的任何类型的 OpenSSL 兼容性的任何信息。对于这些 OpenSSLEVP_*调用,我可以做一些类似的事情来获得 OS X 10.7 上的“免费”兼容性支持吗?

0 投票
2 回答
6824 浏览

objective-c - 如何在 iOS 中使用 PKCS8 RSA DER 私钥?

在运行时,我的 iOS 应用程序接收到一个带有公私 RSA 密钥对的文件,该文件由其他人的 Java 生成:

我已经使用这种方法成功读取并使用了公钥,该方法从密钥中删除了一些前导码。

我现在想使用私钥。同样的方法不起作用,我认为序言有所不同。该博客建议它正在导入 PKCS#1 PEM 密钥,但随后说它们是二进制的,所以我认为它们只是指 Base64 编码的 DER 密钥。我还发现我拥有的密钥可能是PKCS#8编码的。

当然我可以使用

在示例私钥上,openssl 不会抱怨。

公钥是 PKCS#1 和私有 PKCS#8 是否有意义?

但如果可能的话,我真的很想使用 CommonCrypto 和安全框架,而不是链接到 OpenSSL 。在 Mac OS 上,libsecurity中有读取 PKCS#8 的函数,但这还没有进入 iOS。老实说,我确实尝试阅读源代码,但我无法弄清楚他们实际剥离密钥的位置。

[TL;DR] 如何使用 CommonCrypto 或某些 C/C++/ObjC 从 DER 私钥中去除版本和算法PKCS#8 字段,并获取明文密钥?

0 投票
2 回答
2759 浏览

cryptography - AES CTR 模式的互操作性?

我在 CTR 模式下使用 AES128 加密进行加密,针对不同的客户端(Android/Java 和 iOS/ObjC)实现。加密数据包时使用的 16 字节 IV 格式如下:

每发送一个数据包,数据包计数器(包含在发送的数据包中)就会增加一。最后一个字节用作块计数器,因此少于 256 个块的数据包总是获得唯一的计数器值。我假设 CTR 模式指定计数器应该为每个块增加 1,以大端方式使用最后 8 个字节作为计数器,或者这至少是事实上的标准。Sun 加密实现中似乎也是这种情况。

当相应的 iOS 实现(使用 CommonCryptor,iOS 5.1)在解码数据包时未能解码除第一个块之外的每个块时,我有点惊讶。似乎 CommonCryptor 以其他方式定义了计数器。CommonCryptor 可以在 big endian 和 little endian 模式下创建,但 CommonCryptor 代码中的一些模糊注释表明这不(或至少尚未)完全支持:

通过逐块解码,每次按照上面指定的方式设置 IV,它都能很好地工作。

我的问题:在一次解码多个块时,是否有一种“正确”的方式来实现 CTR/IV 模式,或者在使用不同的加密库时我是否可以期望它是互操作性问题?CommonCrypto 在这方面是否存在问题,还是只是以不同方式实现 CTR 模式的问题?

0 投票
2 回答
322 浏览

objective-c - 在 iOS5 中工作的 SHA1 代码在 iOS6 中不起作用

以下以 iOS5 作为基类工作得很好,但在 iOS6 上失败(SIGABRT)。它可能是操作系统的东西还是架构的东西?

还需要注意的重要一点是随附的 MD5 散列确实有效。

感谢您的任何帮助!