code: async function decryptPBES1(decoded, passphrase){
    // pbkdf1
    const pBuffer = jseu.encoder.stringToArrayBuffer(passphrase);
    const salt = new Uint8Array(decoded.encryptionAlgorithm.parameters.salt);
    const hash = params.passwordBasedEncryptionSchemes[decoded.encryptionAlgorithm.algorithm].hash;
    const iterationCount = decoded.encryptionAlgorithm.parameters.iterationCount.toNumber();
    const keyIv = await pbkdf.pbkdf1(pBuffer, salt, iterationCount, 16, hash);
    const key = keyIv.slice(0, 8);
    const iv = keyIv.slice(8, 16);
  
    // decryption
    const encrypt = params.passwordBasedEncryptionSchemes[decoded.encryptionAlgorithm.algorithm].encrypt;
    let out;
    // TODO: Other Encryption Scheme
    if(encrypt === 'DES-CBC') {
      const CBC = des.CBC.instantiate(des.DES);
      const ct = CBC.create({type: 'decrypt', key, iv});
      out = Buffer.from(ct.update(decoded.encryptedData).concat(ct.final()));
    }
    else throw new Error('UnsupportedEncryptionAlgorithm');
  
    return OneAsymmetricKey.decode(out, 'der');
  }
docs: //////////////////////////// PBES1 RFC8018 Section 6.1.2