【问题标题】:How to create openssh keys on iOS via Objective-C code如何通过 Objective-C 代码在 iOS 上创建 openssh 密钥
【发布时间】:2017-04-13 07:37:08
【问题描述】:

我们可以通过命令'ssh-keygen...'获取openssh密钥,或者通过命令'openssl genrsa...'获取openssl密钥。但是我可以通过 Objective-C 代码在我的 iOS 应用程序中执行此操作吗?任何帮助将不胜感激。

【问题讨论】:

  • 你是在调用Objective-C OC吗?...
  • @EmilioPelaez 是的...

标签: objective-c openssh


【解决方案1】:

您需要使用像 OpenSSL 这样的库来生成密钥。这不是 Objective-C,但您可以与 C 库进行交互,因为 Objective-C 是一个超集。您需要阅读文档才能完全了解该库的工作原理,但这是一个简单的示例:

RSA *myrsa;
unsigned long e = RSA_3;
BIO* out = NULL;
myrsa = RSA_generate_key(2048,e,NULL,NULL);

out=BIO_new(BIO_s_file());

if (myrsa == NULL) {
    /* error handling here /*
}

你会想把关键数据写到某个地方。如果没有更具体的例子来说明你在做什么,这是我能提供的最好的。

有关在项目中使用 OpenSSL 库的信息,请参阅:https://github.com/krzyzanowskim/OpenSSL

【讨论】:

  • 感谢您的帮助!!让我试一试。
  • 祝你好运!如果您还有任何问题,请跟进。
  • 我在同一条船上,试图在 iOS 设备上生成私有和公共 SSH 密钥。我正在运行 OpenSSL,并且可以使用 RSA_generate_key 成功创建密钥。但我没有找到有关如何继续并从生成的私钥创建 SSH 公钥的信息。提前致谢!
  • @CinderBiscuits 我有一个公钥 pem 文件“public-key.pem”,我想生成“cnf”指纹。在终端中,我可以使用命令 $ ssh-keygen -i -f public-key.pem -m PKCS8 -i > pubkey-ssh.pub # 转换为 SSH 格式的公钥 $ awk '{print $2}' pubkey -ssh.pub | base64 -d | sha256sum | awk '{打印 $1}' | xxd -r -p | base64 如何在 Objective-C 中使用 OpenSSL 实现这一目标
猜你喜欢
  • 2013-04-14
  • 2011-07-28
  • 1970-01-01
  • 2021-05-05
  • 2014-05-12
  • 1970-01-01
  • 2021-09-28
  • 2021-07-20
  • 2012-02-05
相关资源
最近更新 更多