C#에서 자체 서명 된 X509Certificate
으로 일부 데이터에 서명하고 있습니다. 서명 결과는 바이너리 byte[]
입니다. 이 서명을 확장자 .p7b
인 pkcs#7
형식 파일에 저장하고 싶습니다. 필요에 따라 FileStream
을 사용하여 저장합니다. 잘못된 p7b
파일을 생성합니다.x509Certificate - pkcs # 7 형식의 이진 서명 저장 (.net C#)
아무도이 서명을 유효한 외부 파일로 저장할 수 있습니까? 또는 접근법에 문제가 있다면 지적 해주십시오.
// 편집 : 코드를 추가 당신은 PKCS # 7에 정의 된 암호화 메시지 구문 (CMS) 메시지 형식을 생성하지 않는 Eugene Mayevski
// Open Store Location & fetch certificate
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
X509Certificate2Collection certifcates = store.Certificates;
X509Certificate2 certificate = certifcates[0];`
// fetch private key
string publicKeyString = certificate.GetPublicKeyString();
RSACryptoServiceProvider privateKey = certificate.PrivateKey as RSACryptoServiceProvider;
// get binary of data & sign it.
byte[] buffer = Encoding.Default.GetBytes("Sample data to sign. Although it would be a document.");
byte[] signature = privateKey.SignData(buffer, new SHA1Managed());
http://msdn.microsoft.com/en-us/library/ms180948%28v=vs.85%29.aspx를 보셨습니까? 인증서를 저장하는 대신 서명을 저장 하시겠습니까? – BatteryBackupUnit
예, 서명 자체를 저장해야합니다. 내가 제공 한 링크를 살펴 보았습니다. 나는 네임 스페이스'System.Security.Cryptography.pkcs'를 사용할 수 없기 때문에이 기능들이 .net 4.0에 캡슐화되어 있다고 생각한다. 어쨌든 데이터가 서명 및 검증 중입니다. 내가 원하는 건 서명을 적절한 파일 형식으로 저장하는 것뿐입니다. – Ram
먼저 서명을 생성하는 데 사용하는 코드를 확인하는 것이 좋습니다. 실제로 PKCS # 7 서명을 생성하지 않아도되므로 문제가 될 수 있습니다. –