public override void Write( byte[] buf, int offset, int len) { while (len > 0) { int numToCopy = System.Math.Min(len, _buf.Length - _off); if (numToCopy == _buf.Length) { DerOctetString.Encode(_derOut, buf, offset, numToCopy); } else { Array.Copy(buf, offset, _buf, _off, numToCopy); _off += numToCopy; if (_off < _buf.Length) { break; } DerOctetString.Encode(_derOut, _buf, 0, _off); _off = 0; } offset += numToCopy; len -= numToCopy; } }
public override void WriteByte( byte b) { _buf[_off++] = b; if (_off == _buf.Length) { DerOctetString.Encode(_derOut, _buf, 0, _off); _off = 0; } }
protected override void Dispose(bool disposing) { try { if (!disposing) { return; } if (_off != 0) { DerOctetString.Encode(_derOut, _buf, 0, _off); } _gen.WriteBerEnd(); } finally { base.Dispose(disposing); } }