use of com.github.zhenwei.core.crypto.params.ECKeyParameters in project LinLong-Java by zhenwei1108.
the class ECGOST2012SignatureSpi256 method engineInitVerify.
protected void engineInitVerify(PublicKey publicKey) throws InvalidKeyException {
ECKeyParameters param;
if (publicKey instanceof ECPublicKey) {
param = (ECKeyParameters) generatePublicKeyParameter(publicKey);
} else {
try {
byte[] bytes = publicKey.getEncoded();
publicKey = WeGooProvider.getPublicKey(SubjectPublicKeyInfo.getInstance(bytes));
param = (ECKeyParameters) ECUtil.generatePublicKeyParameter(publicKey);
} catch (Exception e) {
throw new InvalidKeyException("cannot recognise key type in ECGOST-2012-256 signer");
}
}
if (param.getParameters().getN().bitLength() > 256) {
throw new InvalidKeyException("key out of range for ECGOST-2012-256");
}
digest.reset();
signer.init(false, param);
}
use of com.github.zhenwei.core.crypto.params.ECKeyParameters in project LinLong-Java by zhenwei1108.
the class ECGOST2012SignatureSpi512 method engineInitSign.
protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException {
ECKeyParameters param;
if (privateKey instanceof ECKey) {
param = (ECKeyParameters) ECUtil.generatePrivateKeyParameter(privateKey);
} else {
throw new InvalidKeyException("cannot recognise key type in ECGOST-2012-512 signer");
}
if (param.getParameters().getN().bitLength() < 505) {
throw new InvalidKeyException("key too weak for ECGOST-2012-512");
}
digest.reset();
if (appRandom != null) {
signer.init(true, new ParametersWithRandom(param, appRandom));
} else {
signer.init(true, param);
}
}
use of com.github.zhenwei.core.crypto.params.ECKeyParameters in project LinLong-Java by zhenwei1108.
the class IESCipher method engineDoFinal.
// Finalisation methods
public byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException {
if (inputLen != 0) {
buffer.write(input, inputOffset, inputLen);
}
final byte[] in = buffer.toByteArray();
buffer.reset();
// Convert parameters for use in IESEngine
CipherParameters params = new IESWithCipherParameters(engineSpec.getDerivationV(), engineSpec.getEncodingV(), engineSpec.getMacKeySize(), engineSpec.getCipherKeySize());
if (engineSpec.getNonce() != null) {
params = new ParametersWithIV(params, engineSpec.getNonce());
}
final ECDomainParameters ecParams = ((ECKeyParameters) key).getParameters();
final byte[] V;
if (otherKeyParameter != null) {
try {
if (state == Cipher.ENCRYPT_MODE || state == Cipher.WRAP_MODE) {
engine.init(true, otherKeyParameter, key, params);
} else {
engine.init(false, key, otherKeyParameter, params);
}
return engine.processBlock(in, 0, in.length);
} catch (Exception e) {
throw new BadBlockException("unable to process block", e);
}
}
if (state == Cipher.ENCRYPT_MODE || state == Cipher.WRAP_MODE) {
// Generate the ephemeral key pair
ECKeyPairGenerator gen = new ECKeyPairGenerator();
gen.init(new ECKeyGenerationParameters(ecParams, random));
final boolean usePointCompression = engineSpec.getPointCompression();
EphemeralKeyPairGenerator kGen = new EphemeralKeyPairGenerator(gen, new KeyEncoder() {
public byte[] getEncoded(AsymmetricKeyParameter keyParameter) {
return ((ECPublicKeyParameters) keyParameter).getQ().getEncoded(usePointCompression);
}
});
// Encrypt the buffer
try {
engine.init(key, params, kGen);
return engine.processBlock(in, 0, in.length);
} catch (final Exception e) {
throw new BadBlockException("unable to process block", e);
}
} else if (state == Cipher.DECRYPT_MODE || state == Cipher.UNWRAP_MODE) {
// Decrypt the buffer
try {
engine.init(key, params, new ECIESPublicKeyParser(ecParams));
return engine.processBlock(in, 0, in.length);
} catch (InvalidCipherTextException e) {
throw new BadBlockException("unable to process block", e);
}
} else {
throw new IllegalStateException("cipher not initialised");
}
}
use of com.github.zhenwei.core.crypto.params.ECKeyParameters in project LinLong-Java by zhenwei1108.
the class ECGOST2012SignatureSpi256 method engineInitSign.
protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException {
ECKeyParameters param;
if (privateKey instanceof ECKey) {
param = (ECKeyParameters) ECUtil.generatePrivateKeyParameter(privateKey);
} else {
throw new InvalidKeyException("cannot recognise key type in ECGOST-2012-256 signer");
}
if (param.getParameters().getN().bitLength() > 256) {
throw new InvalidKeyException("key out of range for ECGOST-2012-256");
}
digest.reset();
if (appRandom != null) {
signer.init(true, new ParametersWithRandom(param, appRandom));
} else {
signer.init(true, param);
}
}
use of com.github.zhenwei.core.crypto.params.ECKeyParameters in project LinLong-Java by zhenwei1108.
the class ECGOST2012SignatureSpi512 method engineInitVerify.
protected void engineInitVerify(PublicKey publicKey) throws InvalidKeyException {
ECKeyParameters param;
if (publicKey instanceof ECPublicKey) {
param = (ECKeyParameters) generatePublicKeyParameter(publicKey);
} else {
try {
byte[] bytes = publicKey.getEncoded();
publicKey = WeGooProvider.getPublicKey(SubjectPublicKeyInfo.getInstance(bytes));
param = (ECKeyParameters) ECUtil.generatePublicKeyParameter(publicKey);
} catch (Exception e) {
throw new InvalidKeyException("cannot recognise key type in ECGOST-2012-512 signer");
}
}
if (param.getParameters().getN().bitLength() < 505) {
throw new InvalidKeyException("key too weak for ECGOST-2012-512");
}
digest.reset();
signer.init(false, param);
}
Aggregations