public class EME_PKCS1_V1_5
extends java.lang.Object
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:
Modifier and Type | Method and Description |
---|---|
byte[] |
decode(byte[] EM)
Separate the encoded message
EM into an octet string
PS consisting of nonzero octets and a message M
as: |
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,
tr.gov.tubitak.uekae.esya.api.common.crypto.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. |
byte[] |
encode(byte[] M,
java.util.Random rnd)
Similar to the
encode(byte[], IRandom) method, except that
the source of randmoness is an instance of Random . |
static EME_PKCS1_V1_5 |
getInstance(int k) |
static EME_PKCS1_V1_5 |
getInstance(java.security.interfaces.RSAKey key) |
public static final EME_PKCS1_V1_5 getInstance(int k)
public static final EME_PKCS1_V1_5 getInstance(java.security.interfaces.RSAKey key)
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.EM
.public byte[] encode(byte[] M, tr.gov.tubitak.uekae.esya.api.common.crypto.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.EM
.public byte[] encode(byte[] M, java.util.Random rnd)
Similar to the encode(byte[], IRandom)
method, except that
the source of randmoness is an instance of Random
.
M
- the message to encode.rnd
- the Random
instance to use as a source of randomness.EM
.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.M
framed in the designated
EM
value.java.lang.IllegalArgumentException
- if the length of the designated entity
EM
is different than k
(the length in bytes of
the public shared modulus), or if any of the conditions described above
is detected.Copyright © 2025. All rights reserved.