OpenPGP_Packet::parse_new_format PHP Метод

parse_new_format() статический публичный Метод

Parses a new-format (RFC 4880) OpenPGP packet.
См. также: http://tools.ietf.org/html/rfc4880#section-4.2.2
static public parse_new_format ( $input, $header_start )
    static function parse_new_format($input, $header_start = 0)
    {
        $tag = ord($input[0]) & 63;
        $len = ord($input[$header_start + 1]);
        if ($len < 192) {
            // One octet length
            return array($tag, 2, $len, false);
        }
        if ($len > 191 && $len < 224) {
            // Two octet length
            return array($tag, 3, ($len - 192 << 8) + ord($input[$header_start + 2]) + 192, false);
        }
        if ($len == 255) {
            // Five octet length
            $unpacked = unpack('N', substr($input, $header_start + 2, 4));
            return array($tag, 6, reset($unpacked), false);
        }
        // Partial body lengths
        return array($tag, 2, 1 << ($len & 0x1f), true);
    }