protected static function _decodeSubIDs(string $data): array
    {
        $subids = [];
        $idx = 0;
        $end = strlen($data);
        while ($idx < $end) {
            $num = gmp_init("0", 10);
            while (true) {
                if ($idx >= $end) {
                    throw new DecodeException("Unexpected end of data.");
                }
                $byte = ord($data[$idx++]);
                $num |= $byte & 0x7f;
                // bit 8 of the last octet is zero
                if (!($byte & 0x80)) {
                    break;
                }
                $num <<= 7;
            }
            $subids[] = $num;
        }
        return $subids;
    }
protected static function _decodeSubIDs(string $data): array
    {
        $subids = [];
        $idx = 0;
        $end = strlen($data);
        while ($idx < $end) {
            $num = gmp_init("0", 10);
            while (true) {
                if ($idx >= $end) {
                    throw new DecodeException("Unexpected end of data.");
                }
                $byte = ord($data[$idx++]);
                $num |= $byte & 0x7f;
                // bit 8 of the last octet is zero
                if (!($byte & 0x80)) {
                    break;
                }
                $num <<= 7;
            }
            $subids[] = $num;
        }
        return $subids;
    }
protected static function _decodeSubIDs ( string $ data ) : array { $ subids = [ ] ; $ idx = 0 ; $ end = strlen ( $ data ) ; while ( $ idx < $ end ) { $ num = gmp_init ( "0" , 10 ) ; while ( true ) { if ( $ idx >= $ end ) { throw new DecodeException ( "Unexpected end of data." ) ; } $ byte = ord ( $ data [ $ idx ++ ] ) ; $ num |= $ byte & 0x7f ; // bit 8 of the last octet is zero if ( ! ( $ byte & 0x80 ) ) { break ; } $ num <<= 7 ; } $ subids [ ] = $ num ; } return $ subids ; }
Decode sub ID's from DER data.

@param string $data
@throws DecodeException
@return \GMP[] Array of GMP numbers
Decode sub ID s from DER data .