File_ASN1
class File_ASN1 (View source)
Pure-PHP ASN.1 Parser
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
Default Constructor.
PHP4 compatible Default Constructor.
Parse BER-encoding
Parse BER-encoding (Helper function)
ASN.1 Map
ASN.1 Encode
ASN.1 Encode (Helper function)
DER-encode the length
BER-decode the OID
DER-encode the OID
BER-decode the time (using UNIX time)
BER-decode the time (using DateTime)
Set the time format
Load OIDs
Load filters
String Shift
String type conversion
Details
        
                            
    __construct()
        
    
    Default Constructor.
        
                            
    File_ASN1()
        
    
    PHP4 compatible Default Constructor.
        
                            array
    decodeBER(string $encoded)
        
    
    Parse BER-encoding
Serves a similar purpose to openssl's asn1parse
        
                            array
    _decode_ber(string $encoded, int $start = 0, int $encoded_pos = 0)
        
    
    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 FILE_ASN1_TYPE_BIT_STRING and FILE_ASN1_TYPE_OCTET_STRING. In those cases, the indefinite length is used.
        
                            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.
        
                            string
    encodeDER(string $source, string $mapping, array $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.
        
                            string
    _encode_der(string $source, string $mapping, int $idx = null, array $special = array())
        
    
    ASN.1 Encode (Helper function)
        
                            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.
        
                            string
    _decodeOID(string $content)
        
    
    BER-decode the OID
Called by _decode_ber()
        
                            string
    _encodeOID(string $source)
        
    
    DER-encode the OID
Called by _encode_der()
        
                            string
    _decodeUnixTime(string $content, int $tag)
        
    
    BER-decode the time (using UNIX time)
Called by _decode_ber() and in the case of implicit tags asn1map().
        
                            string
    _decodeDateTime(string $content, int $tag)
        
    
    BER-decode the time (using DateTime)
Called by _decode_ber() and in the case of implicit tags asn1map().
        
                            
    setTimeFormat(string $format)
        
    
    Set the time format
Sets the time / date format for asn1map().
        
                            
    loadOIDs(array $oids)
        
    
    Load OIDs
Load the relevant OIDs for a particular ASN.1 semantic mapping.
        
                            
    loadFilters(array $filters)
        
    
    Load filters
See File_X509, etc, for an example.
        
                            string
    _string_shift(string $string, int $index = 1)
        
    
    String Shift
Inspired by array_shift
        
                            string
    convert(string $in, int $from = FILE_ASN1_TYPE_UTF8_STRING, int $to = FILE_ASN1_TYPE_UTF8_STRING)
        
    
    String type conversion
This is a lazy conversion, dealing only with character size. No real conversion table is used.