如何在 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 公钥的模数和指数 的相关文章

  • 如何在 iOS 中将 NSData 变量转换为 NSInteger 变量

    我有以下返回的 api 方法NSData 我在另一个视图控制器中调用了这个方法 如何转换NSData to NS整数 NSData getBusXMLAtStop NSString stopnumber NSMutableURLReques
  • 继承属性,从 readonly 继承的属性中读写时不会合成 setter

    我在使用属性时发现了一个奇怪的行为 该属性被继承为只读 然后在继承的类中重新声明为读写 In A h interface A NSObject property nonatomic strong readonly NSObject some
  • 有没有办法直观地看到精灵套件的 SKPhysicsbody 边界线?

    我在用bodyWithPolygonFromPath定义物理体的体积 我使用http dazchong com spritekit http dazchong com spritekit 获取所需的路径 但路径似乎不正确 我希望查看物理体路
  • Siri - 联系人搜索行为类似于 Skype 的音频通话

    我正在实现一个 VoIP 应用程序 我需要通过 Siri 发起呼叫 我能够通过 Siri 发起呼叫 但问题是 每次启动应用程序时 尽管联系人不在应用程序的联系人列表中 我不知道如何以及在哪里处理这个问题 我的意思是 如果应用程序没有像 Sk
  • 如何使 RSACryptoServiceProvider 在没有填充(nopadding)的情况下工作?

    我需要使 C 应用程序与 Java 应用程序兼容 Java 应用程序使用Cipher getInstance RSA ECB nopadding 初始化器使密码 ECB 和无填充 但是 在 C 中 您有 2 个填充选项 OAEP 填充或 P
  • UICollectionViewFlowLayout IOS的​​minimumLineSpacing属性

    对于UICollectionViewFlowLayout的属性minimumLineSpacing 苹果的文档说 对于垂直滚动网格 该值表示最小值 连续行之间的间距 对于水平滚动的网格 该值表示连续列之间的最小间距 我测试它和代码的一部分是
  • 如何使用 Swift 将文本复制到剪贴板/粘贴板

    我正在寻找一个干净的示例 说明如何将文本复制到 iOS 剪贴板 然后可以在其他应用程序中使用 粘贴 该功能的好处是可以快速复制文本 无需传统文本复制的标准文本突出显示功能 我假设关键课程位于UIPasteboard 但在中找不到相关区域他们
  • iPhone UIWebview——保存已下载的图像

    我有一个带有嵌入式 UIWebview Safari 控件的 iPhone 应用程序 我希望能够在本地存储某些网页的图像 我可以通过编程方式访问UIWebview下载图像的路径吗 或者我需要解析HTML 然后去网上找到图像资源并再次下载 我
  • UIView表面自定义变换/动画(如“水滴效果”)

    实施方式是什么自定义转换 动画 在视图表面 类似于所附图片 not只是视图边界 问题主要在于一般的方法是什么做到这一点 不完全是 水滴效应 但任何例子肯定会受到赞赏 我想 这是层布局 网格 的某种 算法 转换 但不确定以哪种方式 挖掘 它
  • 穷人序列号生成方案

    我想得到一些简单的方案 算法 用于根据一些唯一的硬件ID CPU ID或以太网MAC地址或硬盘序列号 生成序列号 我希望方案仅在一个方向上工作 因此客户端计算机上的应用程序可以验证序列号但不能生成序列号 所以破解起来并不简单 现在很可能大多
  • 如何在 iOS 企业帐户中创建开发人员配置文件请求?

    我们有 iOS 企业帐户 现在我们想要向我们的团队添加一名开发人员 该开发人员将创建一个开发人员配置文件 问题是新添加的开发人员在他的苹果帐户中看不到配置文件标签 任何人都知道新添加的开发人员如何创建配置文件 感谢您 Steps 您可以通过
  • 如何更改 iOS 5 中 UITabBarItem 中文本的颜色

    iOS 5 中有更多外观控制 我们如何更改 UITabBarItem 文本颜色 从默认白色变为其他颜色 编辑 工作解决方案 UITabBarItem appearance setTitleTextAttributes NSDictionar
  • MFMailComposeViewController 立即关闭

    情况是 MFMailComposeViewController 将被呈现 我看到它已经完成了一半 但后来就被驳回了 这是错误 serviceViewControllerReady 错误 错误域 UIViewServiceInterfaceE
  • 以点值检测 iPhone 6/6+ 屏幕尺寸

    鉴于新发布的 iPhone 6屏幕尺寸 http www apple com iphone compare iPhone 6 1334h 750w 2x in points 667h 375w iPhone 6 1920 1080 3x i
  • 关闭 iPhone 网络应用程序

    我想关闭或最小化 隐藏 全屏 iPhone Web 应用程序 这个怎么做 window close 不起作用 你不能 您无法从 JavaScript 中退出浏览器 但你可以尝试让浏览器崩溃 但这并不是一个好主意
  • 如何处理 iPhone 屏幕尺寸/背景图像分辨率

    在 iPhoneX 之后 我真的很纠结于支持所有设备的图像尺寸和命名约定 有没有办法在 4 7 5 5 和 5 8 屏幕上使用 3x 图像 全屏图像视图应该使用的确切尺寸是多少 您可以使用图像 pdf格式 因此您只需要管理 1x 的单比例图
  • 在后台线程上搜索

    我试图在 iPhone 应用程序中搜索数千个对象 但是搜索严重滞后 每次击键后 UI 都会冻结 1 2 秒 为了防止这种情况 我必须在后台线程上执行搜索 我想知道是否有人有一些在后台线程上搜索的提示 我读了一点NSOperation并在网上
  • 特别分发:应用程序安装失败

    我已经为我尝试分发的应用程序创建了一个临时存档和一个 ipa 文件 我还创建了一个分发配置文件 其中包含我计划将应用程序分发到的设备的 UDID 当我将 ipa 和 mobileprovision 文件拖到 iTunes 中并尝试将应用程序
  • 如何在 iPhone 中查找本周的最后一天?

    在我的应用程序中 我使用以下代码来检索当前日期和星期 NSDate today1 NSDate date NSDateFormatter dateFormat NSDateFormatter alloc init dateFormat se
  • Flipboard 动画

    有谁知道如何构建像 Flipboard 应用程序一样的翻转动画 谢谢 如果你指的是翻页过渡 请查看我编写的 OpenGL 过渡类 https github com epatel EPGLTransitionView https github

随机推荐

  • 使用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