[英]Chilkat load SSHKey without knowing the type
我想知道是否可以在不直接知道类型的情况下通过 Chilkat 库加载 SSHKey。 目前我需要做这样的事情:
BOOL success = false;
if([privateKey FromOpenSshPublicKey: privateKeyString])
{
NSLog(@"key is FromOpenSshPublicKey");
success = true;
}
else if([privateKey FromPuttyPrivateKey: privateKeyString])
{
NSLog(@"key is FromPuttyPrivateKey");
success = true;
}
else if([privateKey FromRfc4716PublicKey: privateKeyString])
{
NSLog(@"key is FromRfc4716PublicKey");
success = true;
}
但是如果我想使用LastErrorText
东西,它会使日志记录有点困难。
这些方法最初是为了加载特定类型的键而编写的。 实际上,所有方法都会自动识别类型并且仍然会成功加载密钥。 例如,您可以使用 PuTTY 私钥调用 FromOpenSshPrivate 密钥,它仍然有效。 (您甚至可以将 PEM 传递给它)。
但是……您确实需要知道您有公钥还是私钥。 如果向 FromPrivateKey 传递公钥,则调用它会失败。 原因是密钥的私有部分根本不存在,如果你想加载一个私有密钥,那一定是你在做一些需要私有密钥的事情。
另一方面,公钥只是完整私钥的一部分。 如果您有私钥,根据定义,您也有公钥。 (例如,RSA 公钥由模数和指数组成,但 RSA 私钥包含模数、指数和其他部分。如果您有私钥,那么您就有了模数和指数,根据定义,您也有公钥。)因此......将私钥传递给加载公钥的方法仍然有效。 你只是通过了比必要的更多的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.