aboutsummaryrefslogtreecommitdiffstats
path: root/src/pubkey/rw/rw.h
Commit message (Collapse)AuthorAgeFilesLines
* Shuffle things around. Add NIST X.509 test to build.lloyd2014-01-011-107/+0
|
* Fairly huge update that replaces the old secmem types with std::vectorlloyd2012-05-181-4/+4
| | | | | | using a custom allocator. Currently our allocator just does new/delete with a memset before deletion, and the mmap and mlock allocators have been removed.
* Use size_t instead of u32bit in all of pubkeylloyd2010-10-121-5/+5
|
* More Doxygen updates/fixeslloyd2010-06-151-2/+8
|
* Move where pk_ops is included, remove rng.h from dl_algo.hlloyd2010-03-211-0/+1
|
* Deconstify PK_Ops. It's quite reasonable that some op will want tolloyd2010-03-091-3/+4
| | | | | | | | | | | | | precompute only as needed, or will want to access some other expensive resource or etc. Change how the secret for generating blinding is done in cases where a PRNG isn't available. Use the operations public op to hide the secret, for instance the seed for a DH blinding variable is 2^x mod p. Make use of being able to mutate internal structures in the RW signer, since that does have access to a PRNG, so use it to initialize the blinder on first call to sign().
* Add back in blinding to RSA, RW, ElGamal, and DH.lloyd2010-03-081-0/+2
| | | | | | | | | | | | | | | | There are multiple unsatisfactory elements to the current solution, as compared to how blinding was previously done: Firstly, blinding is only used in the baseline implementations; the code using OpenSSL and GMP is not protected by blinding at all. Secondly, at the point we need to set up blinding, there is no access to a PRNG. Currently I am going with a quite nasty solution, of using a private key parameter to seed a simple PRNG constructed as: SHA-512(TS1 || private_key_param || public_key_param || TS2) I really want to fix both of these elements but I'm not sure how to do so easily.
* Remove the now no-op classes PK_Encrypting_Key,lloyd2010-03-081-3/+1
| | | | | PK_Decrypting_Key, PK_Signing_Key, PK_Verifying_with_MR_Key, and PK_Verifying_wo_MR_Key.
* Remove IF_Corelloyd2010-03-051-6/+3
|
* Constify sign and verify opslloyd2010-03-051-2/+2
|
* Remove sign and verify ops from key typeslloyd2010-03-051-6/+0
|
* Rename PK_Ops::Signature_Operation to PK_Ops::Signaturelloyd2010-03-051-1/+1
| | | | Rename PK_Ops::KA_Operation to PK_Ops::Key_Agreement
* Add verification ops for all signature key typeslloyd2010-03-051-1/+17
|
* Add signature generation operation classes. Remove sign() fromlloyd2010-03-051-5/+24
| | | | | | PK_Signing_Key, though for the moment the class remains because there are a few pieces of code that use it to detect if signatures are supported, or for passing to functions in look_pk
* Remove IF_Scheme_PrivateKey::PKCS8_load_hooklloyd2010-03-041-4/+1
|
* New IF constructors, simplifies RSA/RWlloyd2010-03-041-3/+10
|
* Remove more load hookslloyd2010-03-041-1/+4
|
* Add similar decoding constructors to the private keyslloyd2010-03-041-2/+8
|
* Add a new constructor to each public key algorithm (only the publiclloyd2010-03-041-2/+6
| | | | | | | 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.
* Thomas Moschny passed along a request from the Fedora packagers which camelloyd2009-03-301-10/+12
| | | | | | | | | | | | | | | up during the Fedora submission review, that each source file include some text about the license. One handy Perl script later and each file now has the line Distributed under the terms of the Botan license after the copyright notices. While I was in there modifying every file anyway, I also stripped out the remainder of the block comments (lots of astericks before and after the text); this is stylistic thing I picked up when I was first learning C++ but in retrospect it is not a good style as the structure makes it harder to modify comments (with the result that comments become fewer, shorter and are less likely to be updated, which are not good things).
* Rename pk dir to pubkey, avoids tab-completion collision with pk_padlloyd2008-10-011-0/+54