我使用软件ksp中的主密钥使用Always Encrypted加密数据库。
密钥是用CngKey.Create创建的,我也可以导出它,但是之后我就卡住了。使用CngKey.Import会创建一个非命名键,这意味着IsEphemeral = true,因此当没有句柄时键会被销毁。
如何将密钥导入为将保留的命名密钥?
最终目标是能够将用作主加密密钥的密钥导出到db,并将其与db备份一起提供给想要使用db的party x。然后,该工具应在第x方机器中重新创建密钥。
答案 0 :(得分:1)
我相信(基于模糊的回忆和a similar answer)您可以同时进行创建导入,除非它是加密的PKCS#8。
byte[] exported = key.Export(blobType);
将exported和blobType发送到其他地方。
var keyParams = new CngKeyCreationParameters();
// whatever else you want to assign here.
// Add an import to the create step.
keyParams.Properties.Add(new CngProperty(blobType.Format, exported, CngPropertyOptions.None));
CngKey key = CngKey.Create(algorithm, keyName, keyParams);
答案 1 :(得分:0)