2016-08-22 2 views
-1

에는 개인 키가 있습니다. RSA 알고리즘에서 데이터에 서명하는 데 사용하고 싶습니다. 인증서를 사용하여 데이터에 서명하는 방법을 알고 있습니다. 하지만 난 문자열 형식의 개인 키를 사용하여 생성하고 사용하는 방법이 없습니다 RSACryptoServiceProvider문자열 개인 키를 사용하여 RSACryptoServiceProvide를 만드는 방법

내 코드는 다음과 유사합니다.

어느 날이 X509Certificate를 만들 수 있습니다 경우

string privateKey = "-----BEGIN PRIVATE KEY-----\nsometext\nsometext\nsometext\.....\n-----END PRIVATE KEY-----\n" 
var rasAlg = new RSACryptoServiceProvider()// how can i use my private key here. 
var signature = rasAlg.SignData(bytesArray, new SHA256CryptoServiceProvider()); 

편집은 또한 괜찮습니다.

+0

편도'RSA.FromXmlString (의 PrivateKey)는'난 xmlString을로 내보낼 때 XML – Plutonix

+0

@Plutonix 같은 키 저장은 그 계수, 지수, P, Q, DP, DQ, InverseQ, D. 출력한다 그래서 어떻게 개인 키를 사용할 수 있습니까? –

+0

Modulus, P, Q, DP, DQ, InverseQ 및 D는 개인 키입니다. (그리고 대부분의 도서관은 Exponent도 필요합니다.) 공개 키는 단지 모듈러스와 지수입니다. – bartonjs

답변

-1

나는 탄력성이 좋은 성 도서관을 발견했습니다. 나는 탄력성 성 필기 판독기를 사용하여 문자열에서 그것을 읽었다.

AsymmetricKeyParameter keyPair; 

using (var reader = new StringReader(privateKey)) 
    keyPair = (AsymmetricKeyParameter)new PemReader(reader).ReadObject(); 
관련 문제