|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.licel.jcardsim.crypto.KeyImpl
com.licel.jcardsim.crypto.ECKeyImpl
public abstract class ECKeyImpl
Base class for
ECPublicKeyImpl/ECPrivateKeyImpl on BouncyCastle CryptoAPI
ECKey| Field Summary | |
|---|---|
protected ByteContainer |
a
|
protected ByteContainer |
b
|
protected short |
e1
|
protected short |
e2
|
protected short |
e3
|
protected ByteContainer |
fp
|
protected ByteContainer |
g
|
protected boolean |
isKInitialized
|
protected short |
k
|
protected ByteContainer |
r
|
| Fields inherited from class com.licel.jcardsim.crypto.KeyImpl |
|---|
size, type |
| Constructor Summary | |
|---|---|
ECKeyImpl(byte keyType,
short keySize)
Construct not-initialized ecc key |
|
ECKeyImpl(org.bouncycastle.crypto.params.ECKeyParameters parameters)
Construct and initialize ecc key with ECKeyParameters. |
|
| Method Summary | |
|---|---|
void |
clearKey()
Clears the key and sets its initialized state to false. |
short |
getA(byte[] buffer,
short offset)
Returns the first coefficient of the curve of the key. |
short |
getB(byte[] buffer,
short offset)
Returns the second coefficient of the curve of the key. |
org.bouncycastle.crypto.params.ECDomainParameters |
getDomainParameters()
Get ECDomainParameters |
short |
getField(byte[] buffer,
short offset)
Returns the field specification parameter value of the key. |
short |
getG(byte[] buffer,
short offset)
Returns the fixed point of the curve. |
short |
getK()
Returns the cofactor of the order of the fixed point G of the curve. |
org.bouncycastle.crypto.KeyGenerationParameters |
getKeyGenerationParameters(SecureRandom rnd)
Get ECKeyGenerationParameters |
short |
getR(byte[] buffer,
short offset)
Returns the order of the fixed point G of the curve. |
boolean |
isInitialized()
Reports the initialized state of the key. |
void |
setA(byte[] buffer,
short offset,
short length)
Sets the first coefficient of the curve of the key. |
void |
setB(byte[] buffer,
short offset,
short length)
Sets the second coefficient of the curve of the key. |
void |
setFieldF2M(short e)
Sets the field specification parameter value for keys of type TYPE_EC_F2M_PUBLIC or TYPE_EC_F2M_PRIVATE in
the case where the polynomial is a trinomial, of the form
x^n + x^e + 1 (where n is the bit length of the key). |
void |
setFieldF2M(short e1,
short e2,
short e3)
Sets the field specification parameter value for keys of type TYPE_EC_F2M_PUBLIC or TYPE_EC_F2M_PRIVATE in
the case where the polynomial is a pentanomial, of the form
x^n + x^e1 + x^e2 + x^e3 + 1 (where n is the bit length of the key). |
void |
setFieldFP(byte[] buffer,
short offset,
short length)
Sets the field specification parameter value for keys of type TYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC. |
void |
setG(byte[] buffer,
short offset,
short length)
Sets the fixed point of the curve. |
void |
setK(short K)
Sets the cofactor of the order of the fixed point G of the curve. |
void |
setR(byte[] buffer,
short offset,
short length)
Sets the order of the fixed point G of the curve. |
| Methods inherited from class com.licel.jcardsim.crypto.KeyImpl |
|---|
getSize, getType |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface com.licel.jcardsim.crypto.KeyWithParameters |
|---|
getParameters |
| Field Detail |
|---|
protected ByteContainer a
protected ByteContainer b
protected ByteContainer g
protected ByteContainer r
protected ByteContainer fp
protected short k
protected short e1
protected short e2
protected short e3
protected boolean isKInitialized
| Constructor Detail |
|---|
public ECKeyImpl(byte keyType,
short keySize)
keyType - - key typekeySize - - key size in bitsKeyPair,
KeyBuilderpublic ECKeyImpl(org.bouncycastle.crypto.params.ECKeyParameters parameters)
KeyPair,
ECKeyParameters| Method Detail |
|---|
public void clearKey()
Key
clearKey in interface Keypublic boolean isInitialized()
KeyA Key object sets its initialized state to true only when all the associated
Key object parameters have been set at least once since the time the initialized state was set to false.
A newly created Key object sets its initialized state to false. Invocation of the
clearKey() method sets the initialized state to false. A key with transient key data
sets its initialized state to false on the associated clear events.
isInitialized in interface Keytrue if the key has been initialized
public void setFieldFP(byte[] buffer,
short offset,
short length)
throws CryptoException
ECKeyTYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC. The
specified value is the prime p corresponding to the field GF(p).
The plain text data format is big-endian and right-aligned
(the least significant bit is the least significant bit of last byte).
Input parameter data is copied into the internal representation.
Note:
javacardx.crypto.KeyEncryption
interface and the Cipher object specified via setKeyCipher()
is not null, the key value is decrypted using the Cipher object.
setFieldFP in interface ECKeybuffer - the input bufferoffset - the offset into the input buffer at which the parameter value beginslength - the byte length of the parameter value
CryptoException - with the following reason codes:
CryptoException.ILLEGAL_VALUE if the input parameter data
is inconsistent with the key length or if input data decryption is
required and fails.
CryptoException.NO_SUCH_ALGORITHM if the key is neither
of type TYPE_EC_FP_PUBLIC nor TYPE_EC_FP_PRIVATE.
public void setFieldF2M(short e)
throws CryptoException
ECKeyTYPE_EC_F2M_PUBLIC or TYPE_EC_F2M_PRIVATE in
the case where the polynomial is a trinomial, of the form
x^n + x^e + 1 (where n is the bit length of the key).
It is required that n > e > 0.
setFieldF2M in interface ECKeye - the value of the intermediate exponent of the trinomial
CryptoException - with the following reason codes:
CryptoException.ILLEGAL_VALUE if the input parameter e
is not such that 0 < e < n.
CryptoException.NO_SUCH_ALGORITHM if the key is neither
of type TYPE_EC_F2M_PUBLIC nor TYPE_EC_F2M_PRIVATE.
public void setFieldF2M(short e1,
short e2,
short e3)
throws CryptoException
ECKeyTYPE_EC_F2M_PUBLIC or TYPE_EC_F2M_PRIVATE in
the case where the polynomial is a pentanomial, of the form
x^n + x^e1 + x^e2 + x^e3 + 1 (where n is the bit length of the key).
It is required for all ei where ei = {e1, e2, e3} that n > ei > 0.
setFieldF2M in interface ECKeye1 - the value of the first of the intermediate exponents of the
pentanomiale2 - the value of the second of the intermediate exponent of the
pentanomiale3 - the value of the third of the intermediate exponents
CryptoException - with the following reason codes:
CryptoException.ILLEGAL_VALUE if the input parameters
ei where ei = {e1, e2, e3}
are not such that for all ei, n > ei > 0.
CryptoException.NO_SUCH_ALGORITHM if the key is neither
of type TYPE_EC_F2M_PUBLIC nor TYPE_EC_F2M_PRIVATE.
public void setA(byte[] buffer,
short offset,
short length)
throws CryptoException
ECKeyTYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC,
this is the value of A as an integer modulo the field specification
parameter p, that is, an integer in the range 0 to p-1.
For keys of type TYPE_EC_F2M_PRIVATE or
TYPE_EC_F2M_PUBLIC, the bit representation of this value
specifies a polynomial with binary coefficients which represents
the value of A in the field.
The plain text data format is big-endian and right-aligned
(the least significant bit is the least significant bit of last byte).
Input parameter data is copied into the internal representation.
Note:
javacardx.crypto.KeyEncryption
interface and the Cipher object specified via setKeyCipher()
is not null, the key value is decrypted using the Cipher object.
setA in interface ECKeybuffer - the input bufferoffset - the offset into the input buffer at which the
coefficient value beginslength - the byte length of the coefficient value
CryptoException - with the following reason codes:CryptoException.ILLEGAL_VALUE if the input parameter data
is inconsistent with the key length or if input data decryption is
required and fails.
public void setB(byte[] buffer,
short offset,
short length)
throws CryptoException
ECKeyTYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC,
this is the value of B as an integer modulo the field specification
parameter p, that is, an integer in the range 0 to p-1.
For keys of type TYPE_EC_F2M_PRIVATE or
TYPE_EC_F2M_PUBLIC, the bit representation of this value
specifies a polynomial with binary coefficients which represents
the value of B in the field.
The plain text data format is big-endian and right-aligned
(the least significant bit is the least significant bit of last byte).
Input parameter data is copied into the internal representation.
Note:
javacardx.crypto.KeyEncryption
interface and the Cipher object specified via setKeyCipher()
is not null, the key value is decrypted using the Cipher object.
setB in interface ECKeybuffer - the input bufferoffset - the offset into the input buffer at which the
coefficient value beginslength - the byte length of the coefficient value
CryptoException - with the following reason codes:
CryptoException.ILLEGAL_VALUE if the input parameter data
is inconsistent with the key length or if input data decryption is required
and fails.
public void setG(byte[] buffer,
short offset,
short length)
throws CryptoException
ECKeyNote:
javacardx.crypto.KeyEncryption
interface and the Cipher object specified via setKeyCipher()
is not null, the key value is decrypted using the Cipher object.
setG in interface ECKeybuffer - the input bufferoffset - the offset into the input buffer at which the
point specification beginslength - the byte length of the point specification
CryptoException - with the following reason codes:
CryptoException.ILLEGAL_VALUE if the input parameter
data format is incorrect, or if the input parameter data is inconsistent with the key length,
or if input data decryption is required and fails.
public void setR(byte[] buffer,
short offset,
short length)
throws CryptoException
ECKey
setR in interface ECKeybuffer - the input bufferoffset - the offset into the input buffer at which the order beginslength - the byte length of the order
CryptoException - with the following reason codes:
CryptoException.ILLEGAL_VALUE if the input parameter data
is inconsistent with the key length, or if input data decryption
is required and fails.
Note:
javacardx.crypto.KeyEncryption
interface and the Cipher object specified via setKeyCipher()
is not null, the key value is decrypted using the Cipher object.
public void setK(short K)
ECKeyKeyAgreement algorithm type
ALG_EC_SVDP_DHC requires that the cofactor, K, be initialized.
setK in interface ECKeyK - the value of the cofactor
public short getField(byte[] buffer,
short offset)
throws CryptoException
ECKeyTYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC,
this is the value of the prime p corresponding to the field GF(p).
For keys of type TYPE_EC_F2M_PRIVATE or
TYPE_EC_F2M_PUBLIC, it is the value whose bit representation
specifies the polynomial with binary coefficients used to define the
arithmetic operations in the field GF(2^n)
The plain text data format is big-endian and right-aligned
(the least significant bit is the least significant bit of last byte).
getField in interface ECKeybuffer - the output bufferoffset - the offset into the output buffer at which the
parameter value is to begin
CryptoException - with the following reason code:
CryptoException.UNINITIALIZED_KEY if the field specification parameter
value of the key has not been
successfully initialized since the
time the initialized state of the key was set to false.
Key
public short getA(byte[] buffer,
short offset)
throws CryptoException
ECKeyTYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC,
this is the value of A as an integer modulo the field specification
parameter p, that is, an integer in the range 0 to p-1.
For keys of type TYPE_EC_F2M_PRIVATE or
TYPE_EC_F2M_PUBLIC, the bit representation of this value
specifies a polynomial with binary coefficients which represents
the value of A in the field.
The plain text data format is big-endian and right-aligned
(the least significant bit is the least significant bit of last byte).
getA in interface ECKeybuffer - the output bufferoffset - the offset into the output buffer at which the
coefficient value is to begin
CryptoException - with the following reason code:
CryptoException.UNINITIALIZED_KEY if the coefficient of the curve
of the key has not been
successfully initialized since the
time the initialized state of the key was set to false.
Key
public short getB(byte[] buffer,
short offset)
throws CryptoException
ECKeyTYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC,
this is the value of B as an integer modulo the field specification
parameter p, that is, an integer in the range 0 to p-1.
For keys of type TYPE_EC_F2M_PRIVATE or
TYPE_EC_F2M_PUBLIC, the bit representation of this value
specifies a polynomial with binary coefficients which represents
the value of B in the field.
The plain text data format is big-endian and right-aligned
(the least significant bit is the least significant bit of last byte).
getB in interface ECKeybuffer - the output bufferoffset - the offset into the output buffer at which the
coefficient value is to begin
CryptoException - with the following reason code:
CryptoException.UNINITIALIZED_KEY if the second coefficient of the curve
of the key has not been
successfully initialized since the
time the initialized state of the key was set to false.
Key
public short getG(byte[] buffer,
short offset)
throws CryptoException
ECKey
getG in interface ECKeybuffer - the output bufferoffset - the offset into the output buffer at which the
point specification data is to begin
CryptoException - with the following reason code:
CryptoException.UNINITIALIZED_KEY if the fixed point of
the curve of the key has not been
successfully initialized since the
time the initialized state of the key was set to false.
Key
public short getR(byte[] buffer,
short offset)
throws CryptoException
ECKey
getR in interface ECKeybuffer - the output bufferoffset - the offset into the input buffer at which the order begins
CryptoException - with the following reason code:
CryptoException.UNINITIALIZED_KEY if the order of the fixed point
G of the curve of the key has not been
successfully initialized since the
time the initialized state of the key was set to false.
Key
public short getK()
throws CryptoException
ECKey
getK in interface ECKeyCryptoException - with the following reason codes:
CryptoException.UNINITIALIZED_KEY if the cofactor of the
order of the fixed point G of the curve of the key has not been
successfully initialized since the
time the initialized state of the key was set to false.
Keypublic org.bouncycastle.crypto.params.ECDomainParameters getDomainParameters()
ECDomainParameters
ECDomainParameterspublic org.bouncycastle.crypto.KeyGenerationParameters getKeyGenerationParameters(SecureRandom rnd)
ECKeyGenerationParameters
getKeyGenerationParameters in interface KeyWithParametersrnd - Secure Random Generator
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||