com.sun.squawk.security.ecc
Class FFA
java.lang.Object
com.sun.squawk.security.ecc.FFA
public final class FFA
- extends Object
Simple and fast big-integer implementation suited for
public key cryptography.
API:
Conventions (for all functions but 'mul' and 'sqr'):
The functions require that their arguments have the same length.
The arguments are given in the following sequence:
r ... result
a ... operand a
b ... operand b
The same int-array that is used for one or more of the operands
can be used to store the result at the same time.
Exceptions:
- For 'mul' and 'sqr', the result must have twice the size of
the operands. Therefore it is not possible to store the result
to the same array that is used for either of the operands.
- 'copy' and 'cmp' can handle arrays of different sizes.
In addition, this class provides methods to acquire varibles of
a specific size. To reduce creation of new objects, it is possible
to release the variables after use, so that they can be recycled
(re-acquired).
Implementation details:
Big integers are represented by int-arrays in little endian
word order, using only 28 bits per word.
Example:
a[0] ... bits 27 ~ 0
a[1] ... bits 55 ~ 28
etc.
Bits 31 ~ 28 in each integer are 0.
Constructor Summary |
FFA(int bitLength)
|
Method Summary |
int[] |
acquireDoubleVar()
|
int[] |
acquireVar()
|
int[] |
acquireVar(int bits)
|
int |
add(int[] r,
int[] a,
int[] b)
|
int[] |
adjustLength(int[] a)
|
int |
bitLength(int[] a)
|
int |
cmp(int[] a,
int[] b)
|
void |
copy(int[] r,
int[] a)
|
int[] |
from(byte[] a,
int ofs,
int len)
|
int[] |
from(int[] a)
|
int[] |
from(int[] r,
byte[] a,
int ofs,
int len)
|
int[] |
from(int[] r,
int[] a)
|
int[] |
from(int[] r,
String a)
|
int[] |
from(String a)
|
int |
getBitSize()
|
int |
getByteSize()
|
int |
getIntSize()
|
boolean |
is(int[] a,
int val)
|
boolean |
isEven(int[] a)
|
boolean |
isOdd(int[] a)
|
void |
mod(int[] a,
int[] b)
|
void |
mul(int[] r,
int[] a,
int[] b)
|
void |
releaseVar(int[] var)
|
void |
set(int[] r,
int val)
|
int |
shl(int[] r,
int[] a,
int n)
|
int |
shr(int[] r,
int[] a,
int n)
|
void |
sqr(int[] r,
int[] a)
|
int |
sub(int[] r,
int[] a,
int[] b)
|
boolean |
testBit(int[] a,
int bit)
|
void |
toByteArray(byte[] dst,
int ofs,
int len,
int[] a)
|
String |
toString(int[] a)
|
void |
xor(int[] r,
int[] a,
int[] b)
|
BITS_PER_WORD
public static final int BITS_PER_WORD
- See Also:
- Constant Field Values
BMASK
public static final int BMASK
- See Also:
- Constant Field Values
FFA
public FFA(int bitLength)
acquireDoubleVar
public int[] acquireDoubleVar()
acquireVar
public int[] acquireVar()
acquireVar
public int[] acquireVar(int bits)
add
public int add(int[] r,
int[] a,
int[] b)
adjustLength
public int[] adjustLength(int[] a)
bitLength
public int bitLength(int[] a)
cmp
public int cmp(int[] a,
int[] b)
copy
public void copy(int[] r,
int[] a)
from
public int[] from(String a)
from
public int[] from(byte[] a,
int ofs,
int len)
from
public int[] from(int[] a)
from
public int[] from(int[] r,
String a)
from
public int[] from(int[] r,
byte[] a,
int ofs,
int len)
from
public int[] from(int[] r,
int[] a)
getBitSize
public int getBitSize()
getByteSize
public int getByteSize()
getIntSize
public int getIntSize()
is
public boolean is(int[] a,
int val)
isEven
public boolean isEven(int[] a)
isOdd
public boolean isOdd(int[] a)
mod
public void mod(int[] a,
int[] b)
mul
public void mul(int[] r,
int[] a,
int[] b)
releaseVar
public void releaseVar(int[] var)
set
public void set(int[] r,
int val)
shl
public int shl(int[] r,
int[] a,
int n)
shr
public int shr(int[] r,
int[] a,
int n)
sqr
public void sqr(int[] r,
int[] a)
sub
public int sub(int[] r,
int[] a,
int[] b)
testBit
public boolean testBit(int[] a,
int bit)
toByteArray
public void toByteArray(byte[] dst,
int ofs,
int len,
int[] a)
toString
public String toString(int[] a)
xor
public void xor(int[] r,
int[] a,
int[] b)
Copyright © 2006-2009 Sun Microsystems, Inc. All Rights Reserved.