1
2 '''
3 ASN.1 transformers. These transformers perform correct ASN.1 encoding. The
4 data Generators module contains a couple of additional ASN.1 classes
5 that perform incorrect encodings.
6
7 @author: Michael Eddington
8 @version: $Id: Peach.Transformers.asn1-pysrc.html 1138 2008-08-16 19:39:03Z meddingt $
9 '''
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 try:
39 from struct import *
40 from Peach.transformer import Transformer
41 from pyasn1.type import univ
42 from pyasn1.codec import der, ber, cer
43
45 '''
46 DER encode an octect string ASN.1 style
47 '''
48
50 return der.encoder.encode(univ.OctetString(data))
51
53 '''
54 DER encode a bit string ASN.1 style
55 '''
56
58 return der.encoder.encode(univ.BitString(data))
59
61 '''
62 DER encode an integer ASN.1 style
63 '''
64
66 return der.encoder.encode(univ.Integer(int(data)))
67
69 '''
70 DER encode a boolean ASN.1 style. Expects 0 or 1.
71 '''
72
79
81 '''
82 DER encode an object identifierASN.1 style.
83 '''
84
86 return der.encoder.encode(univ.ObjectIdentifier(data))
87
88
89
91 '''
92 BER encode a string ASN.1 style
93 '''
94
96 return ber.encoder.encode(univ.OctetString(data))
97
99 '''
100 BER encode a bit string ASN.1 style
101 '''
102
104 return ber.encoder.encode(univ.BitString(data))
105
107 '''
108 BER encode an integer ASN.1 style
109 '''
110
112 return ber.encoder.encode(univ.Integer(int(data)))
113
115 '''
116 BER encode a boolean ASN.1 style. Expects 0 or 1.
117 '''
118
125
127 '''
128 BER encode an object identifierASN.1 style.
129 '''
130
132 return ber.encoder.encode(univ.ObjectIdentifier(data))
133
134
135
137 '''
138 CER encode a string ASN.1 style
139 '''
140
142 return cer.encoder.encode(univ.OctetString(data))
143
145 '''
146 CER encode a bit string ASN.1 style
147 '''
148
150 return cer.encoder.encode(univ.BitString(data))
151
153 '''
154 CER encode an integer ASN.1 style
155 '''
156
158 return cer.encoder.encode(univ.Integer(int(data)))
159
161 '''
162 CER encode a boolean ASN.1 style. Expects 0 or 1.
163 '''
164
171
173 '''
174 CER encode an object identifierASN.1 style.
175 '''
176
178 return cer.encoder.encode(univ.ObjectIdentifier(data))
179
180 except:
181 pass
182
183
184
185