private void CheckConstruction(
            LdsSecurityObject so,
            AlgorithmIdentifier digestAlgorithmIdentifier,
            DataGroupHash[]             datagroupHash)
        {
            CheckStatement(so, digestAlgorithmIdentifier, datagroupHash, null);

            so = LdsSecurityObject.GetInstance(so);

            CheckStatement(so, digestAlgorithmIdentifier, datagroupHash, null);

            Asn1Sequence seq = (Asn1Sequence)Asn1Object.FromByteArray(
                so.ToAsn1Object().GetEncoded());

            so = LdsSecurityObject.GetInstance(seq);

            CheckStatement(so, digestAlgorithmIdentifier, datagroupHash, null);
        }
        private void CheckConstruction(
            LdsSecurityObject so,
            AlgorithmIdentifier digestAlgorithmIdentifier,
            DataGroupHash[]         datagroupHash,
            LdsVersionInfo versionInfo)
        {
            if (!so.Version.Equals(BigInteger.One))
            {
                Fail("version number not 1");
            }

            CheckStatement(so, digestAlgorithmIdentifier, datagroupHash, versionInfo);

            so = LdsSecurityObject.GetInstance(so);

            CheckStatement(so, digestAlgorithmIdentifier, datagroupHash, versionInfo);

            Asn1Sequence seq = (Asn1Sequence)Asn1Object.FromByteArray(
                so.ToAsn1Object().GetEncoded());

            so = LdsSecurityObject.GetInstance(seq);

            CheckStatement(so, digestAlgorithmIdentifier, datagroupHash, versionInfo);
        }