1<?php 2 3/** 4 * RSAPrivateKey 5 * 6 * PHP version 5 7 * 8 * @author Jim Wigginton <terrafrost@php.net> 9 * @copyright 2016 Jim Wigginton 10 * @license http://www.opensource.org/licenses/mit-license.html MIT License 11 * @link http://phpseclib.sourceforge.net 12 */ 13 14namespace phpseclib3\File\ASN1\Maps; 15 16use phpseclib3\File\ASN1; 17 18/** 19 * RSAPrivateKey 20 * 21 * @author Jim Wigginton <terrafrost@php.net> 22 */ 23abstract class RSAPrivateKey 24{ 25 // version must be multi if otherPrimeInfos present 26 const MAP = [ 27 'type' => ASN1::TYPE_SEQUENCE, 28 'children' => [ 29 'version' => [ 30 'type' => ASN1::TYPE_INTEGER, 31 'mapping' => ['two-prime', 'multi'] 32 ], 33 'modulus' => ['type' => ASN1::TYPE_INTEGER], // n 34 'publicExponent' => ['type' => ASN1::TYPE_INTEGER], // e 35 'privateExponent' => ['type' => ASN1::TYPE_INTEGER], // d 36 'prime1' => ['type' => ASN1::TYPE_INTEGER], // p 37 'prime2' => ['type' => ASN1::TYPE_INTEGER], // q 38 'exponent1' => ['type' => ASN1::TYPE_INTEGER], // d mod (p-1) 39 'exponent2' => ['type' => ASN1::TYPE_INTEGER], // d mod (q-1) 40 'coefficient' => ['type' => ASN1::TYPE_INTEGER], // (inverse of q) mod p 41 'otherPrimeInfos' => OtherPrimeInfos::MAP + ['optional' => true] 42 ] 43 ]; 44} 45