# # 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 whileTrue:
certLine = fileObj.readline() ifnot 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
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.