コード例 #1
0
 protected PgpSignatureSubpacket(PgpSignatureSubpacket FromPacket)
 {
     _eType         = FromPacket.eType;
     _eStatus       = FromPacket.eStatus;
     _iHeaderLength = FromPacket.iHeaderLength;
     _iDataLength   = FromPacket.iDataLength;
     _abRawBytes    = FromPacket.abRawBytes;
 }
コード例 #2
0
        public PgpSignatureSubpacket(byte[] abPaketBytes, int iOffset) : this(nSubpacketType.Reserved)
        {
            byte bLengthByte, bPacketTag;
            int  i;

            if ((abPaketBytes == null) || (iOffset >= abPaketBytes.Length - 2))
            {
                _eStatus = nStatus.ParseError;
            }
            else
            {
                _eStatus    = nStatus.OK;
                bLengthByte = abPaketBytes[iOffset];

                if (bLengthByte < cbSmallestTwoByteLengthNew)
                {
                    _iDataLength   = bLengthByte;
                    _iHeaderLength = 1;
                }
                else if (bLengthByte < 0xe0)
                {
                    _iDataLength   = ((bLengthByte - cbSmallestTwoByteLengthNew) << 8) + abPaketBytes[iOffset + 1] + cbSmallestTwoByteLengthNew;
                    _iHeaderLength = 2;
                }
                else if (bLengthByte == 0xff)
                {
                    _iDataLength   = abPaketBytes[iOffset + 1] << 24 | abPaketBytes[iOffset + 2] << 16 | abPaketBytes[iOffset + 3] << 8 | abPaketBytes[iOffset + 4];
                    _iHeaderLength = 5;
                }
                else
                {
                    _eStatus = nStatus.ParseError;
                }


                if (_eStatus == nStatus.OK)
                {
                    bPacketTag = abPaketBytes[iOffset + _iHeaderLength];
                    _eType     = (nSubpacketType)(bPacketTag & 0x7f);

                    _abRawBytes = new byte[_iHeaderLength + _iDataLength];
                    for (i = 0; i < _iHeaderLength + _iDataLength; i++)
                    {
                        _abRawBytes[i] = abPaketBytes[iOffset + i];
                    }
                }
            }
        }
コード例 #3
0
 protected PgpSignatureSubpacket(nSubpacketType eType) : base()
 {
     _eType = eType;
 }