Как получить «smime.p7s» из электронной почты и извлечь имя отправителя и название организации в Node.js

#node.js #ssl-certificate #digital-signature #smime

Вопрос:

Моя задача-убедиться, что электронное письмо имеет цифровую подпись, и прочитать имена отправителя и организации.

Я попытался использовать пакет «imap». Этот фрагмент считывает содержимое основного текста, а затем пытается проанализировать атрибуты

 msg.on('body', function(stream, info) {  var buffer = '';  stream.on('data', function(chunk) {  buffer  = chunk.toString('utf8');  });  msg.once("attributes", (attrs) =gt; {   //TODO  });  }  

В теле письма, если на нем есть цифровая подпись, я вижу что-то вроде этого:

 ------=_NextPart_000_0008_01D7CCA9.33F25DA0 Content-Type: application/pkcs7-signature;  name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s"  MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIycDCCBlUw ggQ9oAMCAQICBHYpB MwDQYJKoZIhvcNAQELBQAwgZkxCzAJBgNVBAYTAkRFMQ8wDQYDVQQIDAZC YXllcm4xETAPBgNVBAcMCE11ZW5jaGVuMRAwDgYDVQQKDAdTaWVtZW5zMREwDwYDVQQFEwhaWlpa WlpBMTEdMBsGA1UECwwUU2llbWVucyBUcnVzdCBDZW50ZXIxIjAgBgNVBAMMGVNpZW1lbnMgUm9 ... ------=_NextPart_000_0008_01D7CCA9.33F25DA0--  

И я ожидаю, что будут какие-то вложения attributes . Но там ничего нет.

введите описание изображения здесь

Если я прикреплю файл, я смогу увидеть и прочитать этот файл из параметров атрибута.

Как я могу получить цифровую подпись и извлечь имена отправителя и организации в Node.js? Возможно ли это вообще? Если это невозможно, как я могу проверить цифровую подпись и быть уверенным, что все в порядке?