phpseclib API Documentation
Class

phpseclib\File\ASN1

class ASN1

Pure-PHP ASN.1 Parser

Constants

CLASS_UNIVERSAL

CLASS_APPLICATION

CLASS_CONTEXT_SPECIFIC

CLASS_PRIVATE

TYPE_BOOLEAN

TYPE_INTEGER

TYPE_BIT_STRING

TYPE_OCTET_STRING

TYPE_NULL

TYPE_OBJECT_IDENTIFIER

TYPE_REAL

TYPE_ENUMERATED

TYPE_UTF8_STRING

TYPE_SEQUENCE

TYPE_SET

TYPE_NUMERIC_STRING

TYPE_PRINTABLE_STRING

TYPE_TELETEX_STRING

TYPE_VIDEOTEX_STRING

TYPE_IA5_STRING

TYPE_UTC_TIME

TYPE_GENERALIZED_TIME

TYPE_GRAPHIC_STRING

TYPE_VISIBLE_STRING

TYPE_GENERAL_STRING

TYPE_UNIVERSAL_STRING

TYPE_BMP_STRING

TYPE_CHOICE

TYPE_ANY

Properties

array $oids ASN.1 object identifier
string $format Default date format
array $encoded Default date format
array $filters Filters
array $ANYmap Type mapping table for the ANY type.
array $stringTypeSize String type to character size mapping table.

Methods

array decodeBER(string $encoded)

Parse BER-encoding

array _decode_ber(string $encoded, int $start, int $encoded_pos)

Parse BER-encoding (Helper function)

array asn1map(array $decoded, array $mapping, array $special = array())

ASN.1 Map

string encodeDER($source, $mapping, $special = array())

ASN.1 Encode

string _encode_der($source, $mapping, $idx = null, $special = array())

ASN.1 Encode (Helper function)

string _encodeLength(int $length)

DER-encode the length

string _decodeOID(string $content)

BER-decode the OID

string _encodeOID($source)

DER-encode the OID

string _decodeTime(string $content, int $tag)

BER-decode the time

setTimeFormat(string $format)

Set the time format

loadOIDs(array $oids)

Load OIDs

loadFilters(array $filters)

Load filters

string _string_shift(string $string, int $index = 1)

String Shift

string convert(string $in, int $from = self::TYPE_UTF8_STRING, int $to = self::TYPE_UTF8_STRING)

String type conversion

Details

at line 209
public array decodeBER(string $encoded)

Parse BER-encoding

Serves a similar purpose to openssl's asn1parse

Parameters

string $encoded

Return Value

array

at line 233
public array _decode_ber(string $encoded, int $start, int $encoded_pos)

Parse BER-encoding (Helper function)

Sometimes we want to get the BER encoding of a particular tag. $start lets us do that without having to reencode. $encoded is passed by reference for the recursive calls done for self::TYPEBITSTRING and self::TYPEOCTETSTRING. In those cases, the indefinite length is used.

Parameters

string $encoded
int $start
int $encoded_pos

Return Value

array

at line 494
public array asn1map(array $decoded, array $mapping, array $special = array())

ASN.1 Map

Provides an ASN.1 semantic mapping ($mapping) from a parsed BER-encoding to a human readable format.

"Special" mappings may be applied on a per tag-name basis via $special.

Parameters

array $decoded
array $mapping
array $special

Return Value

array

at line 793
public string encodeDER($source, $mapping, $special = array())

ASN.1 Encode

DER-encodes an ASN.1 semantic mapping ($mapping). Some libraries would probably call this function an ASN.1 compiler.

"Special" mappings can be applied via $special.

Parameters

$source
$mapping
$special

Return Value

string

at line 808
public string _encode_der($source, $mapping, $idx = null, $special = array())

ASN.1 Encode (Helper function)

Parameters

$source
$mapping
$idx
$special

Return Value

string

at line 1096
public string _encodeLength(int $length)

DER-encode the length

DER supports lengths up to (28)127, however, we'll only support lengths up to (28)4. See {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.

Parameters

int $length

Return Value

string

at line 1115
public string _decodeOID(string $content)

BER-decode the OID

Called by decodeber()

Parameters

string $content

Return Value

string

at line 1163
public string _encodeOID($source)

DER-encode the OID

Called by encodeder()

Parameters

$source

Return Value

string

at line 1218
public string _decodeTime(string $content, int $tag)

BER-decode the time

Called by decodeber() and in the case of implicit tags asn1map().

Parameters

string $content
int $tag

Return Value

string

at line 1264
public setTimeFormat(string $format)

Set the time format

Sets the time / date format for asn1map().

Parameters

string $format

at line 1277
public loadOIDs(array $oids)

Load OIDs

Load the relevant OIDs for a particular ASN.1 semantic mapping.

Parameters

array $oids

at line 1290
public loadFilters(array $filters)

Load filters

See \phpseclib\File\X509, etc, for an example.

Parameters

array $filters

at line 1305
public string _string_shift(string $string, int $index = 1)

String Shift

Inspired by array_shift

Parameters

string $string
int $index

Return Value

string

at line 1324
public string convert(string $in, int $from = self::TYPE_UTF8_STRING, int $to = self::TYPE_UTF8_STRING)

String type conversion

This is a lazy conversion, dealing only with character size. No real conversion table is used.

Parameters

string $in
int $from
int $to

Return Value

string