Commit Graph
100 Commits
Author SHA1 Message Date
Martin Willi 876b61e132 Migrated gmp plugin to INIT/METHOD macros 2010-08-10 18:46:30 +02:00
Martin Willi 478eb66030 Fixed settings lookup if the section/key contains dots, second try 2010-08-09 14:30:16 +02:00
Martin Willi 7c03d707a5 Create a PKCS#11 session public key if we don't find one 2010-08-06 17:32:32 +02:00
Martin Willi fed9407bb1 Implemented PKCS#11 RSA public key for keys found on a token 2010-08-06 17:02:41 +02:00
Martin Willi babed73257 Export scheme_to_mechanism conversion function 2010-08-06 17:02:01 +02:00
Martin Willi a02784da5d Load certificate after enumeration 2010-08-06 17:00:23 +02:00
Martin Willi 37d2d7e158 Whitespace cleanups 2010-08-05 13:58:49 +02:00
Martin Willi e85bca7f22 Use certificate subject to get a public key of the TLS server 2010-08-05 13:13:45 +02:00
Martin Willi e82186fb5a Reimplemented mem pool to support multiple leases for a single identity 2010-08-04 09:49:59 +02:00
Martin Willi 6e4f4d2fdf Save/Load state of PKCS#11 hasher 2010-08-04 09:26:22 +02:00
Martin Willi 83e52fd12d Register hmac/xcbc algorithms after potentially underlying PKCS#11 2010-08-04 09:26:22 +02:00
Martin Willi a3aeb89227 Do initial slot enumeration manually 2010-08-04 09:26:22 +02:00
Martin Willi 0f0fc891d8 Implemented hasher_t using PKCS#11 2010-08-04 09:26:22 +02:00
Martin Willi 66267ea515 Defer certificate loading until all PKCS#11 modules are loaded 2010-08-04 09:26:21 +02:00
Martin Willi 65858b83f8 Destroy IKE_SA Managers crypto primitives during flush, the plugins are gone in destroy 2010-08-04 09:26:21 +02:00
Martin Willi 5a27bf8ad8 Provide a public PKCS#11 mechanism enumerator 2010-08-04 09:26:21 +02:00
Martin Willi efab731338 Added PKCS#11 private key support to the pki tool 2010-08-04 09:26:21 +02:00
Martin Willi 089d554a01 The pki tool uses a callback credential set to read in passphrase/PIN 2010-08-04 09:26:21 +02:00
Martin Willi 0d08ebe7ac Pass type of requested key in the callback credential set 2010-08-04 09:26:21 +02:00
Martin Willi af007ed68a Support PKCS#11 keys requiring reauthentication for each operation 2010-08-04 09:26:21 +02:00
Martin Willi 199b17122d Do not try to log in if we already have a user session 2010-08-04 09:26:21 +02:00
Martin Willi 15177f5785 Obseleted BUILD_PASSPHRASE(_CALLBACK) for private key loading, use credential sets 2010-08-04 09:26:21 +02:00
Martin Willi 3429be9514 Use a dedicated build part for challenge passwords, BUILD_PASSPHRASE gets obsolete 2010-08-04 09:26:21 +02:00
Martin Willi 0556667dca Use credential sets to load smartcard keys 2010-08-04 09:26:21 +02:00
Martin Willi 70789d28a1 Handle PIN: as a magic keyword for prompt, use getpass() to silently read credentials 2010-08-04 09:26:21 +02:00
Martin Willi 62be923683 Implemented a callback based credential set, currently for shared keys only 2010-08-04 09:26:21 +02:00
Martin Willi 0749e91bec Implemented a generic in-memory credential set, currently for shared keys only 2010-08-04 09:26:21 +02:00
Martin Willi 9587ece534 mmap() ipsec.secrets instead malloc(), proper error checking 2010-08-04 09:26:21 +02:00
Martin Willi 947298b302 Splitted up the load_secrets() function 2010-08-04 09:26:21 +02:00
Martin Willi 1e4e29076c Updated ipsec.secrets.5 regarding IKEv2 smartcard support 2010-08-04 09:26:21 +02:00
Martin Willi 57522106c4 %prompt support for smartcard PIN via "ipsec secrets" 2010-08-04 09:26:20 +02:00
Martin Willi a0bdd5d63e Implemented callback PIN invocation for PKCS#11 login 2010-08-04 09:26:20 +02:00
Martin Willi 7afc00d03c Implemented keyid discovery on all modules/slots 2010-08-04 09:26:20 +02:00
Martin Willi 0b8b664056 Pass the PKCS11 keyid as chunk, not as string 2010-08-04 09:26:20 +02:00
Martin Willi 353d10d590 Reuse generic passphrase build part, not a dedicated PIN part 2010-08-04 09:26:20 +02:00
Martin Willi 5f1e4438cb Implemented private key on top of a PKCS#11 token 2010-08-04 09:26:20 +02:00
Martin Willi d007ce3206 Extended the PKCS#11 object enumerator by attribute retrieval 2010-08-04 09:26:20 +02:00
Martin Willi ddbac66028 Use the PKCS#11 object enumerator 2010-08-04 09:26:20 +02:00
Martin Willi 9baa41c52d Implemented a generic PKCS#11 object enumerator 2010-08-04 09:26:20 +02:00
Martin Willi cd251d9a21 Unload plugins in reverse order 2010-08-04 09:26:20 +02:00
Martin Willi 3479c27931 Support module names in %smartcard specifier, streamlined smartcard building 2010-08-04 09:26:20 +02:00
Martin Willi 36c852a08b Added enumerator for PKCS#11 tokens 2010-08-04 09:26:20 +02:00
Martin Willi fe876b24d9 Handle NOT_SUPPORT return value from WaitForSlot 2010-08-04 09:26:20 +02:00
Martin Willi 66033012c9 Reenabled dlclose 2010-08-04 09:26:20 +02:00
Martin Willi a6d2ec331b Implemented a credential set on top of a PKCS#11 token 2010-08-04 09:26:20 +02:00
Martin Willi 50a9e84540 Added NSPR PR_CallOnce to leak detective whitelist 2010-08-04 09:26:20 +02:00
Martin Willi 044e0dd1b1 Added buffer checking variants of syslog functions to leak detective 2010-08-04 09:26:20 +02:00
Martin Willi c281a427e0 Moved gmp plugin before users of it 2010-08-04 09:26:19 +02:00
Martin Willi fdd7e21225 Added a token add/remove callback function to the manager 2010-08-04 09:26:19 +02:00
Martin Willi 6522d6c50b Enumerate tokens and their mechanisms, wait for slot events 2010-08-04 09:26:19 +02:00
Martin Willi 0c21dc000d Depend on libcharon until we have a thread pool to use 2010-08-04 09:26:19 +02:00
Martin Willi 75451ac8ba Add enum names for CK_MECHANISM_TYPE constants 2010-08-04 09:26:19 +02:00
Martin Willi b3b0e57cb1 Make the PKCS#11 padding string trimming public, add null terminator 2010-08-04 09:26:19 +02:00
Martin Willi 71151d3c1b Added a getter for the library alias 2010-08-04 09:26:19 +02:00
Martin Willi 2e209becbc Moved PKCS#11 library loading to dedicated manager 2010-08-04 09:26:19 +02:00
Martin Willi 50e1a710ea Use locking, prefer our mutex abstraction layer 2010-08-04 09:26:19 +02:00
Martin Willi a6456dd640 Added enum names for PKCS#11 return values 2010-08-04 09:26:19 +02:00
Martin Willi e328ef4f4c Load PKCS#11 modules defined in strongswan.conf 2010-08-04 09:26:19 +02:00
Martin Willi 34454dc39e Implemented an abstraction layer for PKCS#11 module loading 2010-08-04 09:26:19 +02:00
Martin Willi fb85d61980 Imported the free pkcs11.h header form the Scute project 2010-08-04 09:26:19 +02:00
Martin Willi 6e862e2152 Added PKCS#11 token plugin stub 2010-08-04 09:26:18 +02:00
Martin Willi 0f82a47063 Moved TLS stack to its own library 2010-08-03 15:39:26 +02:00
Martin Willi 0b71bc7af0 Moved eap-tls plugin to libcharon, updated to 4.4.1 APIs 2010-08-03 15:39:25 +02:00
Martin Willi 400df4ca7c Implemented EAP-TLS server functionality 2010-08-03 15:39:25 +02:00
Martin Willi 97abf95412 TLS stack keeps a copy of server/peer identities 2010-08-03 15:39:25 +02:00
Martin Willi c8a2fca58c Limit the number of EAP-TLS packets allowed 2010-08-03 15:39:25 +02:00
Martin Willi 8fef06a683 Use stricter state handling while processing TLS messages 2010-08-03 15:39:25 +02:00
Martin Willi dc9f34be4d Cleaned up the public TLS interface 2010-08-03 15:39:25 +02:00
Martin Willi 84d67ead4e Refactored common used operations into TLS crypto helper 2010-08-03 15:39:25 +02:00
Martin Willi 3e7e777941 Properly send empty EAP-TLS messages 2010-08-03 15:39:25 +02:00
Martin Willi 51313a39d1 Derive MSK for EAP-TLS authentication 2010-08-03 15:39:25 +02:00
Martin Willi 110364b042 Verify Server Finished message 2010-08-03 15:39:25 +02:00
Martin Willi f139b5786f Implemented input record decryption and verification 2010-08-03 15:39:25 +02:00
Martin Willi 84543e6efa Implemented key derivation, output record signing and encryption 2010-08-03 15:39:25 +02:00
Martin Willi 18010de23d Derive master secret, create Finished message 2010-08-03 15:39:25 +02:00
Martin Willi 149b7e6d01 Implemented the TLS specific PRF in its TLSv1.0 and TLSv1.2 variants 2010-08-03 15:39:24 +02:00
Martin Willi 3ddd164e5e Implemented sending of Certificate, ClientKeyExchange, CertificateVerify and ChangeCipherSpec as peer 2010-08-03 15:39:24 +02:00
Martin Willi 3a1640dea1 Implemented a tls_writer class to simplify TLS data generation 2010-08-03 15:39:24 +02:00
Martin Willi 4ef946dd64 Implemented a tls_reader class to simplify TLS data parsing 2010-08-03 15:39:24 +02:00
Martin Willi 3e962b0843 Process ServerHello(Done), Certificate(Request) messages 2010-08-03 15:39:24 +02:00
Martin Willi 698674c7f3 Send a ClientHello to start TLS negotiation 2010-08-03 15:39:24 +02:00
Martin Willi 536dbc00b9 Added TLS crypto helper, currently supports cipher suite selection 2010-08-03 15:39:24 +02:00
Martin Willi 9dc73cd21c Added support for AUTH_HMAC_SHA2_256_256, used in TLS 2010-08-03 15:39:24 +02:00
Martin Willi 4c0c2283a5 Added stubs for handshake handling, server and peer variants 2010-08-03 15:39:24 +02:00
Martin Willi 4c0124a0a2 Accept follow-up fragments with a TLS message length 2010-08-03 15:39:24 +02:00
Martin Willi 40e384ea01 Added dummy/identity implementations of the different TLS record layers 2010-08-03 15:39:24 +02:00
Martin Willi dcbbeb2d09 Pass TLS records to newly introduced TLS stack 2010-08-03 15:39:24 +02:00
Martin Willi f7f63c52e1 Added some TLS constants 2010-08-03 15:39:24 +02:00
Martin Willi b173819e5d (De-)fragment EAP-TLS packets, pass TLS records to upper layer 2010-08-03 15:39:24 +02:00
Martin Willi 2107953804 Added EAP-TLS plugin stub 2010-08-03 15:39:24 +02:00
Martin Willi 63163cc340 The va_list trick does not seem to be portable, revert dots-in-section fix
This reverts commit 8f50d06c35.
2010-07-30 10:57:59 +02:00
Martin Willi 8f50d06c35 Fixed settings lookup if the section/key contains dots 2010-07-29 12:14:32 +02:00
Martin Willi c5c921bfa3 Added NEWS for snprintf() fixes 2010-07-28 11:06:49 +02:00
Martin Willi b8aeaea80c Fix use of snprintf() in pluto subjectAltName enumeration 2010-07-28 10:54:48 +02:00
Martin Willi c118559afe Fix use of snprintf() in IETF attributes to string conversion 2010-07-28 10:54:48 +02:00
Martin Willi 018543f3a8 Fix use of snprintf() in identification DN to ASCII conversion 2010-07-28 10:54:47 +02:00
Martin Willi c8bd06c7cf More NEWS for HA functionality 2010-07-28 10:49:58 +02:00
Martin Willi 98d0343870 Implemented a HA enabled in-memory address pool 2010-07-28 10:06:19 +02:00
Martin Willi 7455ab063f Added a function to segmentate a generic integer 2010-07-28 10:06:19 +02:00
Martin Willi c03b64a4ac Reserving does not work, as our pools do not support acquiring arbitrary addresses
This reverts commit d1384080b3.
2010-07-27 12:05:39 +02:00