1<?php
2
3/**
4 * PBKDF2params
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 * PBKDF2params
22 *
23 * from https://tools.ietf.org/html/rfc2898#appendix-A.3
24 *
25 * @package ASN1
26 * @author  Jim Wigginton <terrafrost@php.net>
27 * @access  public
28 */
29abstract class PBKDF2params
30{
31    const MAP = [
32        'type' => ASN1::TYPE_SEQUENCE,
33        'children' => [
34            // technically, this is a CHOICE in RFC2898 but the other "choice" is, currently, more of a placeholder
35            // in the RFC
36            'salt' => ['type' => ASN1::TYPE_OCTET_STRING],
37            'iterationCount' => ['type' => ASN1::TYPE_INTEGER],
38            'keyLength' => [
39                'type' => ASN1::TYPE_INTEGER,
40                'optional' => true
41            ],
42            'prf' => AlgorithmIdentifier::MAP + ['optional' => true]
43        ]
44    ];
45}
46