Tôi đang cố gắng sử dụng C# để đọc trong tệp .pem
chỉ chứa khóa công cộng RSA. Tôi không có quyền truy cập vào thông tin khóa cá nhân, cũng như ứng dụng của tôi không yêu cầu nó. Tệp tin myprivatekey.pem
bắt đầu bằngĐọc Khóa công cộng PEM RSA Chỉ sử dụng Lâu đài Bouncy
-----BEGIN PUBLIC KEY-----
và kết thúc bằng -----END PUBLIC KEY-----
.
mã hiện tại của tôi là như sau:
Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair keyPair;
using (var reader = File.OpenText(@"c:\keys\myprivatekey.pem"))
keyPair = (Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)new Org.BouncyCastle.OpenSsl.PemReader(reader).ReadObject();
Tuy nhiên mã ném một InvalidCastException
với thông điệp
Không thể cast đối tượng kiểu 'Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters 'để nhập ' Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair '.
Tôi làm cách nào để sử dụng Bouncy Castle's PemReader
để chỉ đọc khóa công khai khi không có thông tin khóa riêng tư?
Một khóa công khai duy nhất không phải là một cặp khóa. Một cặp khóa là khóa công khai * và * một khóa riêng. –