gnu.crypto.sig.rsa
Class EME_PKCS1_V1_5
public class EME_PKCS1_V1_5
An implementation of the EME-PKCS1-V1.5 encoding and decoding methods.
EME-PKCS1-V1.5 is parameterised by the entity
k
which is the
byte count of an RSA public shared modulus.
References:
- Public-Key Cryptography
Standards (PKCS) #1:
RSA Cryptography Specifications Version 2.1.
Jakob Jonsson and Burt Kaliski.
byte[] | decode(byte[] EM) - Separate the encoded message
EM into an octet string
PS consisting of nonzero octets and a message M
as:
EM = 0x00 || 0x02 || PS || 0x00 || M.
|
byte[] | encode(byte[] M) - Generates an octet string
PS of length k - mLen -
3 consisting of pseudo-randomly generated nonzero octets.
|
byte[] | encode(byte[] M, Random rnd) - Similar to the
encode(byte[],IRandom) method, except that
the source of randmoness is an instance of Random .
|
byte[] | encode(byte[] M, IRandom irnd) - Similar to
encode(byte[]) method, except that the source of
randomness to use for obtaining the padding bytes (an instance of
IRandom ) is given as a parameter.
|
static EME_PKCS1_V1_5 | getInstance(RSAKey key)
|
static EME_PKCS1_V1_5 | getInstance(int k)
|
decode
public byte[] decode(byte[] EM)
Separate the encoded message
EM
into an octet string
PS
consisting of nonzero octets and a message
M
as:
EM = 0x00 || 0x02 || PS || 0x00 || M.
If the first octet of
EM
does not have hexadecimal value
0x00
, if the second octet of
EM
does not have
hexadecimal value
0x02
, if there is no octet with hexadecimal
value
0x00
to separate
PS
from
M
,
or if the length of
PS
is less than
8
octets,
output "decryption error" and stop.
EM
- the designated encoded message.
- the decoded message
M
framed in the designated
EM
value.
encode
public byte[] encode(byte[] M)
Generates an octet string
PS
of length
k - mLen -
3
consisting of pseudo-randomly generated nonzero octets. The
length of
PS
will be at least eight octets.
The method then concatenates
PS
, the message
M
,
and other padding to form an encoded message
EM
of length
k
octets as:
EM = 0x00 || 0x02 || PS || 0x00 || M.
This method uses a default PRNG to obtain the padding bytes.
M
- the message to encode.
encode
public byte[] encode(byte[] M,
Random rnd)
M
- the message to encode.rnd
- the Random
instance to use as a source of randomness.
encode
public byte[] encode(byte[] M,
IRandom irnd)
Similar to
encode(byte[])
method, except that the source of
randomness to use for obtaining the padding bytes (an instance of
IRandom
) is given as a parameter.
M
- the message to encode.irnd
- the IRandom
instance to use as a source of randomness.
Copyright © 2001, 2002, 2003
Free Software Foundation,
Inc. All Rights Reserved.