X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=blobdiff_plain;f=pyderasn.py;h=9a8ccddfa319df841e98a94ac4950f9b6f308c3d;hp=1690ab087e8be7d2c69ccb22756fd42d584b1022;hb=e7a4b259f8cd580f52160c17842d797fc3ddf7dc;hpb=52e1e53150f709d535b60abb87e522296c5a5f4b diff --git a/pyderasn.py b/pyderasn.py index 1690ab0..9a8ccdd 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -542,6 +542,7 @@ from collections import OrderedDict from datetime import datetime from math import ceil from os import environ +from string import ascii_letters from string import digits from six import add_metaclass @@ -3511,6 +3512,13 @@ class PrintableString(CommonString): tag_default = tag_encode(19) encoding = "ascii" asn1_type_name = "PrintableString" + allowable_chars = set((ascii_letters + digits + " '()+,-./:=?").encode("ascii")) + + def _value_sanitize(self, value): + value = super(PrintableString, self)._value_sanitize(value) + if not set(value) <= self.allowable_chars: + raise DecodeError("non-printable value") + return value class TeletexString(CommonString):