Проверьте и извлеките исходные данные из строки PKCS7 base 64 - PullRequest
0 голосов
/ 29 октября 2018

Я использую следующий пример кода для получения исходных данных из сообщения в кодировке PKCS7 base 64 https://www.example -code.com / nodejs / crypt_opaque_pkcs7_cms_signature.asp

сообщение в кодировке base64 содержит данные и подпись.

Вот мой код:

    var Response = "base64 string";

var cert = new chilkat.Cert();    
var success = cert.LoadFromFile("/path/to/abc.cer");
if (success !== true) {
    console.log(cert.LastErrorText);
    console.log("Certificate Load Failed.");    
}

var vCrypt = new chilkat.Crypt2();
success = vCrypt.SetVerifyCert(cert);
if (success !== true) {
  console.log(vCrypt.LastErrorText);
  console.log("SetVerifyCert Failed.");
}

vCrypt.EncodingMode = "base64";
vCrypt.Charset = "utf-8";

var extractedData = vCrypt.OpaqueVerifyStringENC(anbResponse);
if (vCrypt.LastMethodSuccess !== true) {
  console.log(vCrypt.LastErrorText);
  console.log("OpaqueVerifyStringENC Failed.");
}
else{
    console.log("The extracted data: " + extractedData);
}

Получение следующей ошибки:

ChilkatLog:
  OpaqueVerifyStringENC:
    DllDate: Aug 25 2018
    ChilkatVersion: 9.5.0.75
    UnlockPrefix: Anything for 30-day trial
    Architecture: Little Endian; 64-bit
    Language: Windows Node.js
    VerboseLogging: 0
    verifyOpaqueSignature:
      loadPkcs7Der:
        der_to_xml:
          ASN data length exceeds remaining number of bytes available.
          tag: 18
          idClass: 0
          bConstructed: 1
          headerLen: 2
          dataLen: 66
          inlen: 64
          Abort ASN.1 processing...
          recursiveDepth: 2
          Abort ASN.1 processing...
          recursiveDepth: 1
        --der_to_xml
        loadPkcs7Xml_inner:
          Expected oid tag for 1st child in PKCS7
        --loadPkcs7Xml_inner
        xml:
        Failed to load PKCS7 XML
      --loadPkcs7Der
      Failed to create PKCS7 from DER.
    --verifyOpaqueSignature
    Failed to verify opaque signature.
  --OpaqueVerifyStringENC
--ChilkatLog

OpaqueVerifyStringENC Failed.

1 Ответ

0 голосов
/ 30 октября 2018

Если вы можете, опубликуйте передаваемую вами строку base64 в OpaqueVerifyStringENC.

Кроме того, вы можете вставить строку base64 в онлайн-инструмент на https://lapo.it/asn1js/ чтобы увидеть, если он также не может декодировать и прочитать полученный ASN.1

...