public final class EdDSAEngine
extends java.security.Signature
The EdDSA sign and verify algorithms do not interact well with the Java Signature API, as one or more update() methods must be called before sign() or verify(). Using the standard API, this implementation must copy and buffer all data passed in via update().
This implementation offers two ways to avoid this copying, but only if all data to be signed or verified is available in a single byte array.
Option 1:
Option 2:
修飾子とタイプ | フィールド | 説明 |
---|---|---|
static java.security.spec.AlgorithmParameterSpec |
ONE_SHOT_MODE |
To efficiently sign or verify data in one shot, pass this to setParameters()
after initSign() or initVerify() but BEFORE THE FIRST AND ONLY
update(data) or update(data, off, len).
|
コンストラクタ | 説明 |
---|---|
EdDSAEngine() |
No specific hash requested, allows any EdDSA key.
|
EdDSAEngine(java.security.MessageDigest digest) |
Specific hash requested, only matching keys will be allowed.
|
修飾子とタイプ | メソッド | 説明 |
---|---|---|
protected java.lang.Object |
engineGetParameter(java.lang.String param) |
推奨されていません。
|
protected void |
engineInitSign(java.security.PrivateKey privateKey) |
|
protected void |
engineInitVerify(java.security.PublicKey publicKey) |
|
protected void |
engineSetParameter(java.lang.String param,
java.lang.Object value) |
推奨されていません。
replaced with this
|
protected void |
engineSetParameter(java.security.spec.AlgorithmParameterSpec spec) |
|
protected byte[] |
engineSign() |
|
protected void |
engineUpdate(byte b) |
|
protected void |
engineUpdate(byte[] b,
int off,
int len) |
|
protected boolean |
engineVerify(byte[] sigBytes) |
|
byte[] |
signOneShot(byte[] data) |
To efficiently sign all the data in one shot, if it is available,
use this method, which will avoid copying the data.
|
byte[] |
signOneShot(byte[] data,
int off,
int len) |
To efficiently sign all the data in one shot, if it is available,
use this method, which will avoid copying the data.
|
boolean |
verifyOneShot(byte[] data,
byte[] signature) |
To efficiently verify all the data in one shot, if it is available,
use this method, which will avoid copying the data.
|
boolean |
verifyOneShot(byte[] data,
byte[] signature,
int sigoff,
int siglen) |
To efficiently verify all the data in one shot, if it is available,
use this method, which will avoid copying the data.
|
boolean |
verifyOneShot(byte[] data,
int off,
int len,
byte[] signature) |
To efficiently verify all the data in one shot, if it is available,
use this method, which will avoid copying the data.
|
boolean |
verifyOneShot(byte[] data,
int off,
int len,
byte[] signature,
int sigoff,
int siglen) |
To efficiently verify all the data in one shot, if it is available,
use this method, which will avoid copying the data.
|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
public static final java.security.spec.AlgorithmParameterSpec ONE_SHOT_MODE
public EdDSAEngine()
public EdDSAEngine(java.security.MessageDigest digest)
digest
- the hash algorithm that keys must have to sign or verify.protected void engineInitSign(java.security.PrivateKey privateKey) throws java.security.InvalidKeyException
engineInitSign
クラス内 java.security.SignatureSpi
java.security.InvalidKeyException
protected void engineInitVerify(java.security.PublicKey publicKey) throws java.security.InvalidKeyException
engineInitVerify
クラス内 java.security.SignatureSpi
java.security.InvalidKeyException
protected void engineUpdate(byte b) throws java.security.SignatureException
engineUpdate
クラス内 java.security.SignatureSpi
java.security.SignatureException
- if in one-shot modeprotected void engineUpdate(byte[] b, int off, int len) throws java.security.SignatureException
engineUpdate
クラス内 java.security.SignatureSpi
java.security.SignatureException
- if one-shot rules are violatedprotected byte[] engineSign() throws java.security.SignatureException
engineSign
クラス内 java.security.SignatureSpi
java.security.SignatureException
protected boolean engineVerify(byte[] sigBytes) throws java.security.SignatureException
engineVerify
クラス内 java.security.SignatureSpi
java.security.SignatureException
public byte[] signOneShot(byte[] data) throws java.security.SignatureException
setParameter(ONE_SHOT_MODE) update(data) sig = sign()
java.security.SignatureException
- if update() already calledONE_SHOT_MODE
public byte[] signOneShot(byte[] data, int off, int len) throws java.security.SignatureException
setParameter(ONE_SHOT_MODE) update(data, off, len) sig = sign()
java.security.SignatureException
- if update() already calledONE_SHOT_MODE
public boolean verifyOneShot(byte[] data, byte[] signature) throws java.security.SignatureException
setParameter(ONE_SHOT_MODE) update(data) ok = verify(signature)
java.security.SignatureException
- if update() already calledONE_SHOT_MODE
public boolean verifyOneShot(byte[] data, int off, int len, byte[] signature) throws java.security.SignatureException
setParameter(ONE_SHOT_MODE) update(data, off, len) ok = verify(signature)
java.security.SignatureException
- if update() already calledONE_SHOT_MODE
public boolean verifyOneShot(byte[] data, byte[] signature, int sigoff, int siglen) throws java.security.SignatureException
setParameter(ONE_SHOT_MODE) update(data) ok = verify(signature, sigoff, siglen)
java.security.SignatureException
- if update() already calledONE_SHOT_MODE
public boolean verifyOneShot(byte[] data, int off, int len, byte[] signature, int sigoff, int siglen) throws java.security.SignatureException
setParameter(ONE_SHOT_MODE) update(data, off, len) ok = verify(signature, sigoff, siglen)
java.security.SignatureException
- if update() already calledONE_SHOT_MODE
protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec spec) throws java.security.InvalidAlgorithmParameterException
engineSetParameter
クラス内 java.security.SignatureSpi
java.security.InvalidAlgorithmParameterException
- if spec is ONE_SHOT_MODE and update() already calledONE_SHOT_MODE
protected void engineSetParameter(java.lang.String param, java.lang.Object value)
engineSetParameter
クラス内 java.security.SignatureSpi
protected java.lang.Object engineGetParameter(java.lang.String param)
engineGetParameter
クラス内 java.security.SignatureSpi