blob: c335ec9ce0d33063bdc59bd2b34029d67a704287 [file] [log] [blame]
Lev Walkind748bff2017-08-07 17:47:50 -07001ASN_MODULE_SOURCES= \
2 Uint3.c \
3 Uint8.c \
4 Uint16.c \
5 Uint32.c \
6 Uint64.c \
7 SequenceOfUint8.c \
8 SequenceOfUint16.c \
9 Opaque.c \
10 HashedId32.c \
11 HashedId10.c \
12 HashedId8.c \
13 HashedId4.c \
14 HashedId3.c \
15 Time32.c \
16 Time64.c \
17 ValidityPeriod.c \
18 Duration.c \
19 GeographicRegion.c \
20 CircularRegion.c \
21 RectangularRegion.c \
22 SequenceOfRectangularRegion.c \
23 PolygonalRegion.c \
24 TwoDLocation.c \
25 IdentifiedRegion.c \
26 SequenceOfIdentifiedRegion.c \
27 CountryOnly.c \
28 CountryAndRegions.c \
29 CountryAndSubregions.c \
30 RegionAndSubregions.c \
31 SequenceOfRegionAndSubregions.c \
32 ThreeDLocation.c \
33 Latitude.c \
34 Longitude.c \
35 Elevation.c \
36 NinetyDegreeInt.c \
37 KnownLatitude.c \
38 UnknownLatitude.c \
39 OneEightyDegreeInt.c \
40 KnownLongitude.c \
41 UnknownLongitude.c \
42 ElevInt.c \
43 Signature.c \
44 EcdsaP256Signature.c \
45 EccP256CurvePoint.c \
46 SymmAlgorithm.c \
47 HashAlgorithm.c \
48 EciesP256EncryptedKey.c \
49 EncryptionKey.c \
50 PublicEncryptionKey.c \
51 BasePublicEncryptionKey.c \
52 PublicVerificationKey.c \
53 SymmetricEncryptionKey.c \
54 PsidSsp.c \
55 SequenceOfPsidSsp.c \
56 Psid.c \
57 SequenceOfPsid.c \
58 ServiceSpecificPermissions.c \
59 PsidSspRange.c \
60 SequenceOfPsidSspRange.c \
61 SspRange.c \
62 SequenceOfOctetString.c \
63 SubjectAssurance.c \
64 CrlSeries.c \
65 IValue.c \
66 Hostname.c \
67 LinkageValue.c \
68 GroupLinkageValue.c \
69 LaId.c \
70 LinkageSeed.c \
71 SignedDataPayload.c \
72 Ieee1609Dot2Data.c \
73 Ieee1609Dot2Content.c \
74 SignedData.c \
75 SignerIdentifier.c \
76 ToBeSignedData.c \
77 HashedData.c \
78 HeaderInfo.c \
79 MissingCrlIdentifier.c \
80 Countersignature.c \
81 EncryptedData.c \
82 RecipientInfo.c \
83 SequenceOfRecipientInfo.c \
84 PreSharedKeyRecipientInfo.c \
85 SymmRecipientInfo.c \
86 PKRecipientInfo.c \
87 EncryptedDataEncryptionKey.c \
88 SymmetricCiphertext.c \
89 AesCcmCiphertext.c \
90 Certificate.c \
91 SequenceOfCertificate.c \
92 CertificateBase.c \
93 CertificateType.c \
94 ImplicitCertificate.c \
95 ExplicitCertificate.c \
96 IssuerIdentifier.c \
97 ToBeSignedCertificate.c \
98 CertificateId.c \
99 LinkageData.c \
100 EndEntityType.c \
101 PsidGroupPermissions.c \
102 SequenceOfPsidGroupPermissions.c \
103 SubjectPermissions.c \
104 VerificationKeyIndicator.c
105
106ASN_MODULE_HEADERS= \
107 Uint3.h \
108 Uint8.h \
109 Uint16.h \
110 Uint32.h \
111 Uint64.h \
112 SequenceOfUint8.h \
113 SequenceOfUint16.h \
114 Opaque.h \
115 HashedId32.h \
116 HashedId10.h \
117 HashedId8.h \
118 HashedId4.h \
119 HashedId3.h \
120 Time32.h \
121 Time64.h \
122 ValidityPeriod.h \
123 Duration.h \
124 GeographicRegion.h \
125 CircularRegion.h \
126 RectangularRegion.h \
127 SequenceOfRectangularRegion.h \
128 PolygonalRegion.h \
129 TwoDLocation.h \
130 IdentifiedRegion.h \
131 SequenceOfIdentifiedRegion.h \
132 CountryOnly.h \
133 CountryAndRegions.h \
134 CountryAndSubregions.h \
135 RegionAndSubregions.h \
136 SequenceOfRegionAndSubregions.h \
137 ThreeDLocation.h \
138 Latitude.h \
139 Longitude.h \
140 Elevation.h \
141 NinetyDegreeInt.h \
142 KnownLatitude.h \
143 UnknownLatitude.h \
144 OneEightyDegreeInt.h \
145 KnownLongitude.h \
146 UnknownLongitude.h \
147 ElevInt.h \
148 Signature.h \
149 EcdsaP256Signature.h \
150 EccP256CurvePoint.h \
151 SymmAlgorithm.h \
152 HashAlgorithm.h \
153 EciesP256EncryptedKey.h \
154 EncryptionKey.h \
155 PublicEncryptionKey.h \
156 BasePublicEncryptionKey.h \
157 PublicVerificationKey.h \
158 SymmetricEncryptionKey.h \
159 PsidSsp.h \
160 SequenceOfPsidSsp.h \
161 Psid.h \
162 SequenceOfPsid.h \
163 ServiceSpecificPermissions.h \
164 PsidSspRange.h \
165 SequenceOfPsidSspRange.h \
166 SspRange.h \
167 SequenceOfOctetString.h \
168 SubjectAssurance.h \
169 CrlSeries.h \
170 IValue.h \
171 Hostname.h \
172 LinkageValue.h \
173 GroupLinkageValue.h \
174 LaId.h \
175 LinkageSeed.h \
176 SignedDataPayload.h \
177 Ieee1609Dot2Data.h \
178 Ieee1609Dot2Content.h \
179 SignedData.h \
180 SignerIdentifier.h \
181 ToBeSignedData.h \
182 HashedData.h \
183 HeaderInfo.h \
184 MissingCrlIdentifier.h \
185 Countersignature.h \
186 EncryptedData.h \
187 RecipientInfo.h \
188 SequenceOfRecipientInfo.h \
189 PreSharedKeyRecipientInfo.h \
190 SymmRecipientInfo.h \
191 PKRecipientInfo.h \
192 EncryptedDataEncryptionKey.h \
193 SymmetricCiphertext.h \
194 AesCcmCiphertext.h \
195 Certificate.h \
196 SequenceOfCertificate.h \
197 CertificateBase.h \
198 CertificateType.h \
199 ImplicitCertificate.h \
200 ExplicitCertificate.h \
201 IssuerIdentifier.h \
202 ToBeSignedCertificate.h \
203 CertificateId.h \
204 LinkageData.h \
205 EndEntityType.h \
206 PsidGroupPermissions.h \
207 SequenceOfPsidGroupPermissions.h \
208 SubjectPermissions.h \
209 VerificationKeyIndicator.h
210
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700211ASN_MODULE_HEADERS+=OPEN_TYPE.h
212ASN_MODULE_SOURCES+=OPEN_TYPE.c
213ASN_MODULE_HEADERS+=constr_CHOICE.h
Lev Walkind748bff2017-08-07 17:47:50 -0700214ASN_MODULE_HEADERS+=UTF8String.h
215ASN_MODULE_HEADERS+=BOOLEAN.h
216ASN_MODULE_SOURCES+=BOOLEAN.c
217ASN_MODULE_HEADERS+=INTEGER.h
218ASN_MODULE_HEADERS+=NativeEnumerated.h
219ASN_MODULE_SOURCES+=INTEGER.c
220ASN_MODULE_HEADERS+=NULL.h
221ASN_MODULE_SOURCES+=NULL.c
222ASN_MODULE_SOURCES+=NativeEnumerated.c
223ASN_MODULE_HEADERS+=NativeInteger.h
224ASN_MODULE_SOURCES+=NativeInteger.c
225ASN_MODULE_SOURCES+=UTF8String.c
226ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
227ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c
228ASN_MODULE_HEADERS+=asn_SET_OF.h
229ASN_MODULE_SOURCES+=asn_SET_OF.c
Lev Walkind748bff2017-08-07 17:47:50 -0700230ASN_MODULE_SOURCES+=constr_CHOICE.c
231ASN_MODULE_HEADERS+=constr_SEQUENCE.h
232ASN_MODULE_SOURCES+=constr_SEQUENCE.c
233ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
234ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c
235ASN_MODULE_HEADERS+=constr_SET_OF.h
236ASN_MODULE_SOURCES+=constr_SET_OF.c
237ASN_MODULE_HEADERS+=asn_application.h
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700238ASN_MODULE_HEADERS+=asn_ioc.h
Lev Walkind748bff2017-08-07 17:47:50 -0700239ASN_MODULE_HEADERS+=asn_system.h
240ASN_MODULE_HEADERS+=asn_codecs.h
241ASN_MODULE_HEADERS+=asn_internal.h
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700242ASN_MODULE_HEADERS+=asn_bit_data.h
243ASN_MODULE_SOURCES+=asn_bit_data.c
Lev Walkind748bff2017-08-07 17:47:50 -0700244ASN_MODULE_HEADERS+=OCTET_STRING.h
245ASN_MODULE_SOURCES+=OCTET_STRING.c
246ASN_MODULE_HEADERS+=BIT_STRING.h
247ASN_MODULE_SOURCES+=BIT_STRING.c
248ASN_MODULE_SOURCES+=asn_codecs_prim.c
249ASN_MODULE_HEADERS+=asn_codecs_prim.h
250ASN_MODULE_HEADERS+=ber_tlv_length.h
251ASN_MODULE_SOURCES+=ber_tlv_length.c
252ASN_MODULE_HEADERS+=ber_tlv_tag.h
253ASN_MODULE_SOURCES+=ber_tlv_tag.c
254ASN_MODULE_HEADERS+=ber_decoder.h
255ASN_MODULE_SOURCES+=ber_decoder.c
256ASN_MODULE_HEADERS+=der_encoder.h
257ASN_MODULE_SOURCES+=der_encoder.c
258ASN_MODULE_HEADERS+=constr_TYPE.h
259ASN_MODULE_SOURCES+=constr_TYPE.c
260ASN_MODULE_HEADERS+=constraints.h
261ASN_MODULE_SOURCES+=constraints.c
262ASN_MODULE_HEADERS+=xer_support.h
263ASN_MODULE_SOURCES+=xer_support.c
264ASN_MODULE_HEADERS+=xer_decoder.h
265ASN_MODULE_SOURCES+=xer_decoder.c
266ASN_MODULE_HEADERS+=xer_encoder.h
267ASN_MODULE_SOURCES+=xer_encoder.c
Lev Walkind748bff2017-08-07 17:47:50 -0700268ASN_MODULE_HEADERS+=per_support.h
269ASN_MODULE_SOURCES+=per_support.c
270ASN_MODULE_HEADERS+=per_decoder.h
271ASN_MODULE_SOURCES+=per_decoder.c
272ASN_MODULE_HEADERS+=per_encoder.h
273ASN_MODULE_SOURCES+=per_encoder.c
274ASN_MODULE_HEADERS+=per_opentype.h
275ASN_MODULE_SOURCES+=per_opentype.c
276ASN_CONVERTER_SOURCES+=converter-sample.c
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700277ASN_MODULE_HEADERS+=oer_decoder.h
278ASN_MODULE_SOURCES+=oer_decoder.c
279ASN_MODULE_HEADERS+=oer_encoder.h
280ASN_MODULE_SOURCES+=oer_encoder.c
281ASN_MODULE_HEADERS+=oer_support.h
282ASN_MODULE_SOURCES+=oer_support.c
283ASN_MODULE_SOURCES+=OPEN_TYPE_oer.c
Lev Walkind748bff2017-08-07 17:47:50 -0700284ASN_MODULE_SOURCES+=INTEGER_oer.c
285ASN_MODULE_SOURCES+=OCTET_STRING_oer.c
286ASN_MODULE_SOURCES+=NativeInteger_oer.c
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700287ASN_MODULE_SOURCES+=NativeEnumerated_oer.c
Lev Walkind748bff2017-08-07 17:47:50 -0700288ASN_MODULE_SOURCES+=constr_SEQUENCE_oer.c
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700289ASN_MODULE_SOURCES+=constr_CHOICE_oer.c
Lev Walkind748bff2017-08-07 17:47:50 -0700290ASN_CONVERTER_SOURCES+=pdu_collection.c
291
292
293lib_LTLIBRARIES=libsomething.la
294libsomething_la_SOURCES=$(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS)
295
296# This file may be used as an input for make(3)
297# Remove the lines below to convert it into a pure .am file
298TARGET = 1609-2-dump
299CPPFLAGS += -DASN_CONVERTER_TITLE="IEEE 1609.2-2016 decoder" -DHAVE_CONFIG_H -DJUNKTEST -D_DEFAULT_SOURCE -DASN_DISABLE_PER_SUPPORT -DPDU=Certificate -DASN_PDU_COLLECTION -I.
300OBJS=${ASN_MODULE_SOURCES:.c=.o} ${ASN_CONVERTER_SOURCES:.c=.o}
301
302all: maybe-wip-pause Certificate.c $(TARGET)
303
304$(TARGET): ${OBJS}
305 $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TARGET) ${OBJS} $(LDFLAGS) $(LIBS)
306
307.SUFFIXES:
308.SUFFIXES: .c .o
309
310.c.o:
311 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
312
313clean:
314 rm -f $(TARGET)
315 rm -f $(OBJS)
316
317regen: regenerate-from-asn1-source
318
319regenerate-from-asn1-source:
320 ../../asn1c/asn1c -S ../../skeletons -pdu=Certificate -pdu=auto -fcompound-names -gen-OER ../IEEE-1609.2-2016.asn1
321
322
323Certificate.c: ../sample.makefile.regen ../IEEE-1609.2-2016.asn1
324 make regen-makefile
325 @touch Certificate.c
326 make
327
328regen-makefile:
329 TITLE="IEEE 1609.2-2016 decoder" \
330 ASN1CMDOPTS="-pdu=auto -fcompound-names -gen-OER" \
331 ASN1MODULES="../IEEE-1609.2-2016.asn1" \
332 ASN1PDU=Certificate \
333 PROGNAME=1609-2-dump \
334 CPPFLAGS="" \
335 ../sample.makefile.regen
336
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700337check: ${TARGET} check-ber check-xer check-oer check-per
Lev Walkind748bff2017-08-07 17:47:50 -0700338 @echo ================
339 @echo All tests passed
340 @echo ================
341
342check-ber:
343 @if test -f sample-Certificate-1.[db]er ; then \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700344 for f in sample-*-*.[db]er; do \
345 pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
Lev Walkind748bff2017-08-07 17:47:50 -0700346 for b in 1 17 33 980 8192; do \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700347 echo "Recoding $$f ($$pdu) into XER and back ($$b)..."; \
348 ./${TARGET} -p $$pdu -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
349 ./${TARGET} -p $$pdu -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
Lev Walkind748bff2017-08-07 17:47:50 -0700350 diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 4; \
351 rm -f ./.tmp.[12].$$$$; \
352 echo "Test junking $$f (please wait)..."; \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700353 ./${TARGET} -J0.0001 -n 1000 -p $$pdu -b $$b -iber -onull $$f || exit 5; \
354 ./${TARGET} -J0.001 -n 1000 -p $$pdu -b $$b -iber -onull $$f || exit 6; \
Lev Walkind748bff2017-08-07 17:47:50 -0700355 done; done; fi
356
357check-xer:
358 @if test -f sample-Certificate-1.xer ; then \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700359 for f in sample-*-*.xer; do \
360 pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
Lev Walkind748bff2017-08-07 17:47:50 -0700361 for b in 1 17 33 980 8192; do \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700362 echo "Recoding $$f ($$pdu) into DER and back ($$b)..."; \
363 ./${TARGET} -p $$pdu -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
364 ./${TARGET} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
Lev Walkind748bff2017-08-07 17:47:50 -0700365 diff $$f ./.tmp.2.$$$$ || exit 4; \
366 rm -f ./.tmp.[12].$$$$; \
367 echo "Test junking $$f (please wait)..."; \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700368 ./${TARGET} -J0.0001 -n 1000 -p $$pdu -b $$b -ixer -onull $$f || exit 5; \
369 ./${TARGET} -J0.001 -n 1000 -p $$pdu -b $$b -ixer -onull $$f || exit 6; \
370 done; done; fi
371
372check-oer:
373 @if test -f sample-Certificate-1.*oer ; then \
374 for f in sample-*-*.{c,}oer; do \
375 pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
376 for b in 1 17 33 980 8192; do \
377 echo "Recoding $$f ($$pdu) into XER and back ($$b)..."; \
378 ./${TARGET} -p $$pdu -b $$b -ioer -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
379 ./${TARGET} -p $$pdu -b $$b -ioer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
380 diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 4; \
381 rm -f ./.tmp.[12].$$$$; \
382 echo "Test junking $$f (please wait)..."; \
383 ./${TARGET} -J0.0001 -n 1000 -p $$pdu -b $$b -ioer -onull $$f || exit 5; \
384 ./${TARGET} -J0.001 -n 1000 -p $$pdu -b $$b -ioer -onull $$f || exit 6; \
Lev Walkind748bff2017-08-07 17:47:50 -0700385 done; done; fi
386
387check-per:
388 @if test -f sample-Certificate-1-nopad.per ; then \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700389 for f in sample-*-[1-9]-nopad.per; do \
390 pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
Lev Walkind748bff2017-08-07 17:47:50 -0700391 for b in 1 17 33 980 8192; do \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700392 echo "Recoding non-padded $$f ($$pdu) into DER into XER and back ($$b)..."; \
393 ./${TARGET} -p $$pdu -b $$b -per-nopad -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
394 ./${TARGET} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
395 ./${TARGET} -p $$pdu -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 4; \
Lev Walkind748bff2017-08-07 17:47:50 -0700396 diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 5; \
397 rm -f ./.tmp.[123].$$$$; \
398 echo "Test junking $$f (please wait)..."; \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700399 ./${TARGET} -J0.0001 -n 1000 -p $$pdu -b $$b -per-nopad -iper -onull $$f || exit 6; \
400 ./${TARGET} -J0.001 -n 1000 -p $$pdu -b $$b -per-nopad -iper -onull $$f || exit 7; \
Lev Walkind748bff2017-08-07 17:47:50 -0700401 done; done; fi
402 @if test -f sample-Certificate-1.per ; then \
403 for f in sample-*-[1-9].per; do \
404 pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
405 for b in 1 17 33 980 8192; do \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700406 echo "Recoding $$f ($$pdu) into DER into XER and back ($$b)..."; \
407 ./${TARGET} -p $$pdu -b $$b -iper -oder $$f > ./.tmp.1.$$$$ || exit 3; \
408 ./${TARGET} -p $$pdu -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 4; \
409 ./${TARGET} -p $$pdu -b $$b -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 5; \
Lev Walkind748bff2017-08-07 17:47:50 -0700410 diff $$f ./.tmp.1.$$$$ || exit 6; \
411 rm -f ./.tmp.[12].$$$$; \
412 echo "Test junking $$f (please wait)..."; \
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700413 ./${TARGET} -J0.0001 -n 1000 -p $$pdu -b $$b -iper -onull $$f || exit 7; \
414 ./${TARGET} -J0.001 -n 1000 -p $$pdu -b $$b -iper -onull $$f || exit 8; \
Lev Walkind748bff2017-08-07 17:47:50 -0700415 done; done; fi
416
417maybe-wip-pause:
Lev Walkinaa7e94f2017-08-27 23:44:58 -0700418 @if [ -f WIP ]; then cat WIP; sleep 2; fi
Lev Walkind748bff2017-08-07 17:47:50 -0700419
420distclean: clean
421 rm -f $(ASN_MODULE_SOURCES)
422 rm -f $(ASN_MODULE_HEADERS)
423 rm -f $(ASN_CONVERTER_SOURCES) $(ASN_CONVERTER_HEADERS)
424 rm -f Makefile.am.sample