2017-01-11 1 views
0

Mimekit을 사용하여 MIME 메시지가 암호화되거나 서명되었는지 확인하고 싶습니다.Mimekit을 사용하여 MIME 메시지가 암호화되거나 서명되었는지 확인하는 방법은 무엇입니까?

암호를 해독하거나 서명을 확인하고 싶지 않습니다. 암호화되었거나 서명되었는지 알고 싶습니다.

IsSigned() & MimeMessage 클래스에서 IsEncrypted()하지만 이러한 함수가 존재하지 않습니다!

감사합니다.

답변

0

MimeMessage 자체는 서명되거나 암호화 될 수 없으므로 이러한 방법은 존재하지 않으므로 메시지의 Body (또는 본문의 하위 집합) 만 서명하거나 암호화 할 수 있기 때문에 이러한 방법은 존재하지 않습니다.

var pkcs7 = message.Body as ApplicationPkcs7Mime; 

bool signed = (message.Body is MultipartSigned) || 
    (pkcs7 != null && pkcs7.SecureMimeType == SecureMimeType.SignedData); 

bool encrypted = (message.Body is MultipartEncrypted) || 
    (pkcs7 != null && pkcs7.SecureMimeType == SecureMimeType.EnvelopedData); 

참고 : 당신은 S/MIME에 대해 신경 그래서 만약 MultipartEncrypted 만, PGP (하지 S/MIME)와 함께 사용, 당신은 할 필요가 없습니다

아주 간단한 해결책이 작업을 수행하는 것입니다 MultipartEncrypted을 확인하십시오.

마찬가지로 ApplicationPkcs7Mime은 S/MIME에만 사용되므로 PGP 만 신경 쓰면 ApplicationPkcs7Mime을 확인할 필요가 없습니다.

PGP와 S/MIME (모두)은 MultipartSigned을 사용하기 때문에 두 경우 모두 확인해야합니다.

내가 사용하거나 메일을받은 모든 클라이언트는 메시지의 최상위 수준 인 Body만을 서명하고/암호화하므로 위의 확인은 아마도 필요한 것일 수 있습니다. 그러나 은 MIME 호환 클라이언트가 Body의 하위 부분을 서명 및/또는 암호화하기 때문에 MIME 트리를 탐색하고 100 % 준수하려는 경우 각 노드를 확인해야합니다.

+0

감사합니다.이 모든 것이 내가 필요한 것이라고 생각합니다. –

관련 문제