aboutsummaryrefslogtreecommitdiffstats
path: root/src/pubkey/pkcs8.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Quite the hack, here.lloyd2010-03-041-1/+1
| | | | | | | | | | | | | | | | | GOST 34.10 public keys use a funky encoding. There is no standard for PKCS #8 format private keys, so the obvious choice is to act exactly the same as ECDSA/ECDH (following the rule of thumb that if you're going to make up a random non-standard thing, at least try to copy something that's standard for something else). However the public key encoding uses a weird scheme for encoding the OID in the algorithm identifier, which we don't want to use for the PKCS #8 encoding. Add a new function to Private_Key, pkcs8_algorithm_identifier, which by default just calls algorithm_identifier(). However GOST_3410_PrivateKey overrides it, and calls EC_PublicKey::algorithm_identifier(), basically skipping over the virtual function hierarchy, so it doesn't pick up the funky format from the public key's version of algorithm_identifier().
* Add a new constructor to each public key algorithm (only the publiclloyd2010-03-041-16/+2
| | | | | | | keys so far, private keys not changed) that takes an AlgorithmIdentifier and a MemoryRegion<byte>&. This performs the X.509 decoding. It is not possible anymore to create uninitialized PK objects.
* The code in pk_codecs was actually entirely tied to the code inlloyd2010-03-041-0/+309
| | | | | | pubkey; you literally could not compile any pubkey code without it. Move it up to the pubkey dir, it wasn't at all useful to have it in its own dir.
* Move back to pk_codecs, propagate to pubkey-refactor donelloyd2009-07-211-313/+0
|
* Move from pk_codecs to pubkey to solve merge problemlloyd2009-07-211-0/+313