public ISecretKeyingMaterialBuilder WithDomainParameters(IDsaDomainParameters value) { _domainParameters = value; return(this); }
private void ValidateDomainParameters(SchemeKeyNonceGenRequirement schemeRequirements, IDsaDomainParameters domainParameters) { if (domainParameters == null) { throw new ArgumentNullException(nameof(domainParameters)); } }
private void ValidateConsistentAlgorithm(KasAlgorithm schemeRequirementsKasAlgo, SchemeKeyNonceGenRequirement schemeRequirementsRequirments, IDsaDomainParameters domainParameters, IDsaKeyPair ephemeralKey, IDsaKeyPair staticKey) { switch (schemeRequirementsKasAlgo) { case KasAlgorithm.Ffc: if (domainParameters.GetType() != typeof(FfcDomainParameters)) { throw new ArgumentException($"{nameof(domainParameters)} expected type {typeof(FfcDomainParameters)} got {domainParameters.GetType()}"); } if (ephemeralKey != null && ephemeralKey.GetType() != typeof(FfcKeyPair)) { throw new ArgumentException($"{nameof(ephemeralKey)} expected type {typeof(FfcKeyPair)} got {ephemeralKey.GetType()}"); } if (staticKey != null && staticKey.GetType() != typeof(FfcKeyPair)) { throw new ArgumentException($"{nameof(staticKey)} expected type {typeof(FfcKeyPair)} got {staticKey.GetType()}"); } break; case KasAlgorithm.Ecc: if (domainParameters.GetType() != typeof(EccDomainParameters)) { throw new ArgumentException($"{nameof(domainParameters)} expected type {typeof(EccDomainParameters)} got {domainParameters.GetType()}"); } if (ephemeralKey != null && ephemeralKey.GetType() != typeof(EccKeyPair)) { throw new ArgumentException($"{nameof(ephemeralKey)} expected type {typeof(EccKeyPair)} got {ephemeralKey.GetType()}"); } if (staticKey != null && staticKey.GetType() != typeof(EccKeyPair)) { throw new ArgumentException($"{nameof(staticKey)} expected type {typeof(EccKeyPair)} got {staticKey.GetType()}"); } break; default: throw new ArgumentException(nameof(schemeRequirementsKasAlgo)); } }