1<?php
2
3/**
4 * GeneralName
5 *
6 * PHP version 5
7 *
8 * @category  File
9 * @package   ASN1
10 * @author    Jim Wigginton <terrafrost@php.net>
11 * @copyright 2016 Jim Wigginton
12 * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
13 * @link      http://phpseclib.sourceforge.net
14 */
15
16namespace phpseclib3\File\ASN1\Maps;
17
18use phpseclib3\File\ASN1;
19
20/**
21 * GeneralName
22 *
23 * @package ASN1
24 * @author  Jim Wigginton <terrafrost@php.net>
25 * @access  public
26 */
27abstract class GeneralName
28{
29    const MAP = [
30        'type' => ASN1::TYPE_CHOICE,
31        'children' => [
32            'otherName' => [
33                'constant' => 0,
34                'optional' => true,
35                'implicit' => true
36            ] + AnotherName::MAP,
37            'rfc822Name' => [
38                'type' => ASN1::TYPE_IA5_STRING,
39                'constant' => 1,
40                'optional' => true,
41                'implicit' => true
42            ],
43            'dNSName' => [
44                'type' => ASN1::TYPE_IA5_STRING,
45                'constant' => 2,
46                'optional' => true,
47                'implicit' => true
48            ],
49            'x400Address' => [
50                'constant' => 3,
51                'optional' => true,
52                'implicit' => true
53            ] + ORAddress::MAP,
54            'directoryName' => [
55                'constant' => 4,
56                'optional' => true,
57                'explicit' => true
58            ] + Name::MAP,
59            'ediPartyName' => [
60                'constant' => 5,
61                'optional' => true,
62                'implicit' => true
63            ] + EDIPartyName::MAP,
64            'uniformResourceIdentifier' => [
65                'type' => ASN1::TYPE_IA5_STRING,
66                'constant' => 6,
67                'optional' => true,
68                'implicit' => true
69            ],
70            'iPAddress' => [
71                'type' => ASN1::TYPE_OCTET_STRING,
72                'constant' => 7,
73                'optional' => true,
74                'implicit' => true
75            ],
76            'registeredID' => [
77                'type' => ASN1::TYPE_OBJECT_IDENTIFIER,
78                'constant' => 8,
79                'optional' => true,
80                'implicit' => true
81            ]
82        ]
83    ];
84}
85