public final class PK11Store extends java.lang.Object implements CryptoStore
Modifier and Type | Field and Description |
---|---|
static org.slf4j.Logger |
logger |
protected TokenProxy |
storeProxy |
protected boolean |
updated |
Modifier | Constructor and Description |
---|---|
protected |
PK11Store() |
|
PK11Store(TokenProxy proxy) |
Modifier and Type | Method and Description |
---|---|
void |
deleteCert(X509Certificate cert)
Deletes the specified certificate and its associated private
key from the store.
|
void |
deleteCertOnly(X509Certificate cert)
Deletes the specified certificate from the store.
|
void |
deletePrivateKey(PrivateKey privateKey)
Permanently deletes a private key from the token.
|
void |
deletePublicKey(java.security.PublicKey publicKey)
Permanently deletes a public key from the token.
|
java.security.PublicKey |
findPublicKey(PrivateKey privateKey)
Returns the public key corresponding to the private key.
|
X509Certificate[] |
getCertificates()
Returns all user certificates stored on this token.
|
byte[] |
getEncryptedPrivateKeyInfo(KeyGenerator.CharToByteConverter conv,
Password pw,
Algorithm alg,
int n,
PrivateKey k)
Get an encrypted private key, with optional password
conversion.
|
byte[] |
getEncryptedPrivateKeyInfo(X509Certificate cert,
PBEAlgorithm pbeAlg,
Password pw,
int iteration)
Get an encrypted private key for the given cert.
|
PrivateKey[] |
getPrivateKeys()
Returns all private keys stored on this token.
|
java.security.PublicKey[] |
getPublicKeys()
Returns all public keys stored on this token.
|
SymmetricKey[] |
getSymmetricKeys()
Returns all symmetric keys stored on this token.
|
void |
importEncryptedPrivateKeyInfo(KeyGenerator.CharToByteConverter conv,
Password pw,
java.lang.String nickname,
java.security.PublicKey pubKey,
byte[] epkiBytes) |
PrivateKey |
importPrivateKey(byte[] key,
PrivateKey.Type type)
Imports a raw private key into this token.
|
PrivateKey |
importPrivateKey(byte[] key,
PrivateKey.Type type,
boolean temporary)
Imports a raw private key into this token.
|
protected void |
loadPrivateKeys(java.util.Collection<PrivateKey> privateKeys) |
protected void |
loadPublicKeys(java.util.Collection<java.security.PublicKey> privateKeys) |
protected void |
putCertsInVector(java.util.Vector<X509Certificate> certs) |
protected void |
putSymKeysInVector(java.util.Vector<SymmetricKey> symKeys) |
public static org.slf4j.Logger logger
protected boolean updated
protected TokenProxy storeProxy
public PK11Store(TokenProxy proxy)
protected PK11Store()
public PrivateKey importPrivateKey(byte[] key, PrivateKey.Type type) throws TokenException, KeyAlreadyImportedException
importPrivateKey
in interface CryptoStore
key
- The private key.TokenException
- If the key cannot be imported to this token.KeyAlreadyImportedException
- If the key already on this token.public PrivateKey importPrivateKey(byte[] key, PrivateKey.Type type, boolean temporary) throws TokenException, KeyAlreadyImportedException
CryptoStore
importPrivateKey
in interface CryptoStore
key
- The private key.temporary
- Whether the key should be temporary.TokenException
- If the key cannot be imported to this token.KeyAlreadyImportedException
- If the key already exists on this token.public PrivateKey[] getPrivateKeys() throws TokenException
CryptoStore
getPrivateKeys
in interface CryptoStore
TokenException
- If an error occurs on the token while
gathering the keys.protected void loadPrivateKeys(java.util.Collection<PrivateKey> privateKeys) throws TokenException
TokenException
public java.security.PublicKey[] getPublicKeys() throws TokenException
CryptoStore
getPublicKeys
in interface CryptoStore
TokenException
- If an error occurs on the token while
gathering the keys.protected void loadPublicKeys(java.util.Collection<java.security.PublicKey> privateKeys) throws TokenException
TokenException
public java.security.PublicKey findPublicKey(PrivateKey privateKey) throws TokenException, ObjectNotFoundException
CryptoStore
findPublicKey
in interface CryptoStore
TokenException
- If an error occurs on the token.ObjectNotFoundException
- If the corresponding public key is not found.public SymmetricKey[] getSymmetricKeys() throws TokenException
CryptoStore
getSymmetricKeys
in interface CryptoStore
TokenException
- If an error occurs on the token while
gathering the keys.protected void putSymKeysInVector(java.util.Vector<SymmetricKey> symKeys) throws TokenException
TokenException
public void deletePrivateKey(PrivateKey privateKey) throws NoSuchItemOnTokenException, TokenException
CryptoStore
deletePrivateKey
in interface CryptoStore
privateKey
- A private key to be permanently deleted.NoSuchItemOnTokenException
- If the given private key does
not reside on this token.TokenException
- If an error occurs on the token while
deleting the key.public void deletePublicKey(java.security.PublicKey publicKey) throws NoSuchItemOnTokenException, TokenException
CryptoStore
deletePublicKey
in interface CryptoStore
publicKey
- A public key to be permanently deleted.NoSuchItemOnTokenException
- If the given public key does
not reside on this token.TokenException
- If an error occurs on the token while
deleting the key.public byte[] getEncryptedPrivateKeyInfo(X509Certificate cert, PBEAlgorithm pbeAlg, Password pw, int iteration) throws NotInitializedException, ObjectNotFoundException, TokenException
CryptoStore
getEncryptedPrivateKeyInfo
in interface CryptoStore
cert
- Certificate of key to be exportedpbeAlg
- The PBEAlgorithm to usepw
- The password to encrypt withiteration
- Iteration count; default of 2000 if le 0NotInitializedException
ObjectNotFoundException
TokenException
public byte[] getEncryptedPrivateKeyInfo(KeyGenerator.CharToByteConverter conv, Password pw, Algorithm alg, int n, PrivateKey k)
CryptoStore
getEncryptedPrivateKeyInfo
in interface CryptoStore
conv
- Password converter. If null, pw.getByteCopy()
will be used to get password bytes.pw
- The passwordalg
- The encryption algorithmn
- Iteration count; default of 2000 if le 0k
- The private keypublic void importEncryptedPrivateKeyInfo(KeyGenerator.CharToByteConverter conv, Password pw, java.lang.String nickname, java.security.PublicKey pubKey, byte[] epkiBytes)
importEncryptedPrivateKeyInfo
in interface CryptoStore
conv
- Password converter. If null, pw.getByteCopy()
will be used to get password bytes.pw
- The passwordnickname
- Nickname to use for private keypubKey
- Public key corresponding to private keypublic X509Certificate[] getCertificates() throws TokenException
CryptoStore
getCertificates
in interface CryptoStore
TokenException
- If an error occurs on the token while
gathering the certificates.protected void putCertsInVector(java.util.Vector<X509Certificate> certs) throws TokenException
TokenException
public void deleteCert(X509Certificate cert) throws NoSuchItemOnTokenException, TokenException
deleteCert
in interface CryptoStore
cert
- certificate to be deletedNoSuchItemOnTokenException
- If the certificate not foundTokenException
- General token errorpublic void deleteCertOnly(X509Certificate cert) throws NoSuchItemOnTokenException, TokenException
deleteCertOnly
in interface CryptoStore
cert
- certificate to be deletedNoSuchItemOnTokenException
- If the certificate not foundTokenException
- General token error