/// <summary> /// Initializes a new instance of the <see cref="CipherDigitalSignature"/> class. /// </summary> /// <param name="oid">The object identifier.</param> /// <param name="cipher">The cipher.</param> protected CipherDigitalSignature(ObjectIdentifier oid, AsymmetricCipher cipher) { if (cipher == null) throw new ArgumentNullException("cipher"); _cipher = cipher; _oid = oid; }
/// <summary> /// Writes OBJECTIDENTIFIER data into internal buffer. /// </summary> /// <param name="identifier">The identifier.</param> public void Write(ObjectIdentifier identifier) { var temp = new ulong[identifier.Identifiers.Length - 1]; temp[0] = identifier.Identifiers[0] * 40 + identifier.Identifiers[1]; Buffer.BlockCopy(identifier.Identifiers, 2 * sizeof(ulong), temp, 1 * sizeof(ulong), (identifier.Identifiers.Length - 2) * sizeof(ulong)); //Array.Copy(identifier.Identifiers, 2, temp, 1, identifier.Identifiers.Length - 2); var bytes = new List<byte>(); foreach (var subidentifier in temp) { var item = subidentifier; var buffer = new byte[8]; var bufferIndex = buffer.Length - 1; var current = (byte)(item & 0x7F); do { buffer[bufferIndex] = current; if (bufferIndex < buffer.Length - 1) buffer[bufferIndex] |= (byte)0x80; item >>= 7; current = (byte)(item & 0x7F); bufferIndex--; } while (current > 0); for (int i = bufferIndex + 1; i < buffer.Length; i++) { bytes.Add(buffer[i]); } } this._data.Add(OBJECTIDENTIFIER); var length = this.GetLength(bytes.Count); this.WriteBytes(length); this.WriteBytes(bytes); }
public void ObjectIdentifierConstructorTest() { ulong[] identifiers = null; // TODO: Initialize to an appropriate value ObjectIdentifier target = new ObjectIdentifier(identifiers); Assert.Inconclusive("TODO: Implement code to verify target"); }
public void WriteTest4() { DerData target = new DerData(); // TODO: Initialize to an appropriate value ObjectIdentifier identifier = new ObjectIdentifier(); // TODO: Initialize to an appropriate value target.Write(identifier); Assert.Inconclusive("A method that does not return a value cannot be verified."); }