| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Also used the infoClient in the KeyClient
Change-Id: Ie81ee731903cf8d2068783a9a09cdcbaaffc0630
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
The CryptoUtil.setSSLCiphers() has been modified to support a "-"
sign in front of the cipher name or ID to disable the cipher.
|
|
|
|
|
| |
The CryptoUtil.setSSLCipher() has been modified to support ciphers
specified using hex ID.
|
|
|
|
|
| |
The PKI CLI has been modified to support client cert authentication
without NSS database password.
|
|
|
|
|
| |
The pki.nssdb module has been modified to support operations
without NSS database password.
|
|
|
|
|
| |
The pki client-init has been modified to support creating NSS
database without password.
|
|
|
|
|
| |
The minimum SSL version for datagram should have been TLS 1.1 to
match the default in pki.conf.
|
|
|
|
|
| |
The PKI CLI has been modified to use hard-coded default values
in case the pki.conf is not available (e.g. in Eclipse).
|
|
|
|
|
| |
A new parameter has been added to pki.conf to enable/disable the
default SSL ciphers for PKI CLI.
|
|
|
|
|
| |
A new parameter has been added to pki.conf to configure the SSL
ciphers used by PKI CLI in addition to the default ciphers.
|
|
|
|
|
|
| |
The code that converts cipher name into cipher ID and enables
the cipher in CryptoUtil.setClientCiphers() has been moved into
a separate method.
|
|
|
|
|
| |
The CryptoUtil.setClientCiphers() has been modified to throw
an exception on unsupported cipher.
|
|
|
|
|
| |
The CryptoUtil.unsetSSLCiphers() has been modified not to ignore
exceptions.
|
|
|
|
|
| |
The setClientCiphers() in CryptoUtil has been renamed to
setDefaultSSLCiphers() for clarity.
|
|
|
|
|
| |
The hard-coded SSL version ranges in PKI CLI have been converted
into configurable parameters in the pki.conf.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
The CryptoUtil.setClientCiphers(String) has been reformatted to
simplify future refactoring.
|
|
|
|
| |
rfc5272 (part 1)
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The CryptoUtil.setClientCiphers() has been reformatted to simplify
future refactoring.
|
|
|
|
|
| |
The duplicate code for configuring default SSL version ranges has
been merged into reusable methods in CryptoUtil.
|
|\
| |
| | |
Added -t and --token information in pki man page.
|
| | |
|
| |
| |
| |
| |
| | |
The default pki.conf has been modified to export the environment
variables such that they can be used by PKI client.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Part of: https://pagure.io/dogtagpki/issue/1359
|
| |
| |
| |
| |
| |
| |
| | |
Update AuthMethodInterceptor to handle externally authenticated
principals. For now, access is unconditionally granted.
Part of: https://pagure.io/dogtagpki/issue/1359
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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 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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The "set auth token into request" logic is extensive and warrants
extraction. It also has a separate concern mixed in with it: the
self-assignment of the request if the authenticated user is a
"Registration Manager Agent".
Separate these concerns and extract the setAuthTokenIntoRequest
method.
Part of: https://pagure.io/dogtagpki/issue/1359
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Small refactor to define the auth token keys set by
AgentCertAuthentication in IAuthToken, so that consumers do not need
to import AgentCertAuthentication directly, or redefine the
constants.
Part of: https://pagure.io/dogtagpki/issue/1359
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The PKI CLI has been modified to support cascading configuration
files: default, system-wide, and user-specific configuration.
The existing Python-based PKI CLI was moved into pki.cli.main
module. A new shell script was added as a replacement which will
read the configuration files and invoke the Python module.
|
| | |
| | |
| | |
| | |
| | | |
The ClientCertValidateCLI has been modified to display the NSS
error code and error message for invalid certificates.
|
| | |
| | |
| | |
| | |
| | | |
A new constructor has been added into EInvalidCredentials to
support exception chaining.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Developer keyset token operations and key change over supported.
Caveats.
-The diversification step going from master key to card key uses DES3 as required for the token.
-After that point, everything is scp03 to the spec with minor excpetions so far.
Supports 128 bit AES for now. Will resolve this.
Minor config tweaks:
TPS
Symmetric Key Changeover
Use this applet for scp03:
RSA/KeyRecovery/GP211/SCP02/SCP03 applet : 1.5.558cdcff.ijc
TKS:
Symmetric Key Changeover
tks.mk_mappings.#02#03=internal:new_master
tks.defKeySet.mk_mappings.#02#03=internal:new_master
Use the uncommented one because scp03 returns a different key set data string.
ToDo:
-Support the rest of the AES sizes other than 128.
-Support optional RMAC apdu.
-Test and adjust the config capability for other tokens.
-Support AES master key. Right now the standard key ends up creating AES card and session keys.
|
| | |
| | |
| | |
| | | |
Change-Id: I6024ca5a32769b460d578dfad46598432381784c
|
| | |
| | |
| | |
| | |
| | |
| | | |
Move some of the crypto functions in EncryptionUnit to CryptoUtil.
Change-Id: Iee391392fb88a87f6af3b450b69508fd52729a62
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
On the security data recovery service, the client can now specify the
encryption and wrapping algorithms to be used when wrapping the key,
rather than assuming DES. The server will use the specified wrapping
algorithm (and key).
If the algorithms are not specified, then the old mechanism is assumed.
Change-Id: I793c120e99d819403fdf7ca925e26f0f7d50fcc7
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The PKIArchiveOptions object contains an OID for the encryption algorithm.
Use this to create the correct WrappingParam for the tranport unit instead
of defaulting to DES3.
Change-Id: Id591fff8b7fc5e4506afbe619621904e4937c44f
|
| | |
| | |
| | |
| | |
| | |
| | | |
This allows generating and storing symmetirc keys using AES.
Change-Id: I62c03aeffd127afac626759b0d826c284e01af12
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There are several changes in this patch:
1. Simplify EncryptionUnit by moving the methods called by either the StorageUnit or the
TransportUnit into those classes. This helps to determine which methods are called by
which class (because in general they require different arguments). It may be possible
to later simplify and reduce code repetition by pulling core functionality back into
the EncryptionUnit.
2. Add methods to WrappingParameters and KeyRecord to store the Wrapping Parameter values
as part of the KeyRecord when the key is stored. On retrieval, this data is read and
used to extract the data. If the data is not present, then use the old DES3 parameters.
3. Change the internal (storageUnit) wrapping to use AES-CBC for encryption and AES-KeyWrap
for storage by default. If a parameter kra.storageUnit.useOldWrapping=true, then
the old wrapping will be used instead.
Change-Id: I098b0b3bd3b0ad917483e4e07925adfedacc3562
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Fixes: https://fedorahosted.org/pki/ticket/2601
|
| | |
| | |
| | |
| | |
| | | |
Refactor key recovery to put al crypto specific operations
in a few fucntions, which are parameterized for algorithm types.
|