Blob FilePrivateKeyStorage::encodeSubjectPublicKeyInfo (const OID& oid, const ptr_lib::shared_ptr<DerNode>& parameters, const ptr_lib::shared_ptr<DerNode>& bitString) { ptr_lib::shared_ptr<DerSequence> algorithmIdentifier(new DerSequence()); algorithmIdentifier->addChild(ptr_lib::make_shared<DerNode::DerOid>(oid)); algorithmIdentifier->addChild(parameters); DerSequence result; result.addChild(algorithmIdentifier); result.addChild(bitString); return result.encode(); }
Blob FilePrivateKeyStorage::encodePkcs8PrivateKey (const vector<uint8_t>& privateKeyDer, const OID& oid, const ptr_lib::shared_ptr<DerNode>& parameters) { ptr_lib::shared_ptr<DerSequence> algorithmIdentifier(new DerSequence()); algorithmIdentifier->addChild(ptr_lib::make_shared<DerNode::DerOid>(oid)); algorithmIdentifier->addChild(parameters); DerSequence result; result.addChild(ptr_lib::make_shared<DerNode::DerInteger>(0)); result.addChild(algorithmIdentifier); result.addChild(ptr_lib::make_shared<DerNode::DerOctetString> (&privateKeyDer[0], privateKeyDer.size())); return result.encode(); }