Subversion Repositories oidplus

Rev

Rev 846 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
827 daniel-mar 1
<?php
2
 
3
/**
4
 * RSAPrivateKey
5
 *
6
 * PHP version 5
7
 *
874 daniel-mar 8
 * @category  File
9
 * @package   ASN1
827 daniel-mar 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
 
16
namespace phpseclib3\File\ASN1\Maps;
17
 
18
use phpseclib3\File\ASN1;
19
 
20
/**
21
 * RSAPrivateKey
22
 *
874 daniel-mar 23
 * @package ASN1
827 daniel-mar 24
 * @author  Jim Wigginton <terrafrost@php.net>
874 daniel-mar 25
 * @access  public
827 daniel-mar 26
 */
27
abstract class RSAPrivateKey
28
{
29
    // version must be multi if otherPrimeInfos present
30
    const MAP = [
31
        'type' => ASN1::TYPE_SEQUENCE,
32
        'children' => [
33
            'version' => [
34
                'type' => ASN1::TYPE_INTEGER,
35
                'mapping' => ['two-prime', 'multi']
36
            ],
37
            'modulus' => ['type' => ASN1::TYPE_INTEGER],         // n
38
            'publicExponent' => ['type' => ASN1::TYPE_INTEGER],  // e
39
            'privateExponent' => ['type' => ASN1::TYPE_INTEGER], // d
40
            'prime1' => ['type' => ASN1::TYPE_INTEGER],          // p
41
            'prime2' => ['type' => ASN1::TYPE_INTEGER],          // q
42
            'exponent1' => ['type' => ASN1::TYPE_INTEGER],       // d mod (p-1)
43
            'exponent2' => ['type' => ASN1::TYPE_INTEGER],       // d mod (q-1)
44
            'coefficient' => ['type' => ASN1::TYPE_INTEGER],     // (inverse of q) mod p
45
            'otherPrimeInfos' => OtherPrimeInfos::MAP + ['optional' => true]
46
        ]
47
    ];
48
}