|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.mozilla.jss.pkcs11.PK11Token
public final class PK11Token
A PKCS #11 token. Currently, these can only be obtained from the CryptoManager class.
CryptoManager
Nested Class Summary | |
---|---|
static class |
PK11Token.NotInitializedException
Thrown if the operation requires that the token be logged in, and it isn't. |
Field Summary | |
---|---|
protected PK11Store |
cryptoStore
|
protected boolean |
mIsInternalCryptoToken
|
protected boolean |
mIsInternalKeyStorageToken
|
protected TokenProxy |
tokenProxy
|
Fields inherited from interface org.mozilla.jss.crypto.CryptoToken |
---|
EVERY_TIME, ONE_TIME, TIMEOUT |
Constructor Summary | |
---|---|
protected |
PK11Token()
|
protected |
PK11Token(byte[] pointer,
boolean internal,
boolean keyStorage)
Creates a new PK11Token. |
Method Summary | |
---|---|
protected void |
changePassword(byte[] oldPIN,
byte[] newPIN)
Change the password on the token from the old one to the new one. |
void |
changePassword(PasswordCallback oldPINcb,
PasswordCallback newPINcb)
Change password. |
SymmetricKey |
cloneKey(SymmetricKey key)
Allows a SymmetricKey to be cloned on a different token. |
boolean |
doesAlgorithm(Algorithm alg)
Determines whether this token is capable of performing the given algorithm. |
boolean |
equals(java.lang.Object obj)
Deep-comparison operator. |
java.lang.String |
generateCertRequest(java.lang.String subject,
int keysize,
java.lang.String keyType,
byte[] P,
byte[] Q,
byte[] G)
Generates a PKCS#10 certificate request including Begin/End brackets |
protected java.lang.String |
generatePK10(java.lang.String subject,
int keysize,
java.lang.String keyType,
byte[] P,
byte[] Q,
byte[] G)
|
Cipher |
getCipherContext(EncryptionAlgorithm algorithm)
Creates a Cipher object, which can be used for encryption and decryption. |
CryptoStore |
getCryptoStore()
Get the CryptoStore interface to this token's objects. |
JSSMessageDigest |
getDigestContext(DigestAlgorithm algorithm)
Creates a Digest object. |
KeyGenerator |
getKeyGenerator(KeyGenAlgorithm algorithm)
Creates a KeyGenerator object, which can be used to generate symmetric encryption keys. |
KeyPairGenerator |
getKeyPairGenerator(KeyPairAlgorithm algorithm)
Creates a KeyPairGenerator object, which can be used to generate key pairs. |
KeyWrapper |
getKeyWrapper(KeyWrapAlgorithm algorithm)
|
int |
getLoginMode()
Returns the login mode of this token: ONE_TIME, TIMEOUT, or EVERY_TIME. |
int |
getLoginTimeoutMinutes()
Returns the login timeout period. |
java.lang.String |
getName()
Obtain the nickname, or label, of this token. |
java.security.Provider |
getProvider()
|
TokenProxy |
getProxy()
|
java.security.SecureRandom |
getRandomGenerator()
|
Signature |
getSignatureContext(SignatureAlgorithm algorithm)
Creates a Signature object, which can perform signing and signature verification. |
protected void |
initPassword(byte[] ssopw,
byte[] userpw)
|
void |
initPassword(PasswordCallback ssopwcb,
PasswordCallback userpwcb)
Initialize PIN. |
boolean |
isInternalCryptoToken()
|
boolean |
isInternalKeyStorageToken()
|
boolean |
isLoggedIn()
Find out if the token is currently logged in. |
boolean |
isPresent()
Determines if the given token is present on the system. |
boolean |
isWritable()
|
void |
login(PasswordCallback callback)
Log into the token. |
void |
logout()
Log out of the token. |
protected PasswordCallbackInfo |
makePWCBInfo()
|
protected void |
nativeLogin(PasswordCallback callback)
|
boolean |
needsLogin()
returns true if this token needs to be logged into before it can be used. |
boolean |
passwordIsInitialized()
Determine whether the token has been initialized yet. |
protected boolean |
PWInitable()
Make sure the PIN can be initialized. |
void |
setLoginMode(int mode)
Sets the login mode of this token. |
void |
setLoginTimeoutMinutes(int timeoutMinutes)
Sets the timeout period for logging in. |
protected boolean |
SSOPasswordIsCorrect(byte[] ssopw)
|
protected boolean |
userPasswordIsCorrect(byte[] pw)
Check the given password, return true if it's right, false if it's wrong. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected boolean mIsInternalCryptoToken
protected boolean mIsInternalKeyStorageToken
protected TokenProxy tokenProxy
protected PK11Store cryptoStore
Constructor Detail |
---|
protected PK11Token()
protected PK11Token(byte[] pointer, boolean internal, boolean keyStorage)
pointer
- A byte array containing a pointer to a PKCS #11 slot.Method Detail |
---|
public Signature getSignatureContext(SignatureAlgorithm algorithm) throws java.security.NoSuchAlgorithmException, TokenException
CryptoToken
getSignatureContext
in interface CryptoToken
algorithm
- The algorithm used for the signing/verification.
java.security.NoSuchAlgorithmException
- If the given
algorithm is not supported by this provider.
TokenException
public JSSMessageDigest getDigestContext(DigestAlgorithm algorithm) throws java.security.NoSuchAlgorithmException, java.security.DigestException
CryptoToken
getDigestContext
in interface CryptoToken
algorithm
- The algorithm used for digesting.
java.security.NoSuchAlgorithmException
- If this provider
does not support the given algorithm.
java.security.DigestException
public Cipher getCipherContext(EncryptionAlgorithm algorithm) throws java.security.NoSuchAlgorithmException, TokenException
CryptoToken
getCipherContext
in interface CryptoToken
algorithm
- The algorithm used for encryption/decryption.
java.security.NoSuchAlgorithmException
- If this provider
does not support the given algorithm.
TokenException
public KeyGenerator getKeyGenerator(KeyGenAlgorithm algorithm) throws java.security.NoSuchAlgorithmException, TokenException
CryptoToken
getKeyGenerator
in interface CryptoToken
algorithm
- The algorithm that the keys will be used with.
java.security.NoSuchAlgorithmException
- If this token does not
support the given algorithm.
TokenException
public SymmetricKey cloneKey(SymmetricKey key) throws SymmetricKey.NotExtractableException, java.security.InvalidKeyException, TokenException
cloneKey
in interface CryptoToken
SymmetricKey.NotExtractableException
- If the key material
cannot be extracted from the current token.
java.security.InvalidKeyException
- If the owning token cannot process
the key to be cloned.
TokenException
public KeyWrapper getKeyWrapper(KeyWrapAlgorithm algorithm) throws java.security.NoSuchAlgorithmException, TokenException
getKeyWrapper
in interface CryptoToken
java.security.NoSuchAlgorithmException
TokenException
public java.security.SecureRandom getRandomGenerator() throws NotImplementedException, TokenException
NotImplementedException
TokenException
public KeyPairGenerator getKeyPairGenerator(KeyPairAlgorithm algorithm) throws java.security.NoSuchAlgorithmException, TokenException
CryptoToken
getKeyPairGenerator
in interface CryptoToken
algorithm
- The algorithm that the keys will be used with (RSA,
DSA, EC, etc.)
java.security.NoSuchAlgorithmException
- If this token does
not support the given algorithm.
TokenException
public boolean isLoggedIn() throws TokenException
CryptoToken
isLoggedIn
in interface CryptoToken
TokenException
CryptoToken.login(org.mozilla.jss.util.PasswordCallback)
,
CryptoToken.logout()
public boolean needsLogin() throws TokenException
CryptoToken
needsLogin
in interface CryptoToken
TokenException
CryptoToken.login(org.mozilla.jss.util.PasswordCallback)
,
CryptoToken.logout()
public void login(PasswordCallback callback) throws PK11Token.NotInitializedException, IncorrectPasswordException, TokenException
login
in interface CryptoToken
callback
- A callback to use to obtain the password, or a
Password object.
PK11Token.NotInitializedException
- The token has not yet been
initialized.
IncorrectPasswordException
- The specified password
was incorrect.
TokenException
CryptoToken.setLoginMode(int)
,
CryptoManager.setPasswordCallback(org.mozilla.jss.util.PasswordCallback)
protected void nativeLogin(PasswordCallback callback) throws PK11Token.NotInitializedException, IncorrectPasswordException, TokenException
PK11Token.NotInitializedException
IncorrectPasswordException
TokenException
public boolean isWritable()
public boolean isPresent()
isPresent
in interface CryptoToken
public void logout() throws TokenException
logout
in interface CryptoToken
TokenException
- If you are already logged in, or an
unspecified error occurs.public int getLoginMode() throws TokenException
CryptoToken
getLoginMode
in interface CryptoToken
TokenException
- If an error occurs on the token.CryptoToken.getLoginTimeoutMinutes()
public void setLoginMode(int mode) throws TokenException
CryptoToken
setLoginMode
in interface CryptoToken
mode
- ONE_TIME, TIMEOUT, or EVERY_TIME
TokenException
- If this mode is not supported by this token,
or an error occurs on the token.CryptoToken.login(org.mozilla.jss.util.PasswordCallback)
,
CryptoToken.setLoginTimeoutMinutes(int)
public int getLoginTimeoutMinutes() throws TokenException
CryptoToken
getLoginTimeoutMinutes
in interface CryptoToken
TokenException
- If an error occurs on the token.CryptoToken.getLoginMode()
public void setLoginTimeoutMinutes(int timeoutMinutes) throws TokenException
CryptoToken
setLoginTimeoutMinutes
in interface CryptoToken
TokenException
- If timeouts are not supported by this
token, or an error occurs on the token.CryptoToken.setLoginMode(int)
public void initPassword(PasswordCallback ssopwcb, PasswordCallback userpwcb) throws IncorrectPasswordException, AlreadyInitializedException, TokenException
initPassword
in interface CryptoToken
ssopw
- The security officer's current password.userpw
- The user's new password.
IncorrectPinException
- If the security officer PIN is
incorrect.
TokenException
- If the PIN was already initialized,
or there was an unspecified error in the token.
IncorrectPasswordException
- If the supplied security officer
password is incorrect.
AlreadyInitializedException
- If the token only allows one
password initialization, and it has already occurred.protected boolean PWInitable() throws TokenException
TokenException
protected boolean SSOPasswordIsCorrect(byte[] ssopw) throws TokenException, AlreadyInitializedException
TokenException
AlreadyInitializedException
protected void initPassword(byte[] ssopw, byte[] userpw) throws IncorrectPasswordException, AlreadyInitializedException, TokenException
IncorrectPasswordException
AlreadyInitializedException
TokenException
public boolean passwordIsInitialized() throws TokenException
passwordIsInitialized
in interface CryptoToken
TokenException
- If an error occurs on the token.public void changePassword(PasswordCallback oldPINcb, PasswordCallback newPINcb) throws IncorrectPasswordException, TokenException
changePassword
in interface CryptoToken
oldPIN
- The user's old PIN.newPIN
- The new PIN.
IncorrectPasswordException
- If the old PIN is incorrect.
TokenException
- If some other error occurs on the token.protected PasswordCallbackInfo makePWCBInfo()
protected boolean userPasswordIsCorrect(byte[] pw) throws TokenException
TokenException
protected void changePassword(byte[] oldPIN, byte[] newPIN) throws IncorrectPasswordException, TokenException
IncorrectPasswordException
TokenException
public java.lang.String getName()
CryptoToken
getName
in interface CryptoToken
public java.security.Provider getProvider()
public CryptoStore getCryptoStore()
CryptoToken
getCryptoStore
in interface CryptoToken
public boolean equals(java.lang.Object obj)
equals
in interface CryptoToken
equals
in class java.lang.Object
compare
is null.public boolean doesAlgorithm(Algorithm alg)
doesAlgorithm
in interface CryptoToken
alg
- A JSS algorithm. Note that for Signature, a token may
fail to support a specific SignatureAlgorithm (such as
RSASignatureWithMD5Digest) even though it does support the
generic algorithm (RSASignature). In this case, the signature
operation will be performed on that token, but the digest
operation will be performed on the internal token.
public java.lang.String generateCertRequest(java.lang.String subject, int keysize, java.lang.String keyType, byte[] P, byte[] Q, byte[] G) throws TokenException, java.security.InvalidParameterException, PQGParamGenException
generateCertRequest
in interface CryptoToken
subject
- subject dn of the certificatekeysize
- size of the keykeyType
- "rsa" or "dsa"P
- The DSA prime parameterQ
- The DSA sub-prime parameterG
- The DSA base parameter
TokenException
java.security.InvalidParameterException
PQGParamGenException
protected java.lang.String generatePK10(java.lang.String subject, int keysize, java.lang.String keyType, byte[] P, byte[] Q, byte[] G) throws TokenException, java.security.InvalidParameterException
TokenException
java.security.InvalidParameterException
public TokenProxy getProxy()
public boolean isInternalCryptoToken()
public boolean isInternalKeyStorageToken()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |