我们有这个商业案例,我们的 c# web 应用程序将为相应的 iOS 移动设备生成一个公钥/私钥对。移动设备将使用公钥加密数据并将其发送回服务器。
我正在使用以下 c# 代码。
const int PROVIDER_RSA_FULL = 1;
const string CONTAINER_NAME = "KeyContainer";
CspParameters cspParams;
cspParams = new CspParameters(PROVIDER_RSA_FULL);
cspParams.KeyContainerName = CONTAINER_NAME;
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
var rsa = new RSACryptoServiceProvider(2048,cspParams);
rsa.PersistKeyInCsp = false;
string publicPrivateKeyXML = rsa.ToXmlString(true);
之后,我不知道如何将 rsa.ToXmlString 以它可以与 Objective-c 加密库支持的格式获取到 iOS 应用程序。如何在不使用 OpenSSL 的情况下将公钥(模数 + 指数)转换为 iOS 可以理解和加密数据的东西。这个密钥生成会发生很多(不是一次),任何新的库都必须在使用前获得批准。因此,不需要额外库的答案受到青睐。