问题标签 [security.framework]

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 回答
813 浏览

c - 从私有 SecKeyRef 获取公钥

给定从 RSA 私钥SecKeyRef加载的使用,有没有办法仅为公钥组件获取或创建一个?在 OpenSSL 中,这可以通过将模数和公共指数复制到新结构来完成,但它是不透明的,我一直无法找到执行此操作的函数。SecItemImportSecKeyRefSecKeyRef

0 投票
1 回答
2431 浏览

ios - 添加第二个证书时,SecItemAdd 返回 -25299

尝试添加第二个证书时失败并显示 -25299(该项目已存在。)。他们有不同的 kSecAttrLabel。在尝试删除之前,它也会失败,代码为 -25300(找不到该项目。)。

也许有人知道这段代码有什么问题?我错过了一些属性吗?

0 投票
1 回答
602 浏览

objective-c - 使用 SecTransform API(或其他系统 API)在 OS X 上解密 RSA 公钥

我正在尝试使用安全转换 API 替换我对 OpenSSL 的使用,它很久以前就被弃用并已从 10.11 SDK 中删除。我使用 OpenSSL 只是为了验证许可证密钥。我遇到的问题是许可证密钥是使用 OpenSSL 的rsa_private_encrypt()功能生成的(服务器端),而不是(可能更合适)rsa_sign()。在当前的 OpenSSL 代码中,我使用rsa_public_decrypt()如下方式验证它们:

不幸的是,我无法使用 SecTransform API 来复制它。我有以下内容:

调用SecTransformExecute()失败并出现CSSMERR_CSP_INVALID_KEY_CLASS错误。

我是否遗漏了什么,或者RSA_public_decrypt()Security.framework 中没有与 OpenSSL 等效的东西?也许SecVerifyTransform可以使用 a (我也无法让它工作,但 OpenSSL 也是如此RSA_sign())。如果它能让我做到这一点,我当然愿意使用另一个系统 API(例如 CDSA/CSSM)。

不幸的是,由于此代码需要验证现有的许可证代码,我不能简单地将我的许可证生成代码更改为使用RSA_sign()或类似代码。

0 投票
1 回答
3223 浏览

ios - 如何在没有 TouchID 和密码的情况下使用 Secure Enclave?

为了生成密钥对,我使用了 Secure Enclave (kSecAttrTokenIDSecureEnclave)。当尝试访问生成的密钥对时,iOS 系统会询问 TouchID。下面是我如何生成和访问密钥对的代码快照。

这里有没有一种设置属性/属性的方法,Secure Enclave 功能可以在没有 TouchID 和密码的情况下使用?

生成密钥对:

访问密钥对:

0 投票
0 回答
800 浏览

ios - 在swift下,是否需要手动导入安全框架才能使用keychain?

我想在我的应用程序中使用 swift 下的 iOS 钥匙串保存登录凭据。我下载了SwiftKeychainWrapper并观看了一些youtube 教程。在这些之后,我将 KeychainWrapper.swift 文件复制到我的项目中,并开始使用提供的函数来存储一些字符串。一切正常,但现在我想知道是否需要我没有手动导入的安全框架。这是我仍然需要迅速做的事情吗?我可以 Cmd+单击包装器中的那些 kSec 密钥,它会将我发送到安全框架 - 这是否意味着它现在“内置”到 swift 中或类似的东西?

如果我确实需要那个框架,为什么它现在“没有”它就可以工作?我的字符串是否已保存但未加密或类似的东西?

我还检查了 1-2 个其他关于钥匙串的 github 项目,比如Locksmith,这似乎也没有让我手动导入该框架。

干杯

0 投票
2 回答
1371 浏览

ios - 从 keychainItemWrapper iOS 中检索密码和用户名

我正在尝试使用KeychainItemWrapper.handkeychainWrapperItemWrapper.m来存储用户凭据,例如用户名和密码。我目前在用户第一次登录时存储如下:

这会将值存储在钥匙串中。但是下次用户打开应用程序时,我想再次检索用户名和密码。但是,当我调用以下命令时:

似乎我得到了奇怪的加密密钥,例如:<6f78696c 69676874 2d746573 74> 有没有办法检索用户名和密码的原始字符串?我以前从未使用过钥匙串,任何帮助将不胜感激!

0 投票
0 回答
91 浏览

swift - xctest 中的 SecKeyGeneratePair

我在可可触摸框架中使用 SecKeyGeneratePair 生成 publicKey 和 privateKey。

但是当我尝试测试该方法时,它总是返回

操作系统状态 -50

我什至无法添加钥匙串共享权利,因为它在框架中不支持。

0 投票
1 回答
331 浏览

ios - iOS Security.framework arm64 架构问题

我正在尝试在 iOS 11.4 下的 iPhone 6 设备上编译应用程序。

这个应用程序使用我自己为架构 armv7 和 arm64 编译的框架(通过 lipo -info 确认)并针对 iOS8+。

在这个框架中,我使用了 iOS 的 Security.framework 中的kSecImportExportPassphraseSecPKCS12ImportkSecImportItemIdentity

当我在 Xcode 10.2 中编译时,我得到这个错误:

Xcode 10.2 错误

如果有人知道发生了什么?

就像 Security.framework 不是为 arm64 编译的,这是完全不可能的。

问候。

0 投票
1 回答
459 浏览

swift - 如何在 macOS 上使用 Security.framework 解密数据?

我需要使用 RSApublic密钥解密数据macOS,通过谷歌搜索我知道我们可以使用方法SecKeyCreateDecryptedDataSecurity.framework实现这一点,但这会导致两个问题:

  1. SecKeyCreateDecryptedData接受private密钥来执行解密,但在我的情况下,数据在服务器端用私钥加密,需要public在客户端用密钥解密。

  2. 我尝试SecKey从 RSApublic密钥字符串创建,但失败了。

我的代码:

使用 方法Kazunori Takaishi,我测试了所有算法,都不支持: