summaryrefslogtreecommitdiffstats
path: root/base
Commit message (Collapse)AuthorAgeFilesLines
...
* Refactored FeatureCLI.Endi S. Dewata2017-03-273-5/+14
| | | | | The FeatureCLI and its submodules have been modified to use lazy initialization to get the PKIClient object.
* Refactored AuthorityCLI.Endi S. Dewata2017-03-277-9/+26
| | | | | The AuthorityCLI and its submodules have been modified to use lazy initialization to get the PKIClient object.
* Modify storage unit to generate a new IVAde Lee2017-03-249-34/+68
| | | | | | | | | | | | | | | | | Currently, the storage unit reuses the same IV each time a record is stored. This works (probably) for DES3, but not for AES. The getWrappingParams() method is modified to check the config as follows (in order): -- if the iv is defined, use that iv -- if the length is defined, generate a byte array of that length -- return null To ensure that the same IV used to encrypt the secret is stored in the DB, the wrapping param is defined once in the archival process, and passed in to the wrapping functions in storageUnit. Change-Id: Ia6696adf56fc7a4e90f83948c7549b64a38ab854
* Change CRMFPopClient to use AES-KeyWrap with paddingAde Lee2017-03-243-37/+86
| | | | | | | | | | | | | | | | | | Also made a couple of small changes to WrappingParams. * Set the wrapIV to null when AES KeyWrap is used. Trying to unpack the PKIArchiveOptions package with this IV set to null fails. * removed superfluous this modifiers. Added a parameter KEY_WRAP_PARAMETER_SET which is set in /etc/pki/pki.conf. If this parameter is set to 0, we will use the old DES3 algorithms. This can be set by clients talking to old servers. CRMFPopClient has the ability to automatically submit requests to a CA. In this case, we shouldcontact the server and determine the version using InfoClient, and choose the algorithm accordingly. We will implement this in a separate patch. Change-Id: Ib4a99545cb59b62a96c272311595e96dda10979e
* Merge github.com:dogtagpki/pkiAde Lee2017-03-2466-229/+306
|\
| * Refactored UserCLI.Endi S. Dewata2017-03-2415-38/+57
| | | | | | | | | | The UserCLI and its submodules have been modified to use lazy initialization to get the PKIClient object.
| * Refactored SecurityDomainCLI.Endi S. Dewata2017-03-242-4/+9
| | | | | | | | | | The SecurityDomainCLI and its submodule have been modified to use lazy initialization to get the PKIClient object.
| * Refactored KRA KeyCLI.Endi S. Dewata2017-03-2411-31/+56
| | | | | | | | | | The KRA KeyCLI and its submodules have been modified to use lazy initialization to get the PKIClient object.
| * Refactored GroupCLI.Endi S. Dewata2017-03-2411-28/+43
| | | | | | | | | | The CertCLI and its submodules have been modified to use lazy initialization to get the PKIClient object.
| * Refactored CA CertCLI.Endi S. Dewata2017-03-2412-39/+61
| | | | | | | | | | The CA CertCLI and its submodules have been modified to use lazy initialization to get the PKIClient object.
| * Refactored SubsystemCLI.Endi S. Dewata2017-03-246-70/+52
| | | | | | | | | | | | The SubsystemCLI and its subclasses have been modified to use lazy initialization to get the PKIClient object. They also have been simplified by moving common methods to the base class.
| * Refactored ProxyCLI.Endi S. Dewata2017-03-241-2/+2
| | | | | | | | | | The ProxyCLI has been modified to use lazy initialization to get the PKIClient object.
| * Refactored ClientCLI.Endi S. Dewata2017-03-246-14/+12
| | | | | | | | | | The ClientCLI and its submodules have been modified to use lazy initialization to get the PKIClient object.
| * Refactored CLI.getClient().Endi S. Dewata2017-03-242-3/+4
| | | | | | | | | | The CLI.getClient() has been modified to return the parent CLI's PKIClient object if available.
| * Added CLI.getConfig().Endi S. Dewata2017-03-242-0/+10
| | | | | | | | | | A new CLI.getConfig() has been added to return the parent CLI's configuration if available.
* | Refactor code that creates PKIArchiveOptions objectsAde Lee2017-03-2321-929/+235
|/ | | | | | | | | | | | | | * Refactor code in CryptoUtil to parametrize the algorithms used. * Moved WrappingParams to utils jar to allow correct compilation. * Removed code that created a PKIArchiveOptions structure from CRMFPopClient and replaced with calls to CryptoUtil methods. Note that the algorithms have been left as DES3. They will be changed to AES in the next patch. * Converted code in AuthorityKeyExportCLI to use the new methods in CryptoUtil. * Removed DRMTest this code is no longer maintained or used. Change-Id: I8f625f0310877dca68f6a01285b6ff4e27e7f34a
* Added comparator function to versionAde Lee2017-03-222-20/+54
| | | | Change-Id: I862c86994e6268860380404113a9bea0d237d60e
* Added infoClient to PKIClient to get server infoAde Lee2017-03-212-11/+8
| | | | | | Also used the infoClient in the KeyClient Change-Id: Ie81ee731903cf8d2068783a9a09cdcbaaffc0630
* Fix Java client to use AESAde Lee2017-03-218-50/+267
| | | | | | | | | | | | | | | | | | | | | | * Changed the client to use AES-128-CBC-PAD rather than DES-3. Because AES-256-CBC-PAD has no OID defined, we use the following hack: * Pass in the AES-256-CBC OID as the encrypt algorithm OID * Use PKCS#1.5 Padding. * Changed the client to use AES for the wrapping key on retrieval. * Changed the server to implicitly assume PKCS#1.5 (and a key size of 128) when recieving the OID for AES. * Changed the client to send, and the server to pass through the encryption algorithm expected when retrieving the key. * Fixed the generate_iv() function to generate an appropriately sized IV on retrieval. This code has been tested to successfully create and retrieve secrets using AES. Ideally, we'd be using GCM rather than CBC, which then requires no padding - and no hack needed. Hopefully, we can get that working in a subsequent commit. Change-Id: Ic9e8d50169be0fe357a48a5a1b1c452c7a3dfad0
* Added support for disabling SSL ciphers in pki.conf.Endi S. Dewata2017-03-212-2/+10
| | | | | The CryptoUtil.setSSLCiphers() has been modified to support a "-" sign in front of the cipher name or ID to disable the cipher.
* Added support for hex cipher IDs in pki.conf.Endi S. Dewata2017-03-212-4/+10
| | | | | The CryptoUtil.setSSLCipher() has been modified to support ciphers specified using hex ID.
* Allowing client cert auth without NSS database password.Endi S. Dewata2017-03-211-11/+0
| | | | | The PKI CLI has been modified to support client cert authentication without NSS database password.
* Allowing pki pkcs12-import without NSS database password.Endi S. Dewata2017-03-211-1/+1
| | | | | The pki.nssdb module has been modified to support operations without NSS database password.
* Allowing pki client-init without NSS database password.Endi S. Dewata2017-03-211-10/+20
| | | | | The pki client-init has been modified to support creating NSS database without password.
* Fixed default value for SSL datagram.Endi S. Dewata2017-03-201-1/+1
| | | | | The minimum SSL version for datagram should have been TLS 1.1 to match the default in pki.conf.
* Added hard-coded default values for SSL parameters in PKI CLI.Endi S. Dewata2017-03-201-5/+5
| | | | | The PKI CLI has been modified to use hard-coded default values in case the pki.conf is not available (e.g. in Eclipse).
* Added pki.conf parameter for default SSL ciphers.Endi S. Dewata2017-03-192-1/+11
| | | | | A new parameter has been added to pki.conf to enable/disable the default SSL ciphers for PKI CLI.
* Added pki.conf parameter for SSL ciphers.Endi S. Dewata2017-03-193-0/+22
| | | | | A new parameter has been added to pki.conf to configure the SSL ciphers used by PKI CLI in addition to the default ciphers.
* Refactored CryptoUtil.setClientCiphers().Endi S. Dewata2017-03-191-6/+11
| | | | | | The code that converts cipher name into cipher ID and enables the cipher in CryptoUtil.setClientCiphers() has been moved into a separate method.
* Fixed error handling in CryptoUtil.setClientCiphers().Endi S. Dewata2017-03-191-1/+3
| | | | | The CryptoUtil.setClientCiphers() has been modified to throw an exception on unsupported cipher.
* Fixed error handling in CryptoUtil.unsetSSLCiphers().Endi S. Dewata2017-03-191-7/+7
| | | | | The CryptoUtil.unsetSSLCiphers() has been modified not to ignore exceptions.
* Renamed CryptoUtil.setClientCiphers().Endi S. Dewata2017-03-194-5/+5
| | | | | The setClientCiphers() in CryptoUtil has been renamed to setDefaultSSLCiphers() for clarity.
* Added configuration parameters for SSL version ranges.Endi S. Dewata2017-03-192-2/+32
| | | | | The hard-coded SSL version ranges in PKI CLI have been converted into configurable parameters in the pki.conf.
* Fixed PKIClient initialization in PKI CLI.Endi S. Dewata2017-03-193-2/+13
| | | | | | | | The PKI CLI has been modified such that it initializes the PKIClient (and retrieves the access banner) only if the CLI needs to access the PKI server. https://pagure.io/dogtagpki/issue/2612
* Cleaned up CryptoUtil.setClientCiphers(String).Endi S. Dewata2017-03-181-24/+17
| | | | | The CryptoUtil.setClientCiphers(String) has been reformatted to simplify future refactoring.
* pagure#2605 (add one missing method) CMC feature: id-cmc-identityProofV2 per ↵Christina Fu2017-03-171-0/+5
| | | | rfc5272 (part 1)
* pagure#2605 CMC feature: id-cmc-identityProofV2 per rfc5272 (part 1)Christina Fu2017-03-173-1/+220
| | | | | | This patch provides methods that can be shared between the CA and the ISharedToken plugins: 1. the convenience routines for quick encryption, decryption, hashing methods that take default algorithms. 2. The establishment of Issuance Protection Certificate
* Moved default SSL configuration out of PKIConnection.Endi S. Dewata2017-03-172-6/+5
| | | | | | | To prevent conflicts, the code that configures the default SSL version ranges and ciphers for all SSL sockets created afterwards has been moved out of PKIConnection into the main program (i.e. PKI CLI).
* Default NSS database for PKI CLI.Endi S. Dewata2017-03-171-4/+24
| | | | | | The PKI CLI has been modified to create a default NSS database without a password if there is no existing database at the expected location.
* Cleaned up CryptoUtil.setClientCiphers().Endi S. Dewata2017-03-171-19/+23
| | | | | The CryptoUtil.setClientCiphers() has been reformatted to simplify future refactoring.
* Removed duplicate code to configure SSL version ranges.Endi S. Dewata2017-03-174-75/+75
| | | | | The duplicate code for configuring default SSL version ranges has been merged into reusable methods in CryptoUtil.
* Merge pull request #1 from amolkahat/pki_manEndi S. Dewata2017-03-161-1/+7
|\ | | | | Added -t and --token information in pki man page.
| * Added -t and --token information in pki man page.Amol Kahat2017-03-081-1/+7
| |
* | Exporting environment variables for PKI client.Endi S. Dewata2017-03-162-21/+13
| | | | | | | | | | The default pki.conf has been modified to export the environment variables such that they can be used by PKI client.
* | Add config options to allow storage wrappings to be setAde Lee2017-03-164-11/+70
| | | | | | | | | | | | | | | | | | | | Wrapping params can now be specified in CS.cfg as per design. The default will be AES. If the parameters are not set, then the old mechanism (DES) will be used instead. A migration script will be created in a separate commit. Change-Id: I01a74b99c4ed127d66e5b766357af59a1147839d
* | Update ACLInterceptor to support external principalsFraser Tweedale2017-03-161-12/+29
| | | | | | | | | | | | | | | | | | | | | | For external principal support, ACLInterceptor must handle GenericPrincipal instances in addition to PKIPrincipal. Specifically, if the principal is a GenericPrincipal, the auth token is set to an ExternalAuthToken, and the authz manager is looked up by the realm of the principal (it is assumed that the principal name has the form "id@realm"). Part of: https://pagure.io/dogtagpki/issue/1359
* | Update SessionContextInterceptor to handle external principalsFraser Tweedale2017-03-161-9/+10
| | | | | | | | Part of: https://pagure.io/dogtagpki/issue/1359
* | Update AuthMethodInterceptor to handle external principalsFraser Tweedale2017-03-161-11/+16
| | | | | | | | | | | | | | Update AuthMethodInterceptor to handle externally authenticated principals. For now, access is unconditionally granted. Part of: https://pagure.io/dogtagpki/issue/1359
* | Add IAuthToken implementation for external principalsFraser Tweedale2017-03-161-0/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Many parts of Dogtag expect an IAuthToken, which represents the authenticated user. The sole implementation, AuthToken, uses some concepts that do not carry across to externally authenticated principals, e.g. an external principal does not have an associated IAuthManager that was used to authenticate the principal. Therefore something different is needed. Implement ExternalAuthToken which wraps a GenericPrincipal and provides access to the data therein. Part of: https://pagure.io/dogtagpki/issue/1359
* | Add groups and request attributes to external principalsFraser Tweedale2017-03-164-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | Add the ExternalAuthenticationValve valve, which, if an externally authenticated principal is available, reads the REMOTE_USER_GROUP information from the Coyote request and adds the groups ("roles" in Tomcat terminology) to the principal. It also saves a complete copy of the request attribute map in the princpial. The new class ExternalPrincipal is used to achieve this. Part of: https://pagure.io/dogtagpki/issue/1359