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 |
|
Martin Willi
|
45c992474c
|
Mem pool does not support multiple leases for an identity
|
2010-07-27 09:54:27 +02:00 |
|
Martin Willi
|
7eeb687d59
|
Flush any remaining cache state if an IKE_SA goes down
|
2010-07-27 09:18:06 +02:00 |
|