如何在 iPhone/Objective C 上找出 RSA 公钥的模数和指数

2024-02-08

有没有可能的方法来找出使用 SecKeyGeneratePair (一般的安全框架)创建的公钥的模数和指数?


我对此很困惑,但这是我找到的解决方案(不使用任何外部包)。

首先,转到 Apple 的 CryptoExercise 示例。从那里下载“SecKeyWrapper”类。该类中有趣的函数是 getPublicKeyBits。

示例链接:http://developer.apple.com/library/ios/#samplecode/CryptoExercise/Introduction/Intro.html http://developer.apple.com/library/ios/#samplecode/CryptoExercise/Introduction/Intro.html

您将收到的位是 DER 编码(wiki it)的公钥,其中包含模数和 exp。这是一个可以为您解码的代码,非常简单:

- (NSData *)getPublicKeyExp
{
    NSData* pk = [self getPublicKeyBits];
    if (pk == NULL) return NULL;

    int iterator = 0;

    iterator++; // TYPE - bit stream - mod + exp
    [self derEncodingGetSizeFrom:pk at:&iterator]; // Total size

    iterator++; // TYPE - bit stream mod
    int mod_size = [self derEncodingGetSizeFrom:pk at:&iterator];
    iterator += mod_size;

    iterator++; // TYPE - bit stream exp
    int exp_size = [self derEncodingGetSizeFrom:pk at:&iterator];

    return [pk subdataWithRange:NSMakeRange(iterator, exp_size)];
}

- (NSData *)getPublicKeyMod
{
    NSData* pk = [self getPublicKeyBits];
    if (pk == NULL) return NULL;

    int iterator = 0;

    iterator++; // TYPE - bit stream - mod + exp
    [self derEncodingGetSizeFrom:pk at:&iterator]; // Total size

    iterator++; // TYPE - bit stream mod
    int mod_size = [self derEncodingGetSizeFrom:pk at:&iterator];

    return [pk subdataWithRange:NSMakeRange(iterator, mod_size)];
}

- (int)derEncodingGetSizeFrom:(NSData*)buf at:(int*)iterator
{
    const uint8_t* data = [buf bytes];
    int itr = *iterator;
    int num_bytes = 1;
    int ret = 0;

    if (data[itr] > 0x80) {
        num_bytes = data[itr] - 0x80;
        itr++;
    }

    for (int i = 0 ; i < num_bytes; i++) ret = (ret * 0x100) + data[itr + i];

    *iterator = itr + num_bytes;
    return ret;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iPhone/Objective C 上找出 RSA 公钥的模数和指数 的相关文章

  • 在当前参数寄存器中找到的选择器名称:isEqual:

    我正在寻求一些帮助来消除 OSX 应用程序中的一个我无法解决的错误 我收到以下记录错误 Selector name found in current argument registers isEqual 但我一生都无法弄清楚它来自哪里 因为
  • 如何使用编译时间作为自动版本控制信息?

    当程序被编译以获得一种自动版本信息时 是否有任何常量或 pragma来获取时间和日期 DATE and TIME 是预定义的宏 将分别扩展到当前日期和时间
  • Swift 中的自定义输入视图

    我花了几个小时试图弄清楚如何创建 然后定制inputView上班 我有一个网格TextInputs 想想拼字板 按下时应该加载自定义inputView插入文本 我创建了一个 xib文件包含UI elements为定制inputView 我能
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • 如何在ios上定义可达性超时

    我使用 Reachability 类来了解我是否有可用的互联网连接 问题是当wifi可用但不能上网时 NetworkStatus currentReachabilityStatus方法花费太多时间 my code Reachability
  • 使用 twitterkit 将图像发布到 Twitter

    我正在尝试使用 Twitter 的新 TwitterKit 和自定义 UI 发布图像和推文 他们提供的唯一文档是如何用他们的观点来做这件事 所以我可以弄清楚如何在没有图像的情况下做到这一点 NSMutableDictionary messa
  • 具有多个 sqlite 文件的核心数据

    如何将 Core Data 与多个 SQLite 文件一起使用 每个文件都包含相同的结构 但数据是从不同的位置检索的 我希望能够在运行时根据应用程序设置在这些 sqlite 文件之间切换 当然 只需指向持久存储协调器 NSPersisten
  • UITextInputMode currentInputMode 已弃用。建议更换?

    在我们的应用程序中 我们想检测当前的键盘语言 例如 如果用户在 设置 gt 常规 gt 键盘 gt 键盘 下设置了多种语言键盘 我们想知道他们正在输入什么语言 并在发生变化时从 NSNotificationCenter 收到通知 void
  • 强制向扬声器发出音频警报

    我有一个小应用程序 在此应用程序中 扬声器每隔我设置的特定时间就会发出噪音 现在 我希望即使设备中插入了耳机插孔 它也能通过内置扬声器发出噪音 我怎样才能做到这一点 您可以尝试以下代码在扬声器上播放代码 另请检查this http uiha
  • 如何使用 XCode 在 iOS 应用程序中的推文中上传视频

    我是 iOS 开发新手 需要对我正在接管的 iOS 应用程序进行更改 以将视频添加到推文中 我当前的应用程序 UI 允许用户输入推文文本 但我将对其进行更改 以允许他们选择要与推文一起上传的视频 类似于 Twitter 应用程序的工作方式
  • 如何让 UITableview 在重新加载时转到页面顶部?

    当我调用以下命令时重新加载表数据时 我试图让 UITableview 转到页面顶部 void pickerView UIPickerView pickerView didSelectRow NSInteger row inComponent
  • 我应该在我的 iOS Objective-C 项目中使用它吗?

    Xcode 中的 构建设置 中的 Mach O 类型是什么 应该设置什么 它有这些选项 可执行文件 动态库 捆绑包 静态库 可重定位对象文件 自从我将其从可执行文件更改为静态库以来 我遇到了错误 Apple Mach O 链接器错误组 我的
  • UITableViewCell 内的 UIPageViewController

    嘿我想问如何在 UITableViewCell 内实现 UIPageViewController 我一直在阅读周围的内容 但到目前为止似乎对任何尝试的人都不起作用 我希望得到一些提示 不需要完整的答案 谢谢 目前还不清楚你到底想做什么 但让
  • 将 CFIndex 转换为 NSUInteger?

    我如何转换typedef signed long CFIndex to typedef unsigned int NSUInteger 如果我使用一个可以吗 CFIndex作为类型的参数NSUInteger 我还没有铸造它 编译者似乎也不介
  • ios:如何使用 CGPath 模糊图像?

    我创建了一个 CGPath 区域 如绿色圆圈所示 CGPath区域需要清晰 图像的其余部分将应用模糊或半透明效果 我可以使用以下代码在CGPath内剪切图像 UIGraphicsBeginImageContext view frame si
  • 无法在 iOS UIWebView 中加载完整的 Facebook 评论插件

    我有一个简单的ViewController在 UIWebView 中加载 FB 评论插件 implementation ViewController void viewDidLoad super viewDidLoad UIWebView
  • iPhone表情插入MySQL却变成空值

    我们正在开发一个 iPhone 应用程序 它将表情符号从 iPhone 发送到服务器端 PHP 并插入到 MySQL 表中 我正在做服务器端的工作 但是insert语句执行成功后 插入的值变成空了 我可以正确插入字段 varchar 的是文
  • 加密 mongodb 中的密码字段

    我有以下代码 它插入userName and password进入数据库 但密码以纯文本格式存储 我的意思是 当我查看数据库时 我可以看到插入的密码 我想存储password in encrypted format MongoClient
  • UIView 和 UITableView 中的 UITapGestureRecognizer 冲突

    我有一个UIView我在其中添加了一个UITapGestureRecognizer 在该视图中 我还有一个子视图 其中基本上是某种UITableView 问题是为什么不UITableView识别连续点击 而是始终转到点击手势识别器的处理程序
  • prepareForSegue 和 PerformSegueWithIdentifier 发送方

    我想知道标题中的函数如何工作以及发送者参数 假设单击按钮调用了performSegue方法 那么这是否也调用了prepareSegue方法 是否在performSegue方法之前但在按下按钮之后调用prepareSegue方法 另外 这两个

随机推荐

  • 使用javascript隐藏文本框中的光标?

    如何使用 JavaScript 在 asp net 文本框中隐藏光标 我不想在文本框中看到闪烁的东西 Please不要这样做 你会破坏用户的期望 光标在那里是有原因的 当用户键入或点击删除 退格键等时 他们想知道它将发生在哪里 如果您想编辑
  • 将现有 pdf 添加到 fpdf

    有没有我可以调用的函数 以便将现有的 pdf 包含在我的fpdf file 例如 pdf gt AddPage from file example pdf 类似的东西 是否可以 fpdi 就是您正在寻找的 请参阅http www setas
  • CSS滚动条样式跨浏览器[重复]

    这个问题在这里已经有答案了 如何定义跨浏览器的 CSS 滚动条样式 我测试了这段代码 它只在 IE 和 Opera 中有效 但在 Chrome Safari 和 Firefox 中失败
  • 使用动态列和列名称进行逆透视

    我正在尝试取消透视具有大量列的表 其格式为 PID UID col1 col2 col3 下面的动态 SQL 将为我提供除列名之外的几乎所有内容 目标是使用逆透视值源自的列的名称填充 ID 字段 Build list of cols we
  • 在datagridview中如何使用复选框作为单选按钮?

    IDE Visual Studio c Winforms 应用程序 我投入了大约12个小时 但没有取得成功 作为DataGridView不提供单选按钮类型的单元格 所以我尝试使用复选框单元格作为单选按钮功能 即我只想选中一列中的一个复选框
  • 在 C# 中使用 XDocument 创建 XML 文件

    我有一个List
  • 无需登录即可在系统启动时启动应用程序

    我们有一个新的服务器正在运行 并且我们有一些新的程序执行导入例程 到目前为止一切顺利 但是有一个程序被放入自动启动文件夹 So 在管理员登录之前它不会运行 如果我们注销它就会停止 我想将其放入一个单独的会话中 这样它就可以在没有任何交互的情
  • 在弹性搜索中索引包含数学表达式的文档的最佳方法是什么?

    我试图解决的问题是我有一堆与数学表达式 公式相关的文档 我想通过公式或表达式搜索文档 到目前为止 根据我的研究 我正在考虑将数学表达式转换为乳胶格式并作为字符串存储在数据库中 弹性搜索 通过这种方法 我可以搜索带有乳胶字符串的文档吗 a2
  • 想知道 libusb_bulk_transfer 错误代码

    libusb open device deviceHandle 返回 0 but libusb bulk transfer deviceHandle 0x81 data1 512 len 0 返回 5 所以我尝试找出错误code 5 usi
  • IE替代window.stop()(取消所有挂起的请求)

    我正在寻找 IE 的 window stop 的替代方案 我尝试过 document execCommand Stop 但它似乎不起作用 我试图取消从我正在使用的 ASP 用户控件中调用的 XMLHttpRequest 我无法使用 jQue
  • 致命:无法访问私钥文件“/etc/ssl/private/ssl-cert-snakeoil.key”:权限被拒绝

    我相信我最终混淆了 etc ssl 目录树的权限 因为最后一次修改是在 11 月 18 日以及我无法让 PostgreSQL 工作的第二天进行的 当我输入时 sudo 服务 postgresql 启动 I get 致命 无法访问私钥文件 e
  • Android:在嵌套在垂直线性布局中的水平线性布局中的文本视图之间放置垂直分隔线/分隔线?

    对于 android 内容视图 我有一个垂直线性布局 其中有一些文本视图 其中有一些线来划分和分隔垂直元素 这工作正常 xml 如下
  • celerybeat相对于cron有什么优势?

    我看到很多人更喜欢 celerybeat 而不是 cron jobs 来执行定期任务 我看到了 celerybeat 的文档 并且可以看到有关如何使用它的信息 但没有看到为什么 或何时 我应该更喜欢它而不是 cronjobs http do
  • html 中如何使用 iframe?

    什么是 iframe 它在 html 中如何使用 iframe 是一个允许您在 HTML 页面中嵌入外部内容的对象 您可以使用它来显示其他网页 文档 例如 PDF 等 尽管对于复杂的媒体类型 您可能想尝试使用对象标签 您可以将 iframe
  • 仅使用 Flutter 在本地环境中托管 Web 服务器

    是否可以使用基于 Flutter 桌面的应用程序在本地环境中托管 Flutter Web 应用程序 在谷歌上搜索这样的解决方案可能很困难 因为它涉及许多导致类似情况的关键字 当您需要本地解决方案时需要在线托管 仅命令行解决方案等 经过一番挖
  • 如何访问通讯录中当前用户的记录?

    地址簿 API 中有没有办法以编程方式访问当前用户的记录 也就是说 如果这部iPhone是John Smith的 那么要获取John Smith的联系人记录 以通讯录中标记为 我 的记录为准 显然 您可以弹出选择器并让用户从其联系人中选择自
  • 使用数据库表作为 JMeter 的 CSV 数据集

    我目前正在使用 JMeter 对我公司的一个应用程序进行性能测试 该应用程序需要登录 我必须使用多个用户 在 JMeter 中通常完成此操作的方式似乎是通过 CSV 数据集 但是我可以访问数据库并可以直接从那里读取所有凭据 由于这是一个测试
  • jQuery - 选择输入字段的关联标签元素[重复]

    这个问题在这里已经有答案了 我有一组输入字段 其中一些具有关联的标签 有些没有
  • 如何减小 SSRS PDF 导出大小

    我有一份导出为 PDF 的 SSRS 报告 该报告有一张表 其中有 2 行 没有格式的标题和一条记录 创建的 PDF 导出大小为 130K 我确信这比它需要的要大得多 有什么方法可以减小 SSRS 创建的 PDF 的大小吗 或者我应该注意任
  • 如何在 iPhone/Objective C 上找出 RSA 公钥的模数和指数

    有没有可能的方法来找出使用 SecKeyGeneratePair 一般的安全框架 创建的公钥的模数和指数 我对此很困惑 但这是我找到的解决方案 不使用任何外部包 首先 转到 Apple 的 CryptoExercise 示例 从那里下载 S