RSA.ImportEncryptedPkcs8PrivateKey 方法

定义

重载

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

使用基于字节的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

使用基于字符的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

Source:
RSA.cs
Source:
RSA.cs
Source:
RSA.cs

使用基于字节的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

public:
 override void ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<System::Byte> passwordBytes, ReadOnlySpan<System::Byte> source, [Runtime::InteropServices::Out] int % bytesRead);
public override void ImportEncryptedPkcs8PrivateKey (ReadOnlySpan<byte> passwordBytes, ReadOnlySpan<byte> source, out int bytesRead);
override this.ImportEncryptedPkcs8PrivateKey : ReadOnlySpan<byte> * ReadOnlySpan<byte> * int -> unit
Public Overrides Sub ImportEncryptedPkcs8PrivateKey (passwordBytes As ReadOnlySpan(Of Byte), source As ReadOnlySpan(Of Byte), ByRef bytesRead As Integer)

参数

passwordBytes
ReadOnlySpan<Byte>

解密密钥材料时用作密码的字节。

source
ReadOnlySpan<Byte>

ASN.1-BER 编码中 PKCS#8 EncryptedPrivateKeyInfo 结构的字节。

bytesRead
Int32

此方法返回时,包含一个指示从 source 中读取的字节数的值。 该参数未经初始化即被处理。

例外

密码不正确。

- 或 -

source 的内容表示要应用的密钥派生功能 (KDF) 是旧的 PKCS#12 KDF,需要基于 Char 的密码。

- 或 -

source 的内容不表示 ASN.1-BER 编码的 PKCS#8 EncryptedPrivateKeyInfo 结构。

- 或 -

source 的内容指示密钥用于此实例表示的算法以外的算法。

- 或 -

source 的内容表示密钥采用的格式不受支持。

- 或 -

特定于算法的密钥导入失败。

注解

密码字节直接传递到 Key Derivation 函数 (KDF) 由 EncryptedPrivateKeyInfo 内容指示的算法使用。 这样就可以与使用 PBKDF2 (基于密码的密钥派生函数 2) 处理密码时使用 UTF-8 以外的文本编码的其他系统兼容。

此方法仅支持 EncryptedPrivateKeyInfo 的二进制 (BER/CER/DER) 编码。 如果值为 Base64 编码或 PEM 文本格式,则调用方在调用此方法之前必须对内容进行 Base64 解码。

适用于

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Source:
RSA.cs
Source:
RSA.cs
Source:
RSA.cs

使用基于字符的密码解密之后,从 PKCS#8 EncryptedPrivateKeyInfo 结构中导入公/私钥对,以替换此对象的密钥。

public:
 override void ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<char> password, ReadOnlySpan<System::Byte> source, [Runtime::InteropServices::Out] int % bytesRead);
public override void ImportEncryptedPkcs8PrivateKey (ReadOnlySpan<char> password, ReadOnlySpan<byte> source, out int bytesRead);
override this.ImportEncryptedPkcs8PrivateKey : ReadOnlySpan<char> * ReadOnlySpan<byte> * int -> unit
Public Overrides Sub ImportEncryptedPkcs8PrivateKey (password As ReadOnlySpan(Of Char), source As ReadOnlySpan(Of Byte), ByRef bytesRead As Integer)

参数

password
ReadOnlySpan<Char>

用于解密密钥材料的密码。

source
ReadOnlySpan<Byte>

ASN.1-BER 编码中 PKCS#8 EncryptedPrivateKeyInfo 结构的字节。

bytesRead
Int32

此方法返回时,包含一个指示从 source 中读取的字节数的值。 该参数未经初始化即被处理。

例外

密码不正确。

- 或 -

source 的内容不表示 ASN.1-BER 编码的 PKCS#8 EncryptedPrivateKeyInfo 结构。

- 或 -

source 的内容指示密钥用于此实例表示的算法以外的算法。

- 或 -

source 的内容表示密钥采用的格式不受支持。

- 或 -

特定于算法的密钥导入失败。

注解

当 的内容 source 指示使用 PBKDF1 (基于密码的密钥派生函数 1) 或 PBKDF2 (基于密码的密钥派生函数 2) 的算法时,密码将通过 UTF-8 编码转换为字节。

此方法仅支持 EncryptedPrivateKeyInfo 的二进制 (BER/CER/DER) 编码。 如果值为 Base64 编码或 PEM 文本格式,则调用方在调用此方法之前必须对内容进行 Base64 解码。

适用于