PHP 8.5.2
Preview: pem.py Size: 2.01 KB
/lib/python3/dist-packages/pyasn1_modules/pem.py

#
# This file is part of pyasn1-modules software.
#
# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
# License: http://snmplabs.com/pyasn1/license.html
#
import base64
import sys

stSpam, stHam, stDump = 0, 1, 2


# The markers parameters is in form ('start1', 'stop1'), ('start2', 'stop2')...
# Return is (marker-index, substrate)
def readPemBlocksFromFile(fileObj, *markers):
    startMarkers = dict(map(lambda x: (x[1], x[0]),
                            enumerate(map(lambda y: y[0], markers))))
    stopMarkers = dict(map(lambda x: (x[1], x[0]),
                           enumerate(map(lambda y: y[1], markers))))
    idx = -1
    substrate = ''
    certLines = []
    state = stSpam
    while True:
        certLine = fileObj.readline()
        if not certLine:
            break
        certLine = certLine.strip()
        if state == stSpam:
            if certLine in startMarkers:
                certLines = []
                idx = startMarkers[certLine]
                state = stHam
                continue
        if state == stHam:
            if certLine in stopMarkers and stopMarkers[certLine] == idx:
                state = stDump
            else:
                certLines.append(certLine)
        if state == stDump:
            if sys.version_info[0] <= 2:
                substrate = ''.join([base64.b64decode(x) for x in certLines])
            else:
                substrate = ''.encode().join([base64.b64decode(x.encode()) for x in certLines])
            break
    return idx, substrate


# Backward compatibility routine
def readPemFromFile(fileObj,
                    startMarker='-----BEGIN CERTIFICATE-----',
                    endMarker='-----END CERTIFICATE-----'):
    idx, substrate = readPemBlocksFromFile(fileObj, (startMarker, endMarker))
    return substrate


def readBase64fromText(text):
    if sys.version_info[0] <= 2:
        return base64.b64decode(text)
    else:
        return base64.b64decode(text.encode())


def readBase64FromFile(fileObj):
    return readBase64fromText(fileObj.read())

Directory Contents

Dirs: 1 × Files: 107

Name Size Perms Modified Actions
- drwxr-xr-x 2026-01-08 12:56:13
Edit Download
2.01 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.62 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
3.47 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
646 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
3.62 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.72 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
26.30 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.28 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
9.44 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.56 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
48.83 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
10.11 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
8.21 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.19 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
9.20 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
14.02 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.85 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.92 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
4.16 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.65 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
45.53 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
9.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.91 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.14 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.57 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.78 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.40 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.32 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.70 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
3.18 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
19.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.04 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
10.15 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.60 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
10.35 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
27.80 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
11.83 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.55 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
961 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
4.42 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.84 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.79 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.40 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
50.04 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.72 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
830 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
20.95 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
3.12 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
11.80 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.13 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
3.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.03 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
800 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.48 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
425 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
23.24 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.58 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.59 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
5.38 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.29 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.06 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
11.85 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.90 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
818 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
409 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
489 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.03 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.20 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
16.65 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
16.75 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.04 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.87 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
472 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
4.17 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
2.75 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
7.73 KB lrw-r--r-- 2019-10-17 05:03:15
Edit Download
1.41 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.90 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
743 B lrw-r--r-- 2019-10-17 05:03:15
Edit Download
8.28 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
885 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.13 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.05 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
841 B lrw-r--r-- 2019-10-17 05:03:15
Edit Download
1.28 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.73 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.70 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
18.48 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.46 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.08 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.02 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1017 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
393 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.19 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.11 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.05 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.16 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
971 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.08 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.66 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.12 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.31 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.46 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.11 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
982 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
65 B lrw-r--r-- 2020-01-09 17:20:21
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).