1<?php
2
3/**
4 * PKCS Formatted Key Handler
5 *
6 * PHP version 5
7 *
8 * @category  Crypt
9 * @package   Common
10 * @author    Jim Wigginton <terrafrost@php.net>
11 * @copyright 2015 Jim Wigginton
12 * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
13 * @link      http://phpseclib.sourceforge.net
14 */
15
16namespace phpseclib3\Crypt\Common\Formats\Keys;
17
18/**
19 * PKCS1 Formatted Key Handler
20 *
21 * @package RSA
22 * @author  Jim Wigginton <terrafrost@php.net>
23 * @access  public
24 */
25abstract class PKCS
26{
27    /**
28     * Auto-detect the format
29     */
30    const MODE_ANY = 0;
31    /**
32     * Require base64-encoded PEM's be supplied
33     */
34    const MODE_PEM = 1;
35    /**
36     * Require raw DER's be supplied
37     */
38    const MODE_DER = 2;
39    /**#@-*/
40
41    /**
42     * Is the key a base-64 encoded PEM, DER or should it be auto-detected?
43     *
44     * @access private
45     * @var int
46     */
47    protected static $format = self::MODE_ANY;
48
49    /**
50     * Require base64-encoded PEM's be supplied
51     *
52     * @access public
53     */
54    public static function requirePEM()
55    {
56        self::$format = self::MODE_PEM;
57    }
58
59    /**
60     * Require raw DER's be supplied
61     *
62     * @access public
63     */
64    public static function requireDER()
65    {
66        self::$format = self::MODE_DER;
67    }
68
69    /**
70     * Accept any format and auto detect the format
71     *
72     * This is the default setting
73     *
74     * @access public
75     */
76    public static function requireAny()
77    {
78        self::$format = self::MODE_ANY;
79    }
80}
81