public override void PerformTest() { int dataGroupNumber = 1; Asn1OctetString dataHash = new DerOctetString(GenerateHash()); DataGroupHash dg = new DataGroupHash(dataGroupNumber, dataHash); CheckConstruction(dg, dataGroupNumber, dataHash); try { DataGroupHash.GetInstance(null); } catch (Exception) { Fail("GetInstance() failed to handle null."); } try { DataGroupHash.GetInstance(new object()); Fail("GetInstance() failed to detect bad object."); } catch (ArgumentException) { // expected } }
private LdsSecurityObject(Asn1Sequence seq) { if (seq == null || seq.Count == 0) { throw new ArgumentException("null or empty sequence passed."); } IEnumerator enumerator = seq.GetEnumerator(); enumerator.MoveNext(); version = DerInteger.GetInstance(enumerator.Current); enumerator.MoveNext(); digestAlgorithmIdentifier = AlgorithmIdentifier.GetInstance(enumerator.Current); enumerator.MoveNext(); Asn1Sequence instance = Asn1Sequence.GetInstance(enumerator.Current); if (version.Value.Equals(BigInteger.One)) { enumerator.MoveNext(); versionInfo = LdsVersionInfo.GetInstance(enumerator.Current); } CheckDatagroupHashSeqSize(instance.Count); datagroupHash = new DataGroupHash[instance.Count]; for (int i = 0; i < instance.Count; i++) { datagroupHash[i] = DataGroupHash.GetInstance(instance[i]); } }
private void CheckValues( DataGroupHash dg, int dataGroupNumber, Asn1OctetString dataGroupHashValue) { if (dg.DataGroupNumber != dataGroupNumber) { Fail("group number don't match."); } if (!dg.DataGroupHashValue.Equals(dataGroupHashValue)) { Fail("hash value don't match."); } }
private void CheckConstruction( DataGroupHash dg, int dataGroupNumber, Asn1OctetString dataGroupHashValue) { CheckValues(dg, dataGroupNumber, dataGroupHashValue); dg = DataGroupHash.GetInstance(dg); CheckValues(dg, dataGroupNumber, dataGroupHashValue); Asn1Sequence seq = (Asn1Sequence)Asn1Object.FromByteArray( dg.ToAsn1Object().GetEncoded()); dg = DataGroupHash.GetInstance(seq); CheckValues(dg, dataGroupNumber, dataGroupHashValue); }
public override void PerformTest() { AlgorithmIdentifier algoId = new AlgorithmIdentifier(OiwObjectIdentifiers.IdSha1); DataGroupHash[] datas = new DataGroupHash[2]; datas[0] = new DataGroupHash(1, new DerOctetString(GenerateHash())); datas[1] = new DataGroupHash(2, new DerOctetString(GenerateHash())); LdsSecurityObject so = new LdsSecurityObject(algoId, datas); CheckConstruction(so, algoId, datas); LdsVersionInfo versionInfo = new LdsVersionInfo("Hello", "world"); so = new LdsSecurityObject(algoId, datas, versionInfo); CheckConstruction(so, algoId, datas, versionInfo); try { LdsSecurityObject.GetInstance(null); } catch (Exception) { Fail("GetInstance() failed to handle null."); } try { LdsSecurityObject.GetInstance(new object()); Fail("GetInstance() failed to detect bad object."); } catch (ArgumentException) { // expected } try { LdsSecurityObject.GetInstance(DerSequence.Empty); Fail("constructor failed to detect empty sequence."); } catch (ArgumentException) { // expected } try { new LdsSecurityObject(algoId, new DataGroupHash[1]); Fail("constructor failed to detect small DataGroupHash array."); } catch (ArgumentException) { // expected } try { new LdsSecurityObject(algoId, new DataGroupHash[LdsSecurityObject.UBDataGroups + 1]); Fail("constructor failed to out of bounds DataGroupHash array."); } catch (ArgumentException) { // expected } }