-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added new classes to describe the parameter of key/trust stores
- Loading branch information
Showing
10 changed files
with
1,045 additions
and
0 deletions.
There are no files selected for viewing
57 changes: 57 additions & 0 deletions
57
ph-security/src/main/java/com/helger/security/keystore/IKeyStoreAndKeyDescriptor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
* Copyright (C) 2014-2024 Philip Helger (www.helger.com) | ||
* philip[at]helger[dot]com | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
package com.helger.security.keystore; | ||
|
||
import java.security.KeyStore.PrivateKeyEntry; | ||
|
||
import javax.annotation.Nonnull; | ||
|
||
import com.helger.commons.annotation.Nonempty; | ||
|
||
/** | ||
* Interface describing the parameters needed to reference a key store with a | ||
* private key. | ||
* | ||
* @author Philip Helger | ||
* @since 11.1.10 | ||
*/ | ||
public interface IKeyStoreAndKeyDescriptor extends IKeyStoreDescriptor | ||
{ | ||
/** | ||
* Note: the case sensitivity of the key alias depends on the key store type. | ||
* | ||
* @return The alias of the key inside a key store. May neither be | ||
* <code>null</code> nor empty. | ||
*/ | ||
@Nonnull | ||
@Nonempty | ||
String getKeyAlias (); | ||
|
||
/** | ||
* @return The password required to access the key inside the key store. May | ||
* not be <code>null</code> but may be empty. | ||
*/ | ||
@Nonnull | ||
char [] getKeyPassword (); | ||
|
||
/** | ||
* @return The loaded key based on the loaded key store and the parameters in | ||
* this descriptor. | ||
*/ | ||
@Nonnull | ||
LoadedKey <PrivateKeyEntry> loadKey (); | ||
} |
69 changes: 69 additions & 0 deletions
69
ph-security/src/main/java/com/helger/security/keystore/IKeyStoreDescriptor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/* | ||
* Copyright (C) 2014-2024 Philip Helger (www.helger.com) | ||
* philip[at]helger[dot]com | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
package com.helger.security.keystore; | ||
|
||
import java.security.Provider; | ||
|
||
import javax.annotation.Nonnull; | ||
import javax.annotation.Nullable; | ||
|
||
import com.helger.commons.annotation.Nonempty; | ||
|
||
/** | ||
* Interface describing the parameters needed to reference a key store (without | ||
* a private key). | ||
* | ||
* @author Philip Helger | ||
* @since 11.1.10 | ||
*/ | ||
public interface IKeyStoreDescriptor | ||
{ | ||
/** | ||
* @return The type of the key store. May not be <code>null</code>. | ||
*/ | ||
@Nonnull | ||
IKeyStoreType getKeyStoreType (); | ||
|
||
/** | ||
* @return The path to the key store. May neither be <code>null</code> nor | ||
* empty. The interpretation of the path is implementation dependent. | ||
*/ | ||
@Nonnull | ||
@Nonempty | ||
String getKeyStorePath (); | ||
|
||
/** | ||
* @return The password required to open the key store. May not be | ||
* <code>null</code> but may be empty. | ||
*/ | ||
@Nonnull | ||
char [] getKeyStorePassword (); | ||
|
||
/** | ||
* @return The Java security provider for loading the key store. May be | ||
* <code>null</code>. | ||
*/ | ||
@Nullable | ||
Provider getProvider (); | ||
|
||
/** | ||
* @return The loaded key store based on the parameters in this descriptor. | ||
* Never <code>null</code>. | ||
*/ | ||
@Nonnull | ||
LoadedKeyStore loadKeyStore (); | ||
} |
68 changes: 68 additions & 0 deletions
68
ph-security/src/main/java/com/helger/security/keystore/ITrustStoreDescriptor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* Copyright (C) 2014-2024 Philip Helger (www.helger.com) | ||
* philip[at]helger[dot]com | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
package com.helger.security.keystore; | ||
|
||
import java.security.Provider; | ||
|
||
import javax.annotation.Nonnull; | ||
import javax.annotation.Nullable; | ||
|
||
import com.helger.commons.annotation.Nonempty; | ||
|
||
/** | ||
* Interface describing the parameters needed to reference a trust store. | ||
* | ||
* @author Philip Helger | ||
* @since 11.1.10 | ||
*/ | ||
public interface ITrustStoreDescriptor | ||
{ | ||
/** | ||
* @return The type of the trust store. May not be <code>null</code>. | ||
*/ | ||
@Nonnull | ||
IKeyStoreType getTrustStoreType (); | ||
|
||
/** | ||
* @return The path to the trust store. May neither be <code>null</code> nor | ||
* empty. The interpretation of the path is implementation dependent. | ||
*/ | ||
@Nonnull | ||
@Nonempty | ||
String getTrustStorePath (); | ||
|
||
/** | ||
* @return The password required to open the trust store. May not be | ||
* <code>null</code> but may be empty. | ||
*/ | ||
@Nonnull | ||
char [] getTrustStorePassword (); | ||
|
||
/** | ||
* @return The Java security provider for loading the trust store. May be | ||
* <code>null</code>. | ||
*/ | ||
@Nullable | ||
Provider getProvider (); | ||
|
||
/** | ||
* @return The loaded trust store based on the parameters in this descriptor. | ||
* Never <code>null</code>. | ||
*/ | ||
@Nonnull | ||
LoadedKeyStore loadTrustStore (); | ||
} |
Oops, something went wrong.