BCDHPublicKey( BigInteger y, DHParameterSpec dhSpec) { this.y = y; this.dhSpec = dhSpec; if (dhSpec instanceof DHDomainParameterSpec) { this.dhPublicKey = new DHPublicKeyParameters(y, ((DHDomainParameterSpec)dhSpec).getDomainParameters()); } else { this.dhPublicKey = new DHPublicKeyParameters(y, new DHParameters(dhSpec.getP(), dhSpec.getG())); } }
DHPrivateKeyParameters engineGetKeyParameters() { if (dhPrivateKey != null) { return dhPrivateKey; } if (dhSpec instanceof DHDomainParameterSpec) { return new DHPrivateKeyParameters(x, ((DHDomainParameterSpec)dhSpec).getDomainParameters()); } return new DHPrivateKeyParameters(x, new DHParameters(dhSpec.getP(), dhSpec.getG(), null, dhSpec.getL())); }
private DHKeyGenerationParameters convertParams(SecureRandom random, DHParameterSpec dhParams) { if (dhParams instanceof DHDomainParameterSpec) { return new DHKeyGenerationParameters(random, ((DHDomainParameterSpec)dhParams).getDomainParameters()); } return new DHKeyGenerationParameters(random, new DHParameters(dhParams.getP(), dhParams.getG(), null, dhParams.getL())); }
private DHPublicKeyParameters generatePublicKeyParameter(PublicKey pubKey) throws InvalidKeyException { if (pubKey instanceof DHPublicKey) { if (pubKey instanceof BCDHPublicKey) { return ((BCDHPublicKey)pubKey).engineGetKeyParameters(); } else { DHPublicKey pub = (DHPublicKey)pubKey; DHParameterSpec params = pub.getParams(); if (params instanceof DHDomainParameterSpec) { return new DHPublicKeyParameters(pub.getY(), ((DHDomainParameterSpec)params).getDomainParameters()); } return new DHPublicKeyParameters(pub.getY(), new DHParameters(params.getP(), params.getG(), null, params.getL())); } } else { throw new InvalidKeyException("public key not a DHPublicKey"); } }
public byte[] getEncoded() { if (info != null) { return KeyUtil.getEncodedSubjectPublicKeyInfo(info); } if (dhSpec instanceof DHDomainParameterSpec && ((DHDomainParameterSpec)dhSpec).getQ() != null) { DHParameters params = ((DHDomainParameterSpec)dhSpec).getDomainParameters(); DHValidationParameters validationParameters = params.getValidationParameters(); ValidationParams vParams = null; if (validationParameters != null) { vParams = new ValidationParams(validationParameters.getSeed(), validationParameters.getCounter()); } return KeyUtil.getEncodedSubjectPublicKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.dhpublicnumber, new DomainParameters(params.getP(), params.getG(), params.getQ(), params.getJ(), vParams).toASN1Primitive()), new ASN1Integer(y)); } return KeyUtil.getEncodedSubjectPublicKeyInfo(new AlgorithmIdentifier(PKCSObjectIdentifiers.dhKeyAgreement, new DHParameter(dhSpec.getP(), dhSpec.getG(), dhSpec.getL()).toASN1Primitive()), new ASN1Integer(y)); }
if (dhSpec instanceof DHDomainParameterSpec && ((DHDomainParameterSpec)dhSpec).getQ() != null) DHParameters params = ((DHDomainParameterSpec)dhSpec).getDomainParameters(); DHValidationParameters validationParameters = params.getValidationParameters(); ValidationParams vParams = null;