diff options
author | Pawel Kowalski <p.kowalski2@partner.samsung.com> | 2019-08-28 14:28:40 +0200 |
---|---|---|
committer | Pawel Kowalski <p.kowalski2@partner.samsung.com> | 2019-08-28 14:28:40 +0200 |
commit | 26bea900a531662c6028ecc06f4adea825658434 (patch) | |
tree | 1db3d30bddc8b8336fa7a8f2bf5a3615001071e1 /doc/libtasn1.ps | |
parent | e527f54afdf27ab8ce73a22d05d69e5482f5e92b (diff) | |
download | libtasn1-26bea900a531662c6028ecc06f4adea825658434.tar.gz libtasn1-26bea900a531662c6028ecc06f4adea825658434.tar.bz2 libtasn1-26bea900a531662c6028ecc06f4adea825658434.zip |
Imported Upstream version 4.14upstream/4.14
Diffstat (limited to 'doc/libtasn1.ps')
-rw-r--r-- | doc/libtasn1.ps | 3905 |
1 files changed, 1961 insertions, 1944 deletions
diff --git a/doc/libtasn1.ps b/doc/libtasn1.ps index 735c14c..b0c8398 100644 --- a/doc/libtasn1.ps +++ b/doc/libtasn1.ps @@ -1,18 +1,18 @@ %!PS-Adobe-2.0 -%%Creator: dvips(k) 5.996 Copyright 2016 Radical Eye Software +%%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software %%Title: libtasn1.dvi -%%CreationDate: Tue Jan 16 17:47:03 2018 +%%CreationDate: Fri Jul 19 19:09:57 2019 %%Pages: 36 %%PageOrder: Ascend -%%BoundingBox: 0 0 596 842 +%%BoundingBox: 0 0 612 792 %%DocumentFonts: CMBX12 CMR10 CMTT12 CMSY10 CMMI12 CMMI10 CMTT10 CMSS10 %%+ CMSL10 CMSLTT10 CMB10 CMTT9 CMR9 CMMI9 -%%DocumentPaperSizes: a4 +%%DocumentPaperSizes: Letter %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -q -o libtasn1.ps libtasn1.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2018.01.16:1847 +%DVIPSSource: TeX output 2019.07.19:2109 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -1360,6 +1360,7 @@ dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put +dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put @@ -1564,223 +1565,227 @@ C3C67E71D8BE2B8D5784E8A6F19A9A8929DF9833440E160945274682F435DFAC 575048CC768BB8F13AA21C6B125E6073611BE138AE06D13E62E7EDE3D0239474 E040B3E446165FFE60E20B75D2A5F9EE021B22256621C290A8F3342F0347B8EC CFA6AD68D47C05268EE3AC8683F4840D736EAB585C6284018DC94FC103B4A882 -ADAEFB625EA966F3877B3FFEA518B809A4BD1976F150D90CA8D3F4CD9BDE66D3 -C4EDAAD03F38F51BCDE46EDE3886162BD9BB261372533ABD34FED03C561B0130 -BBF8365B2289D193B45CA39A7A738A7D573E2345E7C90BBECA11CEDAEE221757 -21D744792446A018BF566063ED4B286F03DC5B7F675B6095FCB023CF330B9941 -F4CA0142BE88BB675436D0811B54A389DAF3C6742FE17ED4B6760401356C5F45 -2BA5CDE430A38B9DBBA11B96B48FD6B91492F12108A2BD5DCFEC68DCAC37B01F -34829D2B458E78C57342FA33F4B6C22F4B14CDF101BC10E7705E095C1D41FF88 -847F3CA10F0CE5B61C99AA12085390CDB04303DAE42C682E8D51D67BFC9EBDDE -E875AFE2C97AA54CB9CF4CDFA10D20C35A742BD05BF2610E3AB68D03444E830B -140637754252B2735488BD1E0ED5C20050984E08E6072690862EEA0EECC2F630 -D6CA6E30A1C8C7E69C4DAEC4C75BC4FC4FCC6FEF365C73A4B3810591CC6D443D -E7642EA8B6141FAE0D255B164DD0487C92E379BBF2C611A0CE138D81512A748A -2F8839DA6FCE17A54327BE9D62897840729E1D46929C96685080240A13FF3217 -C9641EC494FC47B30938935CDA0B2C44BD08847F22D693485AA6A0F05AA5B483 -70BAA7AA0C3A14A5B5343666327A003001D221D9DA18EA194DC23E1301D171B6 -7C5EC1EB8370AB77BB0356CE8F299013E1C7F5BD9C6F2CB4E6145581F78591FC -D029F91A54F29EB0FE77BFB5C8FE378E166955B2DCE364A71C3AD33DE1E745AD -417E727BE5D2B02EA3932545F95EA4399C4CDCCFB49709B491FD6A1EA2733568 -4FBB320505889D4C5F32D4B4F10C28D0A661471869ADE7B824DCB6753D03C393 -E76B6DE5DAD6D5834739E426F3A0C660D784E5CD386E6A5441FF6B41F9448A7D -56B14E40F0174365321667F84977BC33B2050D532A40397BDA697361BDC535F0 -53ED23C5EFBE4F7C6794304A0FF6B67A7C8E8001D47D7733A13FC672D9AEE1B7 -FEB0DBC7355F635C86461F1AB2F7E0B9C80F61E830599F2CAE67E85468336481 -E9E6433EC7EFFC359B70B98035F5D2CCCA4743B9EF41F19EBF3B550418D0D913 -C48E9D62580733D4E210AFEAA5B764A521F387CDE8411E3EA996347642BCC3B8 -05A60E6056EF0FF34F028ECAC78C19826F1EED90B01A47DCFDD769D78458647E -505492642104B550D057D73C986E2CBE896B52CBD67FC056D968AECB5869C712 -4D52E0A774F3681832AEE1EEACE1DAE31B779ABE6E760072522C4EAEC7D5538D -701B0C048713FC390B5E7D9729A5078AB46EE62B1B76857F65A3959DCBE8A409 -D8297851791989780C35328D8CF730881326E2C796A9A3161CEF031A068C42DD -7E58F4B3B788CFD4F05195B4D58CB5FDBF7E06C44280723F27C20BCD234D5E85 -3B3AF6D9A49324CCD96C1B82B4DF94E182EC62C9822AD4EE33BAF810482F3EC1 -FEC1B87CE6039C60EDB6A8D189D1715A7CF542CEE4197488CDC0433518271D4C -53EB8238C67DD01F7DD2DF798054EA8CD5922CB9A8E3D5522F71400DBCFAC866 -A8B37C0ACAEE6E8F18241BEE610415B7D7CD0F02302404862137AE9C9F9155ED -DA5454C584E89277F40048DB5662A9A5C6106D16A51D3A5FFB7EA197DAD29ECB -219353620641D310BF811DCF8701967FC99B937BA3D369D0A18A98EDBB2B1EAB -C0534B458266976D1D872DF0E2EA702AE79A273054C28425B245154BEEFF874F -5929DC8179D2DEF24B84CD7F8FA385B17ECD04E71DFFB618611C967040EBBF31 -867A1AF98AA82ACB6FA1E65115D06A5D10701D8077C7F93343D5CB255A565738 -A3AC97905293D0B83DF381AC9C3E9FEABDB49504BA5D04043A4473665488BABC -F9FCB4A97167DC394327F0CA3510F8439843B6812ACAE6774C523EBE7434AA5B -0134719857865320EB40001E310370BBB0AC48E4950B2C817A48E2EC92D04524 -EAEA30188E333AB95902DEF3088B9CEA52D14078A3FB8ED012F36118F8BA671B -6215E1CB5A619A4EF1B390CE97E99FD0453A4493EB45C3793BE85CE13AE0C199 -C388BAD3D4ACADE0086056F62708B4E3CAB3864F3E0333E615894916B7334E43 -4DDE99CB3C92155F1A07464C5D3592E89CBD25D67CEEF0C29CF2501D0F9BD6D6 -9644EBFE95F2550A15A4E8CB6AE38F6CA4B006FCB5EAC6FB4A789EB88F891A87 -1747B5A5700CA2D8E531BC372A101783207E7FA42A019992A5AE22BF55B8538D -538ABD912CEC58C5A9C5F78687A3A777391FBC5CB37B47CB70B7F965264E78E7 -57F9C81CBAD6693CB97300FBAEA8BA041E5E9ED3CEC9FC796F71F50823F2D2B4 -7CEDD0C6562D1B0F63AC218689002D09276EFA203860CE660E5B36A02ADCE68F -5643412C907A028843F6FE8D05B734CC8F525C9D4F2D007E12F49256AD5A6C26 -414C48438AF65FD0A116091AA59679EF655804DE72D4A032C88E70E965289014 -4AF3B45395F2762F9ADE1CBB3570E9689694F3D77E1DCB65BE20460D077CF2A0 -344D1C07DAF4616BD52353032F50D5C640805D78448DF7E49ABBD2B2025ECBB8 -57536EB7EDE67E8647434B74C4D232E9628D2175D49DDEFA99236310B466268C -E318689AF662B44D804E96D1CE5265678629E079D749554EEBD69278A4EE8795 -ABE7495DCEA3E85E3C97C91887EFE33C90D83C267379A67F7C86D812C63B56F3 -D605D45C36A0825B1CB352FF1D016744ACCA4D55A5A58D8651D023499D14F911 -6CD4C962EE7CD9110067F99C5CA5697E539FB78027C7FCD05060A22E220BCF85 -F4E3DD7F176B4615F53025F126E9BCF5647954FEEAA6382BA7D715867638EEFF -A393E427329612E791A950FC84CA9EBF084D4A67A24CFD7536591229E67E4410 -1FE5D2E74468416E9720ACBD535E13641F39B38376C676B01629C6C39CA1158B -0021A3C98C921B0C5BE8EAEFB0F489FA59834981F3D70E70E2C5CC9DD905BA8E -03A6AE3DA98F9438064838B0FABCBD83071C7D49E37DE9D6C5289AB2825A62B0 -2A761A7E1BDD75D64EA0C2800699EBBEBFC97CB7212DD3DFF3284A966415E0A6 -668C25020BBAB3D885303AA85239B69C9C083D9D6251F35A20F63AB04ED2D7E1 -AE49EFD44BD620CD0B95929C815D8D17F909E2102027910DD813F5E4F20D0FF1 -D4E4541547AC5A6143439EAC27E0F1A11A430373FFA4401F7844FCBCC0D4D0E6 -C5E52E03157831BD6CBA03C00D2BB80C6CD64D69E885AE62D4ED452D2F4A864F -0BF0CBD86C2780AAC052423F590DE3DE4D6E39EE05A15199DFC75F1FC1EA1D1E -04514C061C4FB7FC872E099B526FF927F6AD8BDAB25CDDACF03E15E475979B53 -1AA25A8C9F77DC958A95A5F9A3B2D4B1CD759E0257510F850F148351846AB8E3 -34AA5CCA4CDDD6520C36789CBB281BA7DA20F5976A4E731681E47765896F4108 -2859376056F823A6E40587935455C22B1AB003F4C8053D57B521F1520009744F -091644AD51BC329FD432CEFA48C7CAE415BBD7362DAFB92D997836EFBF9DC5D8 -3AB26A0DEC90F175F0222334BB7B4E97A84AE6A01E6CF113262443AF464B24AB -1174DD4AA1760800CEF690AE6888E7A1E82D69DCD65CFD57CEEC83A52E28F299 -1FDD8D6BACD3F9F38F92F3E98D086437F44F55B49483C9F49A776191E7F26D7D -9FF8642E1D69C6E97640A64BC981760CD1E423269EC8DE0166FC053D1DDE7AB0 -163DBF3EDBB6F91FF217BF62CF640E673056D030303550B3BA9B9EFE3886E79C -015F68BEA5EEA461083D72F57DE6D38BB0F91829FE9B550B0A0E8BD802591A92 -494F50C8A2E29B2D13B7F930444C5CBAE371E3A32F56CE10DF8582B697E6E7D3 -80ACDB11EC9E080B0826D6CD8E378F5A98BD4CFFF1CA77CE5825EECE282A4C9D -60458E57C15617D16CAE6114A65FD03CD57411C143EC678290410AFB7092B483 -C9A4F08AFDF5AC048ED7C0B5F04A86DFA1760C01E1A7B5629E9DB276BF04283C -CBE698E90E635DCF162A543EA956500D2B499B17D1581B729DEEA5C5E141C164 -E290CF3A782497CA309959CD6E79E7E0F0989EF12631C7EFB79DDC27878BA445 -828C7EF4F4647683BAA41003E67515C4FD367D6DDFF53D987D82C123CCF4E1D6 -F6C0BD859F271BCCA27373CEAAA0DFB041B5A76C333B24F69CB46EAC0C58B3DE -F7B9F95B2A6219BFD48AFDC471789AB6563D582B1DC2B55E657ED1F2DC33C718 -ACCB45AD417E725FCCA5E848AA997A5E2ADCD2FE85EF65B51BBA20A80D9CAF2E -CDE7A216380C44B617C3965E82784856348A9FC8F8078DC34BD883A048C3DE73 -584E75F2F924990802906A334C45D82264E3806C1618F8645D15513E014AECBA -CB8D02A925393174E3A0744D635A630DD984B7DAE5ED8D7B48A71C8580995E24 -E743E83AC57E445DB3B914A0C7743BD608CAED5F31AFA9ABFAC4EAC3B5F7C266 -13A496E1A546227BFB3A19ACE042D13954446409E09F4631C6EC967CA2B59E69 -185301A999A28106145843A60B963FD7CB0EA0AFF4D2F850B55C88A41B9AC5A5 -4A1D67A0622146A75224331421E38ED23A3FC11351B0FA8B2512D1A93C7B909D -A1993FFC80B3F114A1468207592BFC34F49A15D77572EB129AB1393F557092ED -59BD1E645940FCEFB4B3E39771E4983EAA2CFA33573B7FBA761067E54E6CAB15 -678536A2FE638A0A4C508A71001BAED69F3D4C2700C9ADDDB666B1754957A8B9 -E98DF835AED0544CF272ABA25FCAE349E0A24449E36A2719F2301426FB61069D -3F8D24DBE1A3CF15EFBE64012D5A05FE5E81A7EB841909FB8C94C8CCA1357708 -C5E8BB923F791D721920C067A0A8065691CF400414C9E90D7AA794F2C7E845FC -08FF4F8133F9C82BCFA699368ECBF6AC497EAB207E6F60419D91E5A0D7141E1C -AF70DF40D7723923D15F4A33742D1C0439FAE7ABF110CDB6256FFADBF296F4B2 -651182F3FDDABDF8E6CE2EE98FEDECF192A750FCCE8D91A3D7C47B6FC3DDD73B -925386537D7A9671B9887AF57AEA9A19610AF44C14EDC4CB00505A6D51492117 -BA96923DBB4F1C078764E81780E384FCE44944D68E843C0324A93511E394F3A0 -27DEB767145F4B28B353D6559D1731E07781F21B794C346779D59AC2A269FB10 -706ADBE2DFCF7FCA0D285906DB46B0CE4F54CC0C5C9BD85A1C1E1207AB6E0E2A -C13B4C5D3B04D50C4686051BFB8C7C583104C5C06C98ED9793D2F90CD74F3B1F -B4844E92D260D197D6F82C9161B78B509F86D0706DDB488119034CF8CE3F8AAC -24A0D3145ACA773AFEE463E1ED290ACD704501400832572ADA4BC8CF3B45EE50 -5D6B0BEFE762E3E46681E856F031B50206F0EEC6FC48263FEBAC451E4CD5A577 -D0E85CFCC49645790DD11C5A939D589AE552BA5D1933ECB14BD54CBC6D8F036D -76949367532CC57FF4DE38AAEC7F324691D5BD96C1A76D976EE267F4B6414CF6 -3F5F299C162BB63B5E64D284A97878ED05B770AE864607C538E0CEDD6541CF01 -5C22B9F702C119CDADE25AD23C31E78F46D215A6D65F37652C4D74C636CBA212 -8D4C6FA5667BE5D25F59F58C4D35319896060116ADD5B27F94205AEF4DDEB648 -C3DB1A06BCA363FA4538137B051D4BBC94B34BD94D9C8E728A99A067933649E9 -F57F1A08498E24783960D546B4F53AFBDD15F401C78A8982DC42DD2FCDAC4E47 -5DADE22DFE7E013275A619AA38B3889F8D81493BBBE04FF6E4815A7B51D6C162 -58B953BECD461972DA9952AA2F44D16465F0743C602CA583F436305FFFDB6F7E -AA4398524C2D804BA3B3DD14850CAD0FD15E2793E3903D9809802F9FF33947DC -56D1E63A6DDF36FA836D2A70DA1914954CFEC82E645FF3B17A6C18E9D1DAF11E -EFD529C47B5FB67EB6925BEFDCB2965CD8D43375915B2141319293CF55912FC7 -9B7D7372DCFC480C344C0755B802DD31E82F7808DC99ADD39A6F37FE8417AFDE -F6324B415C36FF87DF66543E5E411CB83985EC6972F350236B7DCE0E24B0E59E -8F365F01803F62EA64DF9BF8A20755E1447BAF2FE8BE7662DEDF67BF37CFD088 -1BE20797FF44B62DC3A4AFA09FD64937C95E7085489099F185F66E3CEF6F6C8D -A1362FA13C853D172096C0FA44F257F6270D22EFA230C261791EA6062D3BAACE -F5A1EA0DB44BCDB834D28D02AC851440D145C1885A5B1E5DBF1F8EBD076550BE -064452220616FDC46A7B92250F07C3D0440B8ACDB87E92DE5C567AF0CAD733EF -66C90876469C5FBCE277EA1C85E76E00BAC14B824BF743D90AB86288A3D740D9 -6E402AAF6D223C11D7F4D03C47E39FC45F5CAA282EA30C0351D580A8734346EE -735D909A2F6D23F1E1F55C2163AFDB42E528A1FB6D22FD3ACCC12CB771FE1E7C -F5C946D682443A26BD0396FD44DC9484C75469B7CD0207EAFCFD6BBDD0A8989A -A9B8FAFD59F3FC57F1C35ECF26EEA7B09A6505EA01CD8ADF8FE0664BE19D1E05 -56135EC7C89F64B7426E0DDE5CD424A834E576781A6179F63B7ABF41FA9A1EBB -45C8D93D4C172353952D961C9D3BF0FC42F7EB4D4AC32750B0BC9596A4D9F610 -428239422891286815D66116A02DB58531B25CEDE819F7B5F044A9207C264DC1 -FD02DEB67B622DD3655D2FECD7C106F0104FA05C22D5221DAA6E134D3149608F -03FC97DF783DEEB8F0757E2116B36BAB0384D18184177D97D947983550285B17 -1DAA6BE705219CB6ED34D02CFEB76D708014181B299F69F8B4CA7D0FCBDB43DE -8AA73403A531D81A9290AE447184735B7C2FA4F81E59C07FC8454D690EFD9F36 -0D7DB4F0FD87DDA518387F342F9CCBA1B36985D8A2EF780793B79D4521AB828B -5F0006E8A4F41976945501F3BCD6D8064311E6471E856D89903810B298D82560 -A04B927F04D6B8E062893466A2B98EAD6FAEA3866F0C43ACEA9695FC602F712C -1A563759D399F56A38DFDF00A69BEBF7B52ECE48E1F40001C6A94825BA48A318 -399A5C879C7C70C913DFC8F0D26070AD1FADA158039ED6140B04D4ADEB2B3605 -B5EA9F670E2DD40180886053399EBF39FBED864034C95E378789FEFA0055BFB2 -148FEC39E0B80C4793BEE6D5109FDE9B405E5C32D8480A854838E22A7723AF08 -786FBE9A4D20207BF7A2B6AC3A8B38FBAC4EFFF1E961C0BF3750B99929A891E6 -7E3F4734230D98212410DDA8665ED6EC2CB22A4210AF6E7E0511214B6B714708 -644ABFC6D303CDEA42375BB856547B0CBDF73FD732B5FE2402C3BE286E391BDD -70594242F300906C09747A66EAC5AC8D86E3F6D9123E5DEF6520C2104DAFBF29 -3575D497CC5C01DB31D97D5CD3A07C7A5D3C0ED470CF49BD885D7E2B5D336602 -09BB1BF76513175E98977D5AB84A0534FF60C8BA59ACF3E82011603B0ED4B691 -8435CAE6D4D937B84C14E8D58F5D0DFA6193491BA4DA4BE76D8FE65F3538D019 -A615B9624780817B43BC9980C5DACE3B92927622459284E0F337C53694E745CA -9578F28788330B93D257C911558D443764E07C81B910B7752F53A2FB665DEBF3 -454D88067569006D1D55BC6C31A7E02632FC1AD74FA56CB95B0C7679CE4E917F -4C364FC8FA6DFF3ABFBAA8193B559760C0ECA8FEB1EF4B1A7B09A412E9825215 -A5ED693F182EF3C51337A272CB2328875C437ECD0D387C93E25E69B82144804A -AAF142E2C3054F59459D51F0AA663C50D317553B901712880C4B3FFD95F32C14 -424AE2A1CD3913497702E2BE6049CB6334A44CE727DEC48F259F8C5A514FD25F -62EEDFD4CF170DD2CA4CAAF4B22C9FE090B4D52C96578B30646361D5EB942CB4 -B8A8251F02A22518E94ED659C193DCF48423DBFE0F909D10A84CB8AFF593D3F0 -E6EE31800E36249E0B7992E620CFBDA4B37B3A8C9EED8F13D9FCF96D517E6F79 -95C02E77A9615730264264B9524C7F5F63DC1827D7C6EED9F602D0D94B78BC6A -1952BC2038E3D48FDCAB72DF8CE7B034AD9557AE9A3FDFE9D904D97DA83CBFD5 -4C90B52624876E17AF64D0E24FFCDD2BCCB66D98DEA7680537C79417A4F18BCD -DD98CB487B447A317EE2F00E28716282A514B19EFA35CABAE5314ED349A50BDA -82A0FF68C318D5212DA2FD9D3E7E440F2E592BF08F0DB0C901F9C3F8868CF2CC -F50832676814B2A6832C1BFE1AF637A3AA129E160FD29898244A2D0145AC8332 -7269BC07364E7367CEBDCDF7DAC0E3745BB58EDBAF00618A7619F31E5A942286 -CBC91C0B565B57F9BB8C8BEB3FF3FD10E4063B85E8874C1DFA13031310FC2826 -3E67D0EC92DDF46F23F0AA4851DC75F92CED85821B3AFDB02D416B7D463947A6 -CA8F9409621B95631862A86002FFAD9FD0098A20961AD38B234DB08E5DF61D51 -6F85988ED8B0ADCCABE7F1ECDFAAB1DD9BD40629B1E65BD089396FDFE0A17C40 -99951F668BD116E812A245936D70E294285F89170447520CB556944F8DCBE076 -C4FC87625AE3D679A0ACE7DBC73FE4A28A22937E48C950802CC71D47DC551A9A -3B8227D72952C46FF592DAF1746D996CF17996C146CED52610176221E9CF510F -EAAA612D1265E4E1E4AE2FFE7094A99C139A44E7255D3A6105A21435ADA34ACE -E82F071DE99F3A6289C0C04362EFE40997E9E15CDAA5DAAA4C16411F26C01C66 -A2A6EDEB969E9440CF7A8980103DB8D94538D149FDAE75FCDEFF3F90424DF294 -0EAFF17284A5DAA1D23F4BD74B0F5B50B78E1D8697C1A3CB203B59F50837E0CA -D8ED77940E586EC519D0AA059F4A497D49635DB8D96DED66BF8F3CFBF7C12C13 -4693C3CC69C420B19810551ACC78E060C001610E0EACFA822BC9716D3671A62D -2AF9B525B9043C67081A9C2B8D3B703AE5C407EA1C89610E4EC92A953711D45B -C7801F58A316500BBE4794193AA9B21AE017416D1CCC2E4C6315EA0E6E1E825B -972DA5B331175BDE7111FBA4F41C13CB40427A97D8B9A5F1702E9A9EB0BBFC9F -0E00B4759F346D38E8A47F2F0C63C7D284EC8DB8FFC18AF0120F081126347A60 -2883E5EE4BC0858AE21F48CC271C90B37B191CC377126A41EA064D81C6200B7D -340924B6F50564EA4D2A92327AFCB1D5B07D6B801125E41732D4F373CDA0B495 -98106652E949972B86BD3882AF0993C5A0B9368C20DC3CE87C00B53267188A7C -2FE7EC5E443654DF30463A83069D90E7BBF0C787B8EA11C7D7CEB456B28B1ADC -605A8956DF1B63938C2946B06629FD12BA5AD9D627ABC73DD7C18D919AE05198 -CB7274D81862195556F92EC63E1DE68C09D2C2A6AC9E049FE7A28410201A4D93 -D569C862EAC182B1FFC5715B68E40D666F59B8AED6526D0047AFE6891183925E -3A2EA27C741B8C4FD031537A461737709443F63EA922D2DBB2C5519A72A78832 -619F190C31767FD4DA0521343C246C874F6B7F53F444A5155984062FD7FF2E4C -FD12638DDF777F9AEC8EFA25643B2FF85180A73292F288A13EF1593D0245A90D -A8E50B6870075310F9D0258F9626D577D64894561FAFAA31A7627B38F81BECD9 -B322EA2901D61545B7489D3AEA31BF314D236F7994517EFB8663F38D0DDBFD7A -A992C19863C9B3F32D21AD970A8869592BB97508F7DE9544C360D87FA95FE33B -796D41808589C67D6B0374AE0B7F55DDA11CB34F9C287119636A642AD3A40B2A -7F6961CAA3FACA92D3815B68184595A93A903F73840DA1A3699A420CFFF61F8E -E38B82E30C1E0F5F3E5518A9E87C2B4C0177AE246AB345A65388104584EF11E3 -88254BB0CCBFFD36A924EEF2D21C4030AD5F3CCEE563998ED48CFFFAA24DBBCD -8C7F885585B3A8B3FB5B8A03D307D752D5174A5C450C4C64369A371BACA1C7BB -4A7058108DBE6065DB0C64DFD4584C7362CF17F2442ADA0FA4D89E82E10E27CC -133162A1DB6F2AF58AE0EF27904C89297E9BCADA2017140A52E267FBD44D5704 -E61C +ADAEFB625EA966F3877B3FFEA518B809A4BD1977BF1902EB9F06FBAE30E8932A +D1761807C92594B57F86E1E36BE9027B7D1E0C22A83A2140A91406D0289D3833 +C3361F8882CF720E445B144B633F199BD875EF97202DF88AB3EBA034E510A6A2 +D2F464F6D5AEDC833F8BB9BA74A6679F71D843D6BC4D40FCC68B411224212236 +3B94C160C14C57E0BF68104DF3C99880C25245EC98AE48F71BE243D4278C2B17 +1CAFBE0C365E96559B77E607BFFC6634D03B8E25BDEF3FD2E3D8B66473C7B425 +45A646CF3B68A56D1C64C5456A61E5ACDE212CDF6DCDF6D589049EF6C91C30AA +8556424F309355355EA52E8F7342A91D122FAB2DFFDEAA78506228B49385C05B +08793E912D338712173DD0DB44C7C3281FA3D8B14CBA99A3938B147564342923 +D53A2BF18D334DE5E31659A3434EAC96A8D7B363AAEF5CA4DAE67A27890C07AC +F31A6BA7E4A3C2AF654C025F17FCEBEC864C0A9B7B68571CA56BFA4A249896FD +96BB19B8F250672878B67BA411BBAFE3CBBD940F005DBF32F1D682F487A1D1B0 +854922FF69C8D6600E67142D651192A911ABE2602E5126FFDC351E1845A22D02 +AFC17BAF941906E5F7A3C35D2DAC2A2F1C958E637A0EB5401B195FF1E1908B3C +EE13700E365119C68B8A0C3471D3E7911A6734A678F43E86FC55570385E5E107 +4CD618E7430A92C695F6ABA13A68FC71C573D62F6FEAE12D6C1EEE1F1C424C6B +CFF56BDE7FC34F88A144A62CFCE0D377F8BA416827181FBC7FF8538FA19B1ADA +1A12DAA904DE6087D90A750CF8B76F97E3AE0BE6F65145F7E99F566C8D18F817 +532DDE4EC38F5127D404053F3B6CB4694D9973209533D99DC44948178F9F976B +697A04799D7FCEFB13B347143472353503A3DAC56A753E96F46E1AA1D736D7CC +55E6E80EFF0FDBA4A7728E5B5BE6A98BDB93DF5E27253D9C646B595B0507DE97 +CEE5379120D39CA5F22E3952261C0205AFC2A7AFE07F0D8352072E6455A62FFD +3FBAFB256E0B4288E8F6B724CCB0913026D7B19435183FEB0E7FDB7DA521A9DD +EC933881FABA422199AF4F4FBE7BBF8F89F4733A31CF7814673A4BB142CBF3B1 +987E1BA9A6E3372A3ECC943A373940E4411F69F23477CDB2638C060A96023009 +555378908A27BBB6DA89D5D556A536E38DC41FC66F35EAEC9C948AFB2A826A6A +5E8DE93976448E0DA8C81AC71B78F76FB1B265E446C05DDA5E049298BFE6A4B2 +DE4053742E11EC7FAEB122D6E3E30D91F075B38C7A4D0BBA4BD4EDB637BCAF9C +D2A3E27AFD24071B4CB37722D8027E8604CB80E3EAAF45F7098F730B11016E29 +29E6E8460703BFC901B4314A825C3D1783A46F5947A46CAF30BF4A66C7EA7ACB +A63A3FD2FFD9B7DD4D72EFBD5C0314885AC7EDEC9C04244B07CAFD993B9EF84A +E12A23548EE99CF89A77C5990687BEE34FCEC3EA658448015BC90B0786E5402F +9F432FF356324779145310A982E269789AE091E430A0F4C9F3EF03B93C2220E7 +CB0627B8C4193154081CE3A57E64F659ACE95511BF4FC4D4D4D78A503B68613B +4E6DE03A7EAA69B0C6EF0C08A117D3F1416D077BE519E668A3D7826C924446CE +08FB7DAE6E73301DCEB2312BC57401DB7CB38F2ED4567735C4792DF450C91F28 +35AD53A70F762499AD712984A65BC7561CB0B0E9FFDB1F961284DDF22C42DE23 +9A734C6EF90E453F1721890BA4056EE43FEF8743407CFDC3A4BCBD0D74CFC14B +019585A4E0055F8A79C1ECA2EB40EC0639BEB7F11F82E006C772173319ED3765 +ED20E579EAFED984C0F83C694968E8BE5000C9F9BAF72F24462164578FBE03AF +8779FDB09149BBB336335C58575B0476E8D97D06CFE4F8842348AAE075872F22 +6CE687C9C127C17720B7AB19B734670E7F241D493F71F7F670E3348E205E1243 +18D645C5B19C1F5359CCD9D3E9B5167BDC1FDA655AF47B45A7D15552583AA514 +FFC9A9E84D5D3EAAD53C17F42F650BD3E160635F8A4502F31A8781A72D893AE4 +7E65B5C524F5292E2D6DEC4DEB56BF52D612335401568F3B260DD73FE1E92219 +0F3FCDC127A654E3E258DF662815A673845C91131CBFEB5750A3BA225892FAB5 +2BC7341D758CFFFDD768983EF8CA9082CE935FACA20ADE200C148E4C97A81E45 +BC7C49D180E7640AB9CDEE1D03851AAA9A5DCF5EE98BA5AE501AEB4DD6C188E7 +8917B66C41523220E0722168D50264F000046A23102A0302F68E3A17BB370456 +FECA547897AC46F4E91D7A82401AB537041F144284F8A7AF17B723669E9AC554 +9A0F0874E4C471E01F2D53930493C52FD6C61175A67A4E16EC362B6CC4B242A0 +8AA814B7ECB7FF829F121E9016CD0F9E4DF347D00AA7A30C148BBD5D857E8685 +00B284B3CA2F0DF0E7C5871A1F2107A2AD69517B3DD43591058DD5C628E27073 +BE2A18DF6E768E8E25003F6A06FC0173673209F1DB7794C144466AE8B5E1271D +37E874DCA477D70AAA8100F75425DB765BF94EA131CFE379632CFC31D907DBB7 +9F1C967FF459F490EDA15522E7C6E0399E7B76642DD67B2310987936074617F4 +4750B22CC1BD7AAB80B2C764118F317852B90580C369324CCD3AEC4B62D43004 +1B51981E02DD34A98B01A8508B189DE0C4E83813721D3B34417F63D4A25F640E +D09CAF6958C35F1E1F17F2C846A623002A91B9FC2689D944F1BC4F265F71E3DA +8CE72ADC538ED824DFE439634392FAE73FD525F563158CFC77E0E4F73C6E2297 +D9D1559BCD92805B4C92EEC03B61F313725A14BDB45D923733EE78E33EF3F43F +36DF9D01307833C59F0F385921086E0888A660BA2F78AD31252AF074602AA100 +E149F7EA08A1F6BDC3895AE0090CC1C43545DD9C639FB9B39D52F3AE78BBDFC2 +A25C3AE98BEA9DCA8A4ABE31096CE36CEBE9BE231D7567115FD2FCA246ED3916 +A041B7B38140B3A85C1AAD83A5E7D540F3F5EA71B7D5A60E6B278C981962297A +CE19E330B29652E763300876007240244775D1E3D78A3CA90A2516F68BD02677 +54899B8CDA19653E67C5B7CD73E173E4234F116E85B9FE48C50544A644523FC4 +E7472344E92271838CA7C85A11B028AE10A02771D3ABDEB514123D947859EB2C +AC95A65233B92E29C00FED999E4ABE5470C7F5661A371B7E1D65C57E7951CA42 +89B2D52283208ECB114D13C0049ED6D128750D55D3230DB53DBB5D26DB7D2A6A +1F70AF774E25ACB2037FE312A5EEDC40694A38BAAE1821CE515197F8D950857B +7AB5552C30B3114899951A421299894A07249015D943D128043D14AF40837B48 +14650157A807E412AF4E9009C281AA161FA8EDA7A1B59B6DC8C92056941127DB +8697F91BEA0847DD52FE27EF171DE0B4C6A03AD86C61C8A7D60ABF434FA8C7E1 +BFF12B8B21765D09795176CBCB70BADA370A6D5A6C55DA23C09A23663AD3D4B1 +3BC46E8DD66F74B8A9AC681A443F0341CBBB9920264EA6A1591A69882A46EE26 +0557E482A086AC5AB23B027D10E4B939A109DC2DC98B6A5F9E4CC9EC8D98FD54 +FA9540F5905F03093983FF900088332721E33B06CE903E133CB8FAE79C72284E +05005AD63DF217244278AA0CF5E02E0686857D8DE1F74EFC620F0E2A0CDCEF00 +11D89F33A7CE21672FC42089A81A427AE0806C6E5E5C954D1B5DD54E00FA4CF3 +B628A88CDEA0D61147962F5812837FFE6E7EB6043001B7DD871F4A5FE994CAB2 +3F5088B577B1A80546DCED65F01893D51D2F5BEB330E1A1F7537D07B3E1124A9 +6E8F443034498841EB49E467791ECA165990D265D6B7DCAF0518A659DF3EE073 +01EE946984292152FBF2FD33363E2EC01BD6D0C64FEDF18AF375695080B9A152 +29609B360C1E08E04D685E9FA0238FEFCB44A533B46E69F293CEDB3497A252B1 +B94952182838E0BC28D7BDD56D5285179C325E91B3483F678A6037B67229E55C +C6DB7175994B3B968FBAE1AAD369A61DB153FBD4E85F656E5BA6F47FC3EB9ABD +E877461DA4327359FAEF13F31648A9E2611BA9F8F92C046DB0C790C9BF7190C8 +6664A22A8DCADC378C434E63807051EA2CD0C8A068052DA3532B74BEB7523FCC +3E46B53C228AD100C962BC17C1A6120B22BC9BA7FABCC73C8D853CEAEE0CE4BE +61361522BFB29DAD47D8C63161DD149DB3B4A56F69CE6F06E0B8A0F5C130795C +CC75DE509A39AB65E6E948C57ECAFEFF85E48A33A344BCAC6D2B3A9E147CF412 +44B42D1E1999749013B86A54ADE9F21BB47ED0B9B0FBE6E04862CDF0A6EC36C8 +E278993B652E248FA402C96821FE3B4AA0A36E48897A176E3D7BFB8CAE2FB727 +67F1C9F310EA97B784EE5314972D59E0FB1DFCF1CD627228CBBBB78EA9295DED +3AAA3E0237DE3F86A76AD6814D05355B0296FA57F55855AB17CA33082FC055FF +FD15B98195A545958A1F7695ECE82216010A3B9B9E9F7CC95DB7649D011749B3 +6B21242D5C58C7F627DA1DE432DE5DCB6701AD43BE64ED5E129D654ABE811E2E +A8148D1C87135BCFEB584C62839A13D1C3B9E3AD1B07E8F39852E90DAF725A61 +575F6D0D884A6A362BBDA1C04CBF86CC9B38F248011F18BDF2AD86F59FB9A748 +752D1AD5D0BB7868ED11C7C5A97895502D9955AEEE1273BC97B3585BC8E0F64F +89A91959FE49CFB9E5090AAD27F3C9D9BD15E4CA2DF2F237897CA6945BCB862C +E353B8BE6F2B1D4E1BCF7226494A2F1FB86008FFC8F5F461176B53A7BA4E03C8 +4FA72ECCF1F8919AFD9A7A886AEA9005B14A928D52997A7FA77730B4D1E7D366 +50E80C99E8F04D78099D320F7CC45791FE45F069B794A37F2C4C8E24002D7487 +494C7A1122751CF6ED23C2F991B65861D809E0EBDB71E36408FE840959AEF3E3 +427B1C3FB3F213BCF32528BC101C0BAE5FD1B874189FC51B86E821426F37CD4F +98726B1553178576E8CB2CB6ED773EDD4FF7821A3AA19B5F170E7E0064E2D2ED +F6237CBE00C3B7851102D8287D23926F21977FF11935EE0C1AEACF76159FC031 +1D522D600DEAF60A76C49FAC7EA9FBB25CEAB8EC0E06B55F5502DA23DE3E429E +EE8677FAFA080E9644BF2401599E876B7D6B534A228DD92C137DDA792F24221E +C16A7C5CCD2AB7B9F01C77FC23EB879D0F6023BBF59822DB6AEFFA993CB02BD2 +52214DABC729DA7939DDB909EED4B834E328459CA45AF906012BF058AF847AE0 +18EDF77AA15D12BB3F01449C225613EB5D11D93882F7F05E627E42F2B799BE7D +9249C8F9226E929AE04ED6A51A66D789319721162E127379EE9514AB7A8308E8 +B3EEBA20F0C558EA68068BA71C9CEA158F49C295D5CCB312A6952B49F93BF4BA +0643969797744812290640085654BDAE5E5CE8A78B252ABD6E2E8ADE87DF953A +0EDF7411E58383B6A269D928DD4D3ABB621BB4FEECDD9E84B29452859B60222F +170639491FC6F77F39A256341FD992156CBC45213AEFB43316F2C3E446D7806D +6F56245B738E0F7CD2E1BDF80ACB163D425D05583AE7E7373D687F079F4A28DA +8B6EDBAF5C3C741C2BBB3D33FA4FFD71AE242E52F68B6496AFC50097EF031824 +E7E43BBB6020F93BFD437F06CECF02194A8CB87B2652E97063FECC204E4F0398 +23743A81A2EA02BD016791E99403E67EADA4ECA4490279652933F42857351217 +62118964338C51F534C68B9B9BE719C166AD3AD9ED522514A99C97E8014D5852 +380A81B5890E0A277102130BE0969E6DBC015F676BC0B3B0DE30D07901B10BF9 +45B89F18EE13A0D617FE3ECA8E6EA04652AF6CDC7F009A52B531EA70522CC31E +A0E91B6E9D60EEC4DD7F92B9083C7B019CE01AC885F6B5857AFD4123B1B87E58 +F0A889C898732E0D079184450F12BBCADBB249FB593D81738B8F69DBB5016F60 +3048F5C1D5CA2266259DD2CE37CDE4A7E1633C4D3577E390521F8A8D8BB7F6FA +6063AB1089F18C8E30F87727C4CF78D5C54B0464E17E55C4347AB0EFB810C049 +C2307E4F520110A137DEC343CABC1F642EDDDF233B96AB7F8416676BB32D2479 +65C48F746E7019C839414CEE81A03DC435F10717A85286BBCFEACF24C9A671BD +4820BCBBC896A30DA3450C4F4947CE3A07E717BC789DC4EEF25CE4AD2BEC0411 +FE152A289C1D26C9508D206386B65AA1B2AAC060163819C8496F3609E291FA71 +B29E5A529994FE4956C4EC6FA95AFFDADC2DE58ECF6C6E160D3306B8FD42E398 +4F9C0900EF120203684823BF309F03E23195F2848F51E321DFFD9BC24B6E3BB2 +474C7CA890DE8C0EFDD1085D37FC800173ECC63FAFEAD51B681F964EFDB5C0B2 +7DD7E8EF6F333497B3FEB72FE035324FBBB06E7488441083CBD10F2E6024BD4C +72A0AED77847FBBADCA8B2880D3CC8E04BD1503C70DB1D8DA1C2BE303F0C7CE1 +7673488237350657DE4B7FC9775C13B6231DB84845755755F67D4ABCE6F45658 +E17CE8FAE0CAC26733FDD493E15CF5D1AD5BEFE23D6E1EB335A3706E3A71EB22 +40BAC5D469EEAB3686691127037D50A7B2AFDB496D2B1E9FAC69DC1E83A0D833 +AB839AAEACE34AAA0F4272774E7DDDA88586A381C6133F12A41EE11FDE813E59 +B6E5C3914AFB7F786C39CFA9C5A8E73D49B3511EEE9AEBAEED94B8D559DE5CE9 +CBE6BD710215DB65F041A230740F28BDDB46A89B38AC8767F252ACD1B297EA4C +EE114AAB6EFF10D398CA1B788AE63B672C867474220F6F20FE9F0B1AC1650B2C +EBB80EB68D62024EC5C2124F3607DF8776928BC25867C4730808308FBC326156 +5A99B88CD042F581A389B459A6F8FC484EE8C17DE640C7928A78CFBB9C6104FE +004009DF77FAFE4E1C092F6E5FA048D771D7F25AAC0013D0402A1AFD1E8D0515 +BFDC767DB9BE89407322857519236AEAC3A076CEEEEE7FEECB30B6751EE09E9C +472DBDA84A3D45A6CD9B9E7A29FB31852315389E7038F57923EC9225803A6A68 +7EA2F3EF394AA6CCB8336F34F75E2B5E577A4724663A0A35338A8E95C989B9C7 +CE48B675933214EE6FA7EE94B3249ABCEB5EC75A714C30CB88E27B9752DFD3DD +0CC44FC1E3230D92274E1F35429B377DBE57867A40F37B8B88260C3A72ACDCD2 +C8AEF714124B838C638468A9405C46CB2BE67A118A117FBE0A0CAFD9A36D2882 +516B94676566B98BFA1EF6DB6D7258F9420EF010ACB3DAA97409CB272A60AE22 +0E03F9C40889C514E3A4D1BB3A10A6DCC439EBE37D8C28472060DB405F74E855 +27BAD6D66BFC8CCCA038F5BB9EE0F5F1EECB64311A731EA3A22B52AC2AA9933B +7909A46DC299C3D701527E734C339955325265C0D5A3E30B1506239F803847ED +0ED27F81C1B982FC881769BB5DB178405501DDD2507EE8B038FC9F440E849736 +2CA4A7CA8F25BC2DDB645DC96DA317DE9BA8A2207329D3A722D2D15663E47E19 +13058EAFA7BE4635666070C17BFA087FEE6244495F5E5AA6CA1FF1054215E9CF +AD6160126243C941031D3675B73AB83602B8FD765A81D49A8D7AB9A3D107BAE8 +234D9FDFD2D720C1894FE036D249B7A19165A744F8A5D1C226258F8A6ABE0B3A +65DBB2E761542D20EB327375A1B6738F0814C9273D30863144AF710492D90C61 +6861198193A64E9A6BC1093CFBA2890C4132D1B9F0D133AE52F0B8A39197534B +22BBCF08BCA93A492FA327E92008F42BAC0AD14AF049D2C23CD92D84C9749282 +FD4A491333DCFCE526AA22C2C68C1A85D18199782807725C5D1363A72CEF75BD +1ACFBF1B64590C6A24F09B6D4E0C433C49DC99ABE220361E98D25C594253DD5E +903F487B4C2553F78B70C03B8E3658405FD8427065ACE263AAE8AEF2D92ECFDE +71DF9CB7DD61A9EC5B0AAED868F91423A410527C057D8F543B93DA02F40CE88A +E4F29A755430068AC26CF97EF481B5650AEDE5E6BE6E03AAA2F1BB0D04507028 +26C0166B4F91FADD73BD4C557C2B3BB477B3A73921821A704F18103489109533 +3B7F59422F9FF147EED3FEF9BD2EC6EE9C4305593C5563CB6C400353EF3DF249 +0E9CAB7918B61706BC300A39AEB4650ECCF7A3E9342297E4E6AB177F6CB63BF2 +C33DC31FCA946D8B4D33788CB6C91AACCE90DDF5F1B92DC2E7B2D0E244F3C893 +F37B7E2FFE10EF0D1AD762243840BBC99232B1CAC7A321AF88D2BA62B55E305E +ABF6323CB529D0766E0E8F4230D9EE5BB6863B605A0DF56695C01AE054CCB502 +1905489F1A486FE00B284356D1AB83D27BEEDAAEC8DB318114590D0324755C61 +18521C015B5855F0992792E644D194BB3F52E4679659FC4B8AE383F7EF29ECB9 +6EBEA201A8875DEA6410CCBF09BF050D08182DEB13264F55E0F5FFAC218370E6 +5E9C8AF9E349856AB11D393B583F4FEED6EB4EFF9727084D69977D67EB7B61FB +A79DB726E75FD817270B6CF8C8D0A57A6F83ED03B1D3DE572324E7F4BD4D1B99 +97140FF18BF45B6198202AB9A30DEF4ED9695D5FEC15942FC363E9CDEF782F04 +486F71CE6BFA5E8D53C969065D990700E3485967EC03EFEAF0F479CFFBED405A +2D29B98307EA5D4E2CF536DA21F66A961F9A860EBA38B51EF6A106E009DCF099 +B0A2DB3D768850526B90ACE82FB6589D3459351DF1CD37F9CFA174D2F9597A50 +C1033304D971EC0C2314B2AF3E665DF1B53F751E913CB5D4808501B507059879 +769E3ADCC2D8E3875C7D6EF7E7CB48DD07E2F0B415E869D196B6D0B8B80023C5 +7501F75710AF487BD35DBC56BEA988EFB72A60D37DDB34A3E16E4C3302041FED +F67725B1E85AA62C438D812902CD301CD6B0711356956B3EE81244634ACFE99B +695465D6249EA7D73F0530B7A5C6C321E52608C33699498800E0B496288D2C91 +F85FE65F17A7127E7B24B965CA8901ACBADEEAC73A7DE07B53966F0A5D857486 +674B6BD44831C3DA3914E72DB66AC7F1F7553DD8F8125779348ACB28B313A5EC +BFD42000EC537ECF0A191364CEE8F7557697852610AF5C00EC2E23DF58BDC5B4 +D7238CF054E0019259CFF06D29A7045757429F71ED61743C71A6CD09D0CC9DA9 +289B1C880D8E07C79E66FFB61682EB3162821C9DD3161EEB998269A42D64A160 +9E07F3D060E6D9055636B786218A103F8ECEE20933D1233FBFF0ECF9F01BAF09 +560441BB6A0B6931192496CF3485BEC03F10581B3C8936A6C3BB0C3D4AF346BB +0FF8AC37DDAE5D82561F31DEA6107119F89EC25056E7FD5984EA349407EBE597 +BD71E2EE4E8034690BF158D2EECE68EA603FAD5E0258CE2084F898D7C7CE7625 +3D8990CAAAF8A87C730FCF7D9DA3E5991545CF680CE9CFF96FF99F2660E2164E +44AF04EF697F3F3FC8940BCA00A526D8AB419FF20FE6A0A007301F9AEA8324FB +5B069EDB2AAC535F5489F723BA457401417A63CC98BBC70C26FCE973F4AFF4DD +B3F3CF7AAD27AACB8C23D7E421D512A82259212FBA5D6DE572A40D04BB05D470 +EDB61AE5E4358F11D3FE840D24AC2D9CE4F91B3B9A357CBC8DFAFC8A0776DF14 +32A016B0D5F8226A7F3FE390001BC336024657D1F7151DF5098030553D71F87B +6A5C46D286D0AA3E946538ECD82EDAAF2C6B608041945232E52E27DE9928875F +D2406BA32126FCC92FCA719DCFFA13CDF0367E294AE6A4DAE01CC1D70E59AFBF +EAC961C6B3F63F3696FE3105F7980D24AD4F14BF7F35F84674AD400A94BE2A02 +9F243BE2AEDB5AA8BDC1A3FD5371E265149C110754A70412B068828C611EA981 +2907E87A12DEE88636F904F865C6CA994C0D139AAEEC147A2ED1955F527A7230 +51D5266D8C7CD0A1C1A9EA24CF1E65BCE6EBE21E04D7C94B0FF6DCE002F05BCE +1FDFF4F6BB1C72A49CE1A78A2916382D3DFD5A8A9E6D27C170D1626B702231BB +9921646CD185E87A367BDDB9DDC2F2239F3CBFAA9B73DDBFB2E5A6EBDCB0902E +CD432D6171B96245102B362BB07BC33B677CD115B309E98C35E02A515BF3B651 +99789B6B3C8E81C983D1AC9B9E53F4B3BB0AF40D3861C206272B07433C091734 +8123BF670D0BD74E04131F26C7BE882288C3700D0C3E804C23843BBB689CEE18 +40BF8DE4C4A90327099E286377892C3BF307240D0012C3BF05551B1D66F57F6E +D5409CF3C82F5AFFD40FD83C998626CBB46EB5B53317DB98C7D4C08F230DC51B +393211EB6B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -3751,13 +3756,12 @@ dup 12 /fi put dup 40 /parenleft put dup 41 /parenright put dup 46 /period put -dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put -dup 55 /seven put +dup 56 /eight put dup 58 /colon put dup 65 /A put dup 67 /C put @@ -3993,295 +3997,291 @@ BBCFFB1ED92299DB0291CAB10A84529B7FE279C62628A24A2FC36B01976E13A9 C528A198B8EC8654AD69CCB5C209964A2B25D6DA9BA0FFB366D19D8C69701D7E 8ECBEA88569601C80E19A4165AC73F32D0ED08C8FD0D0407325DFF60D69BC8FB 95D27536CFD07285E9FA0E957BD98B45C2E7A24AA33635C6683B801BC89AF92B -57BDBD4C4FA2979D6344AC3198440DB1709FAF1D9DBD7EF56D61664EC7BC0921 -2A51FE14DE1E2F1297F9DFD716BC08D5EED44C02A449C5F2F57D79D8806114F7 -A29CF906ABE31DD46AAB5562977194ECD03E78CBB9B405F3E2C4288D963F1B0A -CF60D94F28A813767BC40D2BF2B7808804D86B70DBF94654C66BA1C9ACE1D8C0 -DDC96E86F83000882EB43B827B54D499205F00CD9ABA1488A5ACF8A1C67DA1A7 -319BC9466FAAD8DC6178411A7665B719C8A2C9C08752199137D18C07F050F920 -D99A80697D9906F17C34D9F7002E243231D0605A10BA62A5BE24BA9370D67895 -2974D9AC107A45FC80B6CE4737F49921FB1F14CCEA0968E7ADE73F081A24938D -E19CC21EB81FE8100D478C6584A25876B1E2F4DC29C866CA5E854FE495F46B38 -311FE43A7E8FE3F9646507D23259F2D4970ADF7AF7E4ADBA8A1A5A8A7C621F0E -F2A1A4E4D5FE16E7B0E897D1896F4ED012A454FCE7AB1ADEF996780956884795 -90DBD63C5828FB8BB6702048EE10A62CDE24D71D6B901128F9C6CDB76BC5C7FC -E39362BBCDDB4318EF08C9B3CF7A0DC30E5D92AE4F93E4C3F6C8684395BF4DEA -AD736D39569007E8D020D26FECDE65B054B2A8B33442200B6E61DD0CFCAA50F6 -BD827C0BBDCD78C5867AB1E712C372FDDD5DD3ADA48BF40A5442876A53E5E34D -9EEA9A4DDEA7B00004FE8B5A2F74A65266BD4E6D81FC5B2DE06AD5405A353CE7 -999ECC2189BBF0E02581E4FD6B08F3709D92053B91F58AAAEF526449B3994159 -9C32F9D5C58EF1C8643359280E2712A42083D51AA7E2C7E3AFFBECA3ABF7E65B -40D29A06619AA6CCBC3DD8C650EAF46E7A4205D0AC073D975AE628F88935027B -36CCA945C0CB9CEF075D30897740E4696E90C5AEEB567EF45D8BEAAE811D5394 -5C56EF1060A048B764AEF895642899A64D1B43DDCC7F000B38C6F9E8F8E18B33 -E52241A7028A30C0E7A3E923C145B66ADD817E1142B09ACC1794F733CD09C893 -E7CAF8B9EAAA17FE2D99FE9414B0044735ED4697F40919329E03BDCD4B7D2126 -D51080F01C44F0C6B20E7A82AA5DF30B585AEC9F950BB82101C19895ADCD7668 -F8FFDBD6D559C40F27872C9DB1640EC248F8C1E2B852F244DA57F46F8F36E34F -672F649DF741D281A5D92B77D14A35BD71E1BD18E1009BD5852D099AB6C6DFD9 -81363038ECC5CD2F6C9EFBBE0556CF468290624E7A9FA0A119596C2CC05901AD -0FB432FCF9B79098D2501C46875F44CA438EE63670527EAB66AB620EE152ADFF -F63309400BC9BB2C93DA80BAEFF91CA0059965B743C7658ED2999CCAD0B6CB30 -7E549BE6CC5A3320A9321924DAB511B9D1F871218787070B7706F5DA180E567C -30B036869F297BE6F67C4519947BA83D9C24FED8DE0D02B7B9CAE1A03F82AB51 -75F707A65DBBA797653C1CBB3E5A0DF49D94CFCFC68BCB9ECAFBAAF03673ABA3 -B8321A0458EB3C91CC6DD69EE0941D9429C9C5092693B607A67E0AEAE55053F4 -D74CC02F87B891CC50BD8634543845BB44585404ECF2E512AD455D80EA2820A5 -0A853919C11791C0BB81303C5532623A1CE3AE964361AA2F2E241AC8C731056A -89727610875875A1D03A09E6F54E5606C808973770064E6C9CACA9F195512163 -BF99DEE1A715907E2772BC68D16508BC1DB50D7BC9198D23527C9581FDA43BF1 -D40A0DBBD96D65CF2D23360390E61E4C05CF743CFB31E58B1EA9DF7B80DA8141 -D26D09B3B3864B45C0495C56BCA163C00B6C77C747037AA8A1C0AB5FA2B8EDB7 -E7F305ED235246237A265F52A3223AA6F478533F4634CB6FB6DE6E81910265AE -83A4C384EC4897CD9A044A892079834755212800BCA31BFF1F67C31C975C8FDB -767C1D80DF27485468D48FB0B16F0D3C191705EAE8DA6B41A570A2D5DDE994CB -0ABF11EB4B4E420A5DD8725E870EE3958DF71590FD2317896FAA4C6F3F1558A1 -D829D5B8BA4C59364363D3C20A3F778A72914EB3707E562F244CF96FC90F506C -26349EE971AD5C91723922EECCA11B8D23E94EC119C5F3BAD9018342AF2E1934 -69E49E93524360C250A02544FA58E92E6E39B760E740DAF416938E412B1AF7F6 -D9FA3C9DC7835DE730C93344DD7B02848A4578C8810FF104F2E2A2EF38F52598 -5ABCE06308B024EA70486182FD2BCD88B02EB78420A3145F3E310DB94BBB9889 -F52EB14E39BAA497BBD563E39EBAADA2AF1320341F0D0B865F91EAF2CA91956E -B288D71F0FD38FC462D866082E9A6515AE23D63460EFFF2E3EFC4BC51F799CA0 -4DE2E555C64F9CD1375ACA5698A8EFBCE478F1C9BD344ECC534D83E6E233E709 -C8DF1AC21329965344A747067B03B791AE5C1ED0106412447291FED0A19ADB9C -7D3ABF0E596CADDF5021DF61A98BB2BEB3C7DE70C95407772D070407F28142AD -DB62C727D13483746DAC3CF262BC68B833AD874166B4D0EC10C7E2A4DB5ADDAC -5F248B8CD6ECB789AC03CA093B86700490CFA49D063DCB2A694A52886F2D256A -A59047BA8AA6F15CB5DA0466A857B66FC9E437678BD7EC602903337BF4700C71 -621A7813F120A934EBF5303EC5C0DC42780F3CAE043BF763B542309CFF3F2B87 -2AA14CADBD8D000A67298EE5AE4DFC4ACBC2CD873C4D9098086BD2B2F597E9AB -32E22A86E43A7A2D127C8E50112CA4A224FD28A1F26FD75A3440F0C7CD685414 -A0A738EBD355A62FEA6D46E4F82663AC49A6E91C1BF1D6337DCEDF19AE5C685B -C1224DC47603225DAB9072D54E49C0D51AA35777F1ACB4BF32AC7D01168C3976 -FD5257A7CD8CBAF17DCC98CD31C79839043A8EBD0E54EABE20AB3E113B751578 -C43C2030F99159D7709B6CCEEF4EA02ADFAB59DE70F6BB276EAB521E4E1BD371 -0C665CF7081813BC8A3714A403E2E7989FF396D9196C6A5DBAE6BE6CDB40DD7C -193F91A2911D7D791B8494E2CAFA72079842FF6F84D637C211E2BABE7DE62D11 -E41B8D400AEB3C3272C71CE684F478633151831716B99F52336D731F5BDC09E0 -9F392C58157236596F053A9A9A6AFB440C2C900A539E16E4C37289DD58E94DBE -8BE05D1547265F64C0F65AE960376C074791233175642B9F566C110FD4564480 -4751A13E9EDCBEFCAC10C90CBDF49C8C9D0B5F187F0FA7F3EED161CB038A278F -F08AAB6B033F38D4232D8E1C0543CD85F1ACFE35DA7153385490CD97DD3EE416 -BF37FAC61FFF85D4716A0AFDC45E922791977AD32AD61399565060C26C41F706 -7AAD2D27C3F54986284D3F6E0192DD8EC20BB4DCA8431E4B09CAA7E9C0186A48 -68D3D61DEBBD627AB139868AB0141630559387C58ADF13FD021B323AEC6002BE -51D85A9EB90FC8B47274B02BCE13269FDA90944FDAA40C74B988B23A575A6FF7 -596819BA5F075A6F488F69F7B9C80C4DB4A73CC57EE4C2D4FE07ACD2F163B87C -F7F9BC47308FE26F51C5F52BE9C2C5B2598936B349F8FAA3F1541EE2A0DF756A -EBF16D3C35E97CAD5A9C3AE9F62119B46D2EA30C07C679624297A0B6DF4C9BA2 -810BAFF711FD7D503AA68811A1FAE8F172EFC53F585A278E9C954BB1B4E219E8 -34944BE31B6AE71DC217D7DE08EFD59CDB71BD35D8F229BF4F6B36555BCEFAD2 -92E2B687A353BB608372817B5A598323650137C16CB01F02275F688262C57A3D -ADA0853699372E36A5E94EA76D7F577793EFF2693C13EDF5CAA5D85642408B3B -E12FE05B17CAE8A3F532EF0AEDFBCC352765C4B2DC50D7300721BB2D503152CE -A8BB4A5170E59C049F458666446E52CAFAFCCDDF01067869262E3BB799B06D1B -D44D76A284614D0D02D3A2BC46DCD9F629E9B825A3794802BEF28AF223A3EBEB -E824030274263BA0A9FD91FAA31C1E4A339DE586E37CCBEF60B5571A4831B438 -80C9E24B4D257683B785FF7256367EB2FAB5E79A4BB42901EF4FABB6D3762131 -8FBBBE115F69EFFBFCFE246D7714BE509BE8642954FC6D2DD2B0DEBE1AB9DF80 -DEF7DC1DC786247DE28B62D9630F2C451252D7B60622ED4F0185FC1F8B4BA312 -FF5127B7E2AB7756EA9B3054E9F354635E08267F1D3721061A7119B47B4EE5FD -45E883C73FF64BD9C0F57051D88D3F6F549F6E94E6F69F580B6B297DA0249681 -E02ED4F7B1B84E51F4ACA217D400DAF584A1D0C0997BBE90279B27C97C584964 -482E961EC31C364324011DF04FC850083D6FE0180E31FF62ED4EB02228FB69D1 -2894BCAF37AD240FE874AB293A55EF453E4C0744D2AAA5C5F2910BC281E3D8EF -E706D713A8E074B77EC010AA500506DC82F105C0613FD4E35F06D7C0FEF73B7F -B1F74490EAC3AB9A4F61BA95B02A714987623952E754B225B3E21A18BDE46B20 -0D06B7F1751F9BFF9B30D6C4C20622BA7AF0C43017447BA5630F28A6B2126EC9 -DB901B662FDF6C1A6C8A81AEBC1504531FF542017FF3D54327FA743B21C9021F -36DB6FC504221B93F838C3D7D5731E892F75DF1FFEC5344E867B174052CEDF30 -BE1372B054E3A3A346CC67DE6E608BFFD09BC8B9B8F881C020D74BCA542B85F6 -41E7282E7AA1FB5CFBF4A60530572FBF36F156F6A31F9AE6D026A033D6D78ED6 -441463B179BBEAEDF9ABD9BAFE7CA0CC98B342DB21D0A902F21C5F505DA85FFF -174D2A13DDA547936B84DD7692DC1EEBE9CD9CDAD94E7A0485F17D82B65E3954 -53565E1D6440C3F327E58864AF3284563C013FA1AD1EDED9A38E6283DFF88C5B -E552D23477B453C25E9D9680ED01A27D9F502293D3A40A0BF1E738BDA066314F -771D56EFAB5D2C7EDD5BABEC11C79465A972D8436BB8D5D25CF62CDC741903FF -42757B15F41DBAA2B8BB6958FCAAE52C2DE8B2D5F3B26391B7619F25580934A9 -E7ED5375476EF1DF4764FFF07BAAEF3C0D4DED9CA0E7AC9A82AAB196CDC7AA04 -CFE43427BA049BC17FB567E836DF6E0EC22D7A58D6BB428BF42814C0B071F652 -16EBC9D7FEECCA6DAA2217AAF7564F55FD51261A8E33AE11585A0CED9FAA0890 -5BB9F2EB0504A2F800940FF58FE7F620B719BDD197C65418AAE51310BF8EA272 -4F2C6F732C9F16DE4906291305FC250EEC2F143038F5B919BD79CF0420EAE0BD -E30AB5E9DF473BEC21AD9CD2E78FD2074C435B1B50B7030DFB9B8F2AAA94A19A -BBE3874753A1BAD35782CA78AFF1B7E38AF95674DEEB8464029E146AD48C3319 -0AB788299303914F00FDCE64076CB051C5C0548CDCD55F5E131E02F07A94F146 -0CBA373C6F0FEEF8716D6CDAAB4ACA93B865DB7CC050C3C11A1D1DCCE06F5766 -3E7892BEAF800D4282448477DA3CDE8940A61A561F720960031D0CBB4BA6DB83 -5E098AD2DD4D6C25CF4FFDD5D3E13ED47EE3E7736757C49D650CAE11BF5CF5CC -741EE453447EF37174294A56D503B6551B85C67FDFEF4D2932F8181928713793 -88C22E9036B61F4035DB35544B09D1AE8161AF16A5CA02EBFA117430B2BD5BFA -D7750BDC3ACDB2B466A0FB813820FF6C560650DE37527E4BE4A12E1F6957FDBF -0AC8C8AF75982D4739C752F00E5A23379C572DE45C396A2E657E06E6E04C56FE -4C61BEB991479C1584C31778F604BB8222AA77C7C0F9160ECBCAA3449AF2ED8F -856A66F1039B8B67AB8DFDC4A76BE89F30FC78CB48880B116A602C309BA0D67A -14CF4BC34D81AED5D28A204558443DE85FFA073992162DE80B9F389E6E49B0C7 -231EE73075A3161B7E9A0D7591C96EF8B297935C3D9DEC1F9D7CF2DD6EEC2FF8 -54438D57DE87CEFC9499CC06A39B20498E9FB17358333790E4B0159B8FA20B0B -9E29AE280757001669B4E33EABF675B94F362095CE6A43A1ECDB0E9C952B13EA -CD1AA7A6EF2323D14AA7DF03052F415CE0F712ED4166D40714520ACB06E4D56A -E4CE3E0E1C3C17CA1844AA0DCC2933DDB0C7798C2BFD71E9F520158DA3F8D2AC -D17EB82566E5FDD1075270136A2AC0183E490ABBEF3F94E1D6D59A81687F4FB1 -80C00A63891F0485BA87B5EB29B41070785A8A6EFED488064A4B76DF948465BE -EB0656C214E842EE09DC7E14B9604E5A050394571DC09C7AE76DE6B184A01DE4 -4E24AABE28C1E1B7CF56B3279976224B16C342D130D2A7265315A52BE20BB652 -4DC16E8CD1FC19FC77C94D864385D5AFE19114297AD7E9D74DF5528CC892F1E7 -A57AB51BFD096E2C8F4B30CCE769A0C375AC95F5E8F4217ECD10F65CE78BDEA1 -F157399AFC01B0E3305FCD9E4DD24D51314C0A8F07A10574DE0B62CC86551BB5 -E4CDE434EB44785CBECBD233E81AF34678AECA3912D73AC18D34E9331689E686 -BC2C087B8C091E6CBE80E514E6E0B309E763832EF6A8D653DFF1C988C86C8AC7 -9CECC6FF0F0CCD586FEC597D333C79941FF24B26895FDAE930C76C3DB747087D -16979EB594DE9FF9443ADC35EFE957E5ADCF1F26687E2FDF81D7A205BD7F5A00 -5FFC16CF7ADA9C4228CF55AD85FDB8898C34501F9CCE90E3BC27D13581C0F553 -20628A3E31056757A13134C0E89907CDED524E832DCDE52FB4E0DBFB10E6BFDA -863DF6751767B63BF33166E17070D83E94791D4639CE3AD4B41BF09B41BA96DE -FE756072626D1835234D7B831ACFB832C80244AEB0AB1427C2F3E97B76BBBD67 -9257C8D3864E135B16D933B8DCC2B25D9019F2C5CD0AB7343D39BC3B4E14A957 -123D6F7A6D1BB2B4BC74866666C70A891A5E3AB15941D899F3C5BEC36C0F85E1 -F86F0DC872E66C9B323954C9D7B6F0AA25ABB694D39D5361B2874B193FE93453 -88DE1ADEBB5904C51DE77F623CECA4FC2F14C79AA521E45019D491EADEC7369C -8B569CC8F94553D64BF9D63E0CBCDBF8EA4EA95F951280F6482D36A5D84995F1 -7D6D5C5C853E1D8B9E44EDD50395B56A25D0A256D8046F1AC3D575C2591BFCBB -141C4CFC0433A5DA4BF1125FB31B4E465D67EFED81236FA8AFD8F1F1C8DFB0EB -B3711D9FA6660DAC7DB14A4CB99381BF1FC1F033525B61322513681E4B6DF2B8 -79BD0057573347EECB82EA0144DABB181D9DB4169E934FD7AE90682839FBB17D -20351F9485C49DE403EEA86E791A381FF672442A6600864AB854A23497C928F3 -9DA080BB70DBEDC5F97E7660D4FEFD49790C6AB4512EF0942A095927327BE557 -000723101B1936D7CAD4CEDB9BBA459C29A82878A02EB2B250F486B9E57AFAC9 -611551C0DC60E6654BB5ED253D7D18C386D2E5899ADF6FE07D2632889A2BEF0A -B7E16E04B97E8F290AE461B6A59C194211DBE87FEDF37800CE2EDA3108D9E169 -F1CF3DBE028C2AFAF04094C696AEC52D74BB6747FB3916166D211C8690C478F3 -C1997DBC5EC873170CF61AD6BDD708DE2C1BB428E230C1111AEDDB0A89934966 -A446BB8D7A7646A316071469F314E5499793BF004473DF012EDACF0E3B872C30 -05AE996DE5B7064CB88EA8ACD37B3EB7A3E2D533EFFF9834009FE92329EF76B7 -1BBC9E32659888D5520D5D3B0D7498AC89DE03B975B0BBFA621B34805BA4D999 -ED8BF2877E08E69971D08922D1A7AC0B61FE258BB33509B4780A2163EBA6A39E -644E96E348B00B13A6818EDDB568F6F70D9E530B43F6EC1BCB801D0F2E3EFFC0 -F4F36E528A2AC4C9A961BE96E6CFEDE623DBFC2AEF1D7C5DB9243CFEA4CFD360 -3D9554F129AF3905AB774C6F335A17F6B15A40BE518324C5F7232530C1430372 -E170BB98B7882DCFBBD415E4B826575650418BEB0D6689C86F2DB01A44EA9D1A -748AC9B5C71113BABF43E556F578D4CD562A711FF8CFAE0DB27A6F7522818A5C -CCDAFF81F25BA563A43DC10D995FD0A8CC2C02FBDE62ABDC2A8F48046ADE94A5 -EF141B54D71F0586D2DBA09CF06295CF354F1896B6218326FEAE271BBD922C0C -2A065C71B9CBBFF433C6D32E1191EDC9D68CEA7E9466BC398B444E39CAA07879 -43FA87AF9DB2D129966EAC73400558EE4287A1DD4AC364CC4080803673025078 -028452B925CD6951B3807803804A88345426BD6E59FB1DDF4CB843710BA96300 -18D336294A6BC4E45BAAB2DE0D9A778D88A17FF2588F7AF8B03B5C6BBA17A89E -8B929F83F9B3463F5592A8E710B677C0142FAE8F892CE79FC857A51A8D59DE97 -413DBE7D67C82C0F4E3EF5E26FE61DB3346CCAF36A307E5474B3FE81FA20A925 -58AE61EF420F47B8CC372EE0333A40CCE66817530B3235D9A936FDE388A76AC3 -30EC98D33C16E4BF9188702D5EBCE85192B39811148B08E7E630CCEA8559790E -B89577821CD6428F3FB6F680CA00FE07F1F06C94D5419E2E54AF8A194DA645FD -FE45207B2819C5F178F08E3A08C672AD5C8B3FD0D98DF452A7C633F5B87A0D01 -6B3AC6E85BDE9BAC172EA888A5C86FAF2D4731EC390DE13AD65AF950951B0B1B -3E93836F683BC12AA1F1B6DC371A7E66F0604A43503562B63DF3F45B493A6ED9 -5D9BE9B0B8F5F7BEE60756CF79BBE7A47028CACFEAB637015E4E00BE7F2C9C1F -B3EEB5AC0C9AE3054EED9CCD146B12B56FE435AAB2D92FA4404E44D2E8EACBB9 -C1E21C4DF10F316BAE384E31175CE82C195A79F9B3A3B74123E6A2DAAF54045A -7425E9038AE77B9D1E5AB33F8AAF91D314623BE41A21F1D5F8206AD4A32E5237 -519A42641F18408BEBB6CAC319A74B941D8D3D728ED8D8A0BB3515323315CA1F -23295FB8973BFD3A9D8E66A0FAC8CE431E8E377697F5CD56CB80CC88AF851C60 -DA9DE2711B63B86857AD083838F3936A9E881D96FB03DCEE804C3D6D0CB3AB3C -DB03743E634D80F16E36237BFC44E40C560943924DD7516BD43AC60055C9D7F5 -50484CCB471E014E49C923200CD10390CE92A5B200D5C86ABBCBD6A2C57ED393 -81C45736399B9EAF73B052B5543F8433622DB6C0D36CDF714DC88AB68009BCB4 -2C9219ED28C4ACE9B1ACDA70C35FC07D71C381BCF27A436CC278BE98E28F94D3 -6A41910C08A2AC5E389ADCA56DB69661497EB1ADE463AACC817BDDAB170E578F -8051D01C889ED8F24BA57A7C217DCE931C115321737991FFD542F2E80EC7C91A -1EB513844C9738ED7BC1A280D0AE34D03A77B7AA84CD78DA561B1AAD225F8921 -A3F0374CCA3883CF1CE01B4F993816C2E713D20AC4EB63D3EDAAC9C0FE3D7AA6 -93FAE755A8FC98C9CA35325DDEC153313E2567FC9FDE6400AD44AE31B73010D2 -768A7D2B5D48969ECA35BE603D54FF0CB95CEF1BA064E71CEC8D4D264337F91C -BCB94CE6DCDF2B05E1CD21EA9EC218FDDCD99A461FB5C1076D9B800A86014064 -AA534A2AF51264E34BA27AA23B8314C97230B40C3D05A82A59B19624C9335D39 -EDBE2F2AE3E504ACF475AED646D079C86AB811262E9932D158388AD5A36FA7FD -6B35ECFFA820632720C56761535E504EC4BAE46B5A070FA29816A3B0BF298BD5 -833007A6BAC43BF4971553A69196A166630A96474C338759A03E7E89DA5D2CA4 -98848D52AA5F996ADA1799C4630D27255FC8FA440EE1D6F5886A7540A383167C -C88140B9B3EC4A2927C8442FE853D54EF8C5B076271C7245D979E515C58BDC1F -B927A7ECDADF60CC9353489290155DCF4EA4BD49D8FAA20AE573C1CEA1EEFB4E -2304A568B84CF539A9F01B9566D25A65EBB942AC4E6CDAEC9398D2833C4A3D60 -FD1AED5B25BF4DBBD34D8AF23C0CCB0C4C3A4C56D825689D816F670516D08E6F -788DF52162C2A52A3AA85688E9867E35302BC9323A94881D6FE922928DC71FD2 -ADD02130A509D5E0933BCB3B59849EB0D8B09AB24C7176BBB42479FD8D8581D3 -BE7CE3FA1B6749D977148AF2C06711861A46B57339D8B3D241E300D87E3241AB -1B0AE5918B4F1545BD096C05F50E5C5C6BD8C644BA96940C5DE5EBA2FA47D172 -4F19C22D36B1E2F90D568DA2CDBE55BEFC76257FD6D4D0B2FF4D7E16EED9620B -BF5B043689C355CCC2ED4401C7ADABC3F0370EB1ADE5082581789102D0ED304B -270EFEB8E109CF0F09D1B524C2EB4249820DF8F29FC128F48704596F119766DE -4A790984CA3D87F680CB931EA21666186B7B9FAA695176C83E970A6918EC8292 -41BF38DD48D7C8B449E0C925E2B932D09B9509163C9008812FBFAC8A72E97976 -A78369E181799E338BED92B6A8B03C3B8CABFA98B7DF98E34FE324C52251E0F2 -AAAF32D038C855994C4F45B57DBA59028B1AE0A5BF522C3556875DD84936C7A9 -38B8FD6CCD7250E321C884A6AD0CEB7505D378F96A3F7F76D05D154758605715 -20086DE04410EB8CAFA719879A2DED0E52018A6D9EA748AF20E2C7DF717603AD -09EBE3B8AA7B55131315B98AA4FDD2F83755249EB7E3E7E438FF59C008ED7BD8 -B6825B78B8D441F223B66A797488C24C549DCC355D90964847B598FE681A1986 -F3AAB186EB4A7F340E75CBE6F4B2F0D072696BABBB4617C84E016ED6C33B3EBF -B1EDD2191641AC285CF5E49A8BBEB678547A30EE0DAFCED16F68B2FEFB93342C -1825FE06E871AC15ABCEB0E263C83EB19AFAB1BBF4F38CE080984C9AA22EB892 -4E2A7A8B42B08D51D6C55CBE511A7BCC34674F8947A1512B03BA9A7FCB517702 -81C5D37A5F4A3A9419B0409A75DF568C0FD33A0D7F3F4FBB41E0192876F32186 -B22FD853B181570C16A5B614428FC38F54B7E3779BEEE365360358B63955F774 -38145829FD05B48BE957FA98C435573B918E2883982CAAFF408D5DB3AE15BFCE -7038796F5F0F1E98314C578497C1151AA044212C90D00FE6FD43EE858D362BC2 -18E962635CBC13FC5CA1E3D4C5125C97B37A1F5322C2E4463F7EB92713544EB1 -0D06FE4D23BDE0820440F126F67D4E305C5793D7B3B0C04C1612702FBBC3EDEE -B82F047462AB0E38CB7933FB7A2B939F43976832C7FB90507AD55C5DB6711BB6 -01622290982CD086D6A42FD506A460E7C1DB7CFE3BC9E4307AAD5EC874F5A517 -DE217DC82BE40CFCFDDC44787F71D921C7FDA4679DEC9DACBF17A3142ABF5DCD -F9E640BCFC011B9CB38E0093AA5432E3D468FAF915DDFE924076DA6FE19A81D1 -158F7E756C483015DDEF6F2AF2FE5BC82EFFCA4B4E6CAF441154B6AEC5AF4B5D -C61B919957D886979D0CB320F23AE98258C4FD861FA69BA8FD39E4E8C6171CB9 -D4D1095C65BD5B653B91C5A15DCD3096BD715216456114260530E483ECA9A8CA -F587FA9AD60FF1DDBBAE43BB0BAC1C39367DA374182C74F2937B1C6FD1B7BEDE -95DF3A267C40C160F845E3E98421E2EBCFFB030A26BD0D5750B05FAA8C5A72CA -448A3213463DD4316768C4DE0AFA9B47DC2D9D10C52B9FC14AA5ACA08B83AA8F -09EAD993ECAAA2D31B66B165A0EA8A204B03EEFE675FA0085EDA5FBBEAEF8690 -54643C7B2A345DA3E366AE0B7A7969471AE1384E868238A95158631F86133C63 -B4A70244B216403AEE0600F77D3142CE0BBED4FA9A4BF6D956A86F180606B9C9 -025F7B30E29634708280E7BC03A0FA51BB17BE5CB94D257F1DB542F13E0970CE -42DFFB1307E6F5F7EBCD9292D03850748AB0D22D7F5314E3654D5EFCADBF68FC -751559760FDEF4F078E57F2CCBC3F99F64681648B38E9F26E5B0BF98BD0E7DD5 -6CB55D07A202A2C9A2817E4240E4B00DC0E60C26D4338C7E7C2907FF1CD34127 -5E048B5F55AD11F69843856459750DEA7D7EF76DB9A50F487F6BA4788F3680AF -29621BDA707B3C138F9ABE2F5B7E5D7C3119A5F535FE575E82F65E97AE078020 -36FD51A751CDDB98147074CD6481A96145FCF656DE28FC3A00573FBE06FC429F -E06F918AB3AA095DD3B9DBCDBEBDE69DB459600C46B50D49A563DDCE26A1A5AC -504E07BBC2A48D858B51F51B7A06D56695F8BAFC0518AD8B21E7DCF5C2047EB9 -FC8995D139FB37794ABD9A7387DAC9FD9F2F3E80578928E3F1AB70A50F16591A -034E29CD0C6AC1BD531CFF53478828A1F9A0BE3DFFEEEFAA0C7EF53750427ACE -2BC4A5591FCFF121A9A62CA0EB1069ADB7E51CFFDC8902361575E0E71700DC8C -86B43E1D697A8847C210C5FBB66E2B4E306AF90E0CB97D7FA008F76B1E6B489A -4CABB68EDBB9AFF604E3B355730436FC1A25F72C1FC4DCF6B1C40EA52D3AD46C -BB47EE3098E12CB98015F18B45AF2DF2712CD1187661F4EA24106FA51DD90262 -4FE3EB0D95B3EA446502A33091F2004D1C8F001DBAA7AE9FCAC74B0704D04902 -F832B25C7FBB9304D834A18F22259B81A0C400FE9CC0D811E58F8C3E1D107129 -D1CA233FD481FC6C03BAE7D00AAB2AAED4CEC3A7C8ECB087DF77065D1328A4EB -912CA8AFE5C7DEF3C5A3F42E40E6E60FB241F3FB6A11B5ACF4E6005471881DE6 -156BAE8ED4C75CE8FAC9C3A9B3DA52B07F09C28FF67BAF5767EAF202B3D5FDB8 -1EFAA98B59BF281BCFD45CDEC7707ED4167491F716322CB08248A65BED4FF628 -44AE351D9657BD03E41625E2D855D06444D441CF01330EF8FEEA0D42E0A054B9 -A05A5ADB518607299CECE64A59D52B2902DAB10F37A9F6DA24D95619860A69DE -D9915F414A8B63F8931099AC051C8671F6891F2563FBF902D30734C23E647D7B -A3FBAF4CEFA1F860B1EA1F2633E0E77665767CCB3332C311B8798E35557D3751 -919B770BD244FAC769980699F76C8E1B2D5BC85CC1DFE11017F0FD3878C60F4D -5A33D97AFB822CE4CF8BB50E0B89D73560D05A9053053011E49084204D551707 -2D4356FE5ACE352BDF99638AA07603979AF946D33A96266D7646B724994305AA -C231BCBF8B6D80A47464C242960127160C70E49121A04E986B4845402326C24A -1D5394D26028FE87EB6A6374CB0D0242212E6F7D939487220BD6347FBDB68F34 -415C7438F92D016F3B1EA7429A18B31FA26FCD33B7E60255522272740E31E5A7 -EBFD72F9FE0B6D85C50D9B868E1052FB2197A68EF52B4E59D8439286C96E832F -E01E2DA3EBF151FBABE3D39581D564BF8554C9FA2F3303BD5D0EEE6B2A739838 -37E67D38EBCDBDA0E5A784F4A7C165CB6ABBC00286AE34433766C3FFC6574B3B -BE4B8D36DE246BAB3FA365A33697AB07DEFA881A347470C89951B92D2D820487 -8A6935CFD404E696C61B0BE3D16FB91D5316DED8A003FE55AAD565FBBA8D5928 -D973BA86AF7B9F1BE4C5F157053504D6695DEEE925FA8041E3F76CA7A3C37B3A -B95C181C32E1466EC738C817369C6DB8364920C6F3FBA3BEE10E87B1AF334043 -200A789BD86697F54B344F11D528620B602AD2840C4755B32C4869DDB2DFBBC1 -F6863C0A4FB43835FA8620A2387E58E9CC430FC75162992E6FFB30A72B7686BA -3392399A5F79492531EA995BC1BAD1344E5D1AA70C11E6 +57BDBD4C4FA2979D6344AC3198440DB1709FAF1D9DBD7EF56D6161464803216E +9866C68434A3533C4372DB3C1CFA11ED5321C3F4CE7CF78E392506AAF7257AFC +7C9AD27EB8EB637A93384B54EAC3BD084571DDF97EB5E82C643FAC667BC3DD3F +D981A9E0DDB7320B07F23CCFFC4D74C034EC6C36DD66D907A4D34CB94409D362 +04EC03D1FB2A58E607C6ED3FDE67E97D9446876F6C685938EAC48CFE4A228E83 +FF5AEB1A4FE7EC29B33D17293570D43B501DA206F7CB0C5AF321C58E21F739B3 +49C19AEA6529CC550471E98E84DADA143F571A340759AC0809A695A56EBE8BF7 +6074197773630952FC57B9A3EE95B0E63CC4474A6ADB4D9E7FDD3B2B35294CC9 +D9F6B1C2786D00FD841BA8007988D6B4DA71736F63B1BA028230C46B0AD6A6AC +8126FAA43863ADCE0DF29E8B4C9EF15CF7D80AF346C45A9C347273FBE528E1D5 +389D396B339BD8129B462513B063D931CCDF8F346959483BAB970A4428B9EFBB +0773F9B2DFA2D6566AA2963DA654DC21F8F11EE928A083406353DEF3829EA553 +EB6EB0DAD22A4245AC88B5C509DF6C290D93AAE1E5BE9ED6BDA7D04AB0B0998C +A1264CE0025B1B2E2463A5CDC5CF0F60AA49AAD32391A5F97E27115223C6D1B8 +CA9346C5E650DB86749EE83275610023D41A47D0E5425E74D16A6EB98EC38C6E +00DFCE06B41D2FEAA761F5102718086A15E02717309F7D3B6140293E4B1A46D8 +6E8FEBBBAD104DFD4DE26B87E61A3C0043AC2C2DA283E1167D0E07DD24C80C94 +CBDDC86A09F86E651BAF3E059217118A0408612BAE85E4253C83E3AA5066CC08 +7E6528CCBDBDB5A63297B0BA85E9753B1C968783835EC4006D89F51C3E7D5DD3 +31C9CBC83D175E7832A643AA617DC3B38D8BDC98B7E806BA0F224E8AB73100C8 +A7ACE961DF33A8D97D6F86D5321B57EB2055525ABC17B676585E0DF57FD4E591 +1E6E9C8FB7991EFD37827EF2620B4BC0FDE501354F8ABD9997B508EA7731FFB3 +305944D9A5D4241F0A617F28587E7AE09F73C60B4D1FA1C37CB23B10A8E3FBAD +A2E067B24AE9AC5715F62BD011EF14B6DEA21DA0F2E8BD27C918683CD1484950 +2C5DF9BEEE20A2F79E60B803E8E3D47DCB19F8F24AA44524361B5A8DE4017ED1 +0A04EE08C9E9724268FDF318A6D037F8344FB9DD23441CF3ADBE7EE059E00D4F +B093E7216014B26A490F3779DC5E0D60635537BC8B0B681A20BC3106D4904947 +B6E8F68EC6B10B0B8D1304273BAE5D764FCB8A1C33CB55CA860258773A3C4A67 +794668D72813A662BA507A1EDB1316165E5148822ADAF61F31C8B4788D720A8B +6437E764CCCDDFB1206E7B84AF01BFCA1A695B75D96C47DE7C62670DF0FF4C29 +D0340782B68BFB6CE59C43F54C83C645138BD08492A5D8DA321703B4FDBE8313 +A4C6A13B04618755B5DA2C506CA059B87DF17085F1181FE5A23359C2EC1B27CA +E60567F112BAF14E9DAE8B749D28BF8263866E9019A963884A2DBF7F1F0B4A4E +B7C7A0E084F4A8F76EF5B001E3052DF0CF80C56DD85057073E7A1C1FE182A81C +B72098679C11A375F715270D5D834E94EA4F222F7D3DBAB1AB1AF1EAB16E7675 +42C5985A38613C54FF89DAD80417B054A826D5B6F47CC25FE6C5E831447674F6 +E7D0637D9E729D1F288075BAD89588DF7AEC9EFAB07A2B73D8245A4990A7DD94 +11A1D63F6E1F9934A807BE37EC1A897EFBA4DF6998C910DD75658BF6F133196F +438C818B549AC11198008DEF1548AA8DB6CBBC8980C96513E790F19CC3A3C151 +1B12A9B524F6026F3551632A3BA2C9FF376AEFA6BAE9D99A990D6B5714C06D3D +8F68CA21B985E93B0FCDCFB8A39F8DF7B996310B2C1C32FAE1189D6826363B69 +AE6B1B7231D8545A0863B20340CDD552B304B98236927CCBA7BABDE112C25380 +2D08885E8AD17C915908BBC9786D595A0C33A4E7EC1EB66825AE036892DFCB32 +F0576B232F99D99AF3E45D1F26FA0DAB711852AAE2523C6795478BA47E4883FC +92A1223B740DF537FFCAEA617CE3E01DB8518D1B4F60633820F0583187D99EA5 +72E4CECAC883823E5F7EFB04E211AB3D3362FE18F9EBC87470E3C62AB782B5AD +518B69458817EC3A7B8B026E624AE303D18E9E18768F3D3CC978DA4DA6926738 +678E2F96F751AC5F55FA5069B815AF3E06071937F0D013EB7791E718899D92E0 +F13260F6A4F8D6B0BA5405523919E543AE935DD6E1121D4F2DB2C46224CB23BC +39D8537A61DE02008507809DC8906549846FE92F4A835E2217E45CB52E41C696 +98171C24A8F4EF4539F8FBD56355DC995E6E2033E6CC70686CBFA59C19E29A08 +3FB507DB7262FF4520CC3B9194EF5BEAD93EDD5CBBF775A894EEC324676DCF96 +24AEB7824D5B0A506A5838F4E8651795D1611577E86A55393644B2A13E5B075A +FDB70F8619D12A0554476531F69011ACBEE38895BB29439BFB469759E13B9595 +AD5712F767893E2DA66E73C9A88BF9C131C2E1494B2BD04697CD7655966A2D7F +4591E4FE21C817D5337856B6A17F4C2AB207CE750692DB20A25A13EDE487B3BC +0AB2A5C821DB76C4E9100B0D7C4AAF737495DF622216064C01698126F8F237B6 +6016C1FCA6322E7733F0CA0EB83459B143C970CC26EFB1FBA673DE3043FE2489 +2B06DF11D30E1984F7B57DE00892890F36C445E0004DD0492D0BFC40D8DFA970 +4C18FE162CDA7DD31D69714E55E455399C3DEDE5A9A23151ACE7F23D34E70F98 +0F1AF32C7984263F920CDAED21D94CF9DDD72E8EA7AAA7EDDE944F167E318A43 +FAEAC3F77026C771C81017AB544FC6F81009D861402817ACA88FA41C36798168 +29E7204C78F0A89166C1F27B1151988825CB4330693F33B30E0B006352966677 +7FB5E5D522018FA4C7AEB791E84315D67D114481E4427F0D219BDDE0E10AC009 +677247624ACA604F41D4074B24DE54B57E9FBCFD202A40EDB497690935AFDE21 +0FAC4108BCEB82440D51DD0A0D0D61E3F21204E61AC15BD51061DD72EC27A4F4 +7EB24BB58BD6B081C68645E555F9EE3F5B71615BC98F03CE9F059BDE71F3C3B8 +C0283919A815DEFC70CD1C8C450C6E9CF1001371EEB6651EAE42C1848C0F271D +0466DFB548B0DBAE1A0F79CC7F9CF5D113CAFA86A04048E0F6A0F6A0E0D42E29 +866D8AF62A565F302609905808DD338460BF75A75DDDDE4B38A569149B2EB856 +8AC05433CE5DF29CB9F653BAC71270C8BBFDDC4794FBBBD407134C1A2F4D22F3 +3D18EC493CAC8BC6EF887B78762B179B038D83C1C96A8F6D2C507AC5DF3E3003 +22E63A4F67DC02E2D59A44E5DFE529ACCE3A4CEE2567FBB6FD1CA178DBD1399D +2CE138F853D68514F186EAAD924D9952D551504D7C95449248C979181BA3DF5A +8925BCB229E63DA811716D82B56365629960DE392076FE533516CCE02E341137 +EC32EECBC9ECACF92B03BAA83859FBA0584EEA52B3904B69C1ACD8B56CD320B2 +3DEC1D1DA1B66741F1C32CB8F4DA6FC6C8C64C5C3D0A0BCED43C5CB88E5E2B84 +6C5E062278DF5F323E2BB59CBD5B1F41F43BB3C7AD92A69B048758C90E0D3A52 +6FB41FA9EB8BFC592793F45FDD2157DC92B4A910312DC2067C6C5179BC170DC2 +1E445045E7E5720410DB949BF761C9EA5830D2C474FAA17431B0B69D504C8F49 +52911906240AA7A6E649577251FBA1B694F34F6D382E8FDA76708690341646BB +E4C8FC130D1EB7214C56A203983C0AAE490726E24D6CC83F06E29E117DDED606 +5ECDBDED5D5DF2F48F642A19F9E59B3A0C39D11050DC4895956B4ED5F71CB7CD +806D50CD68C66C797BBC187FD3313474361A2EC0C30B98A7EAC314BE1049D354 +72F2C754771C49A3B8DE3BDD7D332D5FF160D2C128C7B4524B3C2191372AAA1A +0A6BA0D4B8D440B4CB17098A59622AA62423C4F7CDCB2DCD45F7553E61FBD272 +EB86A952B821C8A360C531B77C49CE62BD37550DC26DBC8F1060D6710AED5646 +FB43A9845023ECE6444B084AC06E83393370C505874C1260117CFAECC1AEB626 +B9076582EB7F4BF3F5938AA89A3903E8FC147D4E3B89B06D7B51672391BB7F98 +003B1AF7980E84302BB8ED67B4456B6F45BD1F2155ECD5B60C9D8633D2BBA367 +2F503192AD0C9F3A204AA41B8AE03DD9D8A8E7FEAAA29F0AE5F18892E64A050F +A44185D62296B9CADDBDAF78E769051D212D294B14265D37FD248C2F8370BACA +D33E7785D00C79714D6F4C11D512033798826B3B711B7BF306133C9F536E18B0 +AC2169060D5B42FE9D70FE52C3CF104F2E28B872AADCB33422A5106EEDC941DC +29FEE0EC5020582C0784556A74E3697EC5BBBFE08B7E878C06A13660F164C740 +2B6E26475AB9E4944EDBA4169A9D36B43D2D88948B53B1B9C8ACB8CE7880000B +4226719FB522758866ED95E18B0965FA0BB633FBB79D67F12DC20AF71FEF1A5C +7C895EA14CD857C5C79B5CD31B7A831905E7178E26657AA3026FB65E2FC0E201 +5489E6B9B60F361CE78514DA8A89FC3CC7C434EF6AA0E60C215DA385A8910697 +4C1B9562FC0016794C2A124E27FCA078404500FB9B3475B7A599F87CE00DD4D2 +745292C279F8907DD01EE660B88B41AC46524297065681BD24AA1979E00978D2 +7C33725AD1953F5BA713C8ABE20D350B00929A29FC28C5081D9745773108F37B +D7064CF53AC0788B5F3445808E1A7FFA9064D1614EEC7D193F137D8BC89D4E4D +7224D2C322B0C35A641ECF98048CF8A750C6CFB4E1EED164C354EF8DEFD02829 +0F91E7C1B1F3E98F9EF0C84FFE10197F116278A5EE0330DD552329B1177CC4F7 +C6A79F8D96C4392F22815A222BE811B4B81FF99E729F2D74BB86E59144C42092 +B2EC7CD29E91788DFFFEB6FC9E777B7638C3CFD777DCCDDF2EE14388482D89EA +9413310C2834290131D8154DA17FD72260D811DE1C82B9761BD0FE86C799A163 +99AE61D5A271B610410346F4B9894AD72E9E6F6C63678C1FD1706B118BA4C60E +69236F15FF65459E08D6942250D0A568DA1CCA3F85A0924C4CAEA475467D5D54 +B674EABB35604C4337382F8FB16194681FA11EC85677E57DCFCE6B7CF780FBE6 +1E8C9FACA71FAF605C03FA5880514AAA760C91C85F2B2190BEC2EAEA4E46EA02 +5172F34E607A0846126675E96859B1C657DCCDBB3A64CD8315BA8C88E833D217 +D352BF66F5FA87940EE2A1777C9E1E867D8D2DCB33B242C491763629311B1E84 +38EF9B80554E5F8DA022BE06F57838FB5327592B97853E6DA510BB5FD2142DF8 +E602A1635AA59CAEE7FAE408B381CC505ED188354A7D56707B3B5B7F2A83DE3D +9D3C34B160DE3BBB0602C0102F8BF5D17D739F2FAD17C5E403A0C6E9D3EBB864 +39A015CBE7ADADE67C60414A78DC6856AD0EA0998F51352485E48B1539F42531 +2E10B6E3FB27E60D445C9755DEF5BFF503573B06FE971C769B0026A866389FD6 +6FB25812D7C06D5799BC6A271F1F9B0FB41C0E3F466EB109C8D0DCE23D3D2B6B +3566329ECE6951E6C5AF424C7C7ED0C1F3B1BB7B212BF4A5FC7859465FFB90BB +57BA658CD542A24049F2E6897A812AADE9B1642AA573B6AB80277DEC2A869787 +070B4F72EF11D1DE9C79A34858997DB1A7789D7590FEEAC1E6150E01BACE5334 +7CFB81CCC5D42E3A395807AC19177AC8667B9C71AC0CA9D048989DE54E6BE675 +BAF3F13BC331E3AF75F6AB2B14E234CFC3EC303A22AA64A2A3B21DD02996460A +0BBB2431B58D0667D8EAA51D3E03C27C1CD779FB914D02BEE1E544EC44A0A4AD +936713AB7729B634FE216181F4D5508B680893A2F28EA451EF35701091195A25 +2D5C727A723D589EAB2DB1AA45B271FC9AE17C0B387C627510EE80DB03FE64AD +A453C9CAEBAB4BDF449FE9A0E00911C10ECDD8A9CE2FF49BB9FD2F92660B31C5 +9811ACC24162DBE7992660A880B5493D03F4B7B0FC512B22A33A1E3AB3BABC0F +4B3648E710959103A0D5F6E6E9A86BF3F4EAC6BEF1AFAD3038AA48D0A38B4C90 +B0B7005D8D3725C8563FD71DAD5F59E7F14C2E2327BADD45EE4854E4790F8D3E +8F2CF554208DA4789A198489AA1D0FA3B358FB2E8245D6A6E2B449B9F91F2241 +E79504B052E33581DC98F440ABB4B48AFDDFF1939DC3F52EB07DB9FA636F5F7C +6A0076210981C77D0126260CE1D224519469AD53E5ECB0FF473F960463A8C353 +18033ADC1CECF34BE3D751F59EF711AF0B00188ADC2D215C2BEFD52B63E0478B +553B3BAFF351AF373F3C94B2C279A9E0964FA918719657D270B4DF14CEDF43C0 +230F467F10B3B814C7472E7B0301298E67F518DCAE3DD02F34661896828145AD +9CDF4D547747DCC70E1A43ED757B6FBA6BD2D2229F2EE00D5D6DCDDE1A5765C9 +532A98A6BA32238AD2767BFDCFD271F009B778D152DFFC5F7B3E93FB30B479D0 +95CB3DA664F7037FE20B286C7C21BD14D1C11537097674E4774AE403915DCD42 +4BF85C7A06F5C721CD92EFEE90DC0ECDF37F8C4723CAC2ECE44271954B67C721 +89634E05E351C4B3F360356B2C02727A46F2A0721CDC42D5FBAD1968DA46B729 +E72BE77930740652E4E56CE02DF5A881B61968166F07E36088B5451EB870C14A +D9A07E34EF0D7C92156DCEA851F625F933E61F36DA3320F7A4535289FAEC6883 +42955C50434FDB86A1830D48FFC598774D502584D6CC867FC50238EC24D2B58A +6CF0AF823822CEFC74F874B84658F4CD54370AFBCAEEBBE60AA457AA5DA1A06C +C8F92A48460E94E7CC3E28791F2885E28544FA5ACB0F4125DE6F8D532DDF420B +7283A6591659F5B56E61504B5322B4B1CC80A0463DCD00B6821F56446E43F029 +E56E69F8C28B3112EDA3AA5E69046FBA5E57ECF686979BE5B243819BC34CA308 +FE1258B6A1127E701593AE44C88715CF4D3547DC6C66E85F8C14494AF4F07F9F +22723D40A8D483B725246DF4757706783AF56C1A953DD68BC97285C5315CCD5A +4350D8742CF7FA13D1A46042ABFA25CC6120EDA9948D262FBB66055C464C14A0 +B8977B5BB2DAD142F46CFEB4A36B7EC51D55E728883F50672F3E1D4FFE41E5CF +30571C3EE09101C213AECAF90EE8698B740FA5717FF2198C005568E9DB201600 +833437B707AF68F52E9B68EFC36D73E9D4582AB0F135EA890D939FB1BE866144 +67CC07007B66C9CE3F7B204E75369E22D09B4F88E6DF4F7918A79AF5819C7A77 +3DDA23B3F1242BC2A61545E112255DFD97B86E859EA508CC77577BD9404AC9C6 +7A998CC511760C3CBFCD9F6F53A7B1F7B5EB6ECCC074A05E533A67FCA3CA63B0 +552D00C4D31149B29173A8667D9713756D64911540A9D4F3D071C90A76E8B9B4 +B0066037E9359AB21FF5855ED9E71BD1E9848D6A663694BE34FCC171305B2826 +BE177DDDC9B1B97BBC79E45EFC7E70FB11AF79699F373E700CE4D171086461DE +D8E061B240997646FFBD6D273FA9604861DBBF3A50DA307E28AE218C3D0818C1 +4331CF7C0F448650AD20A77AB23CC5F40C48CCD602D0B32D4C7CD7B4B607E262 +D07B5214069C6856D31F40B0D50A63B079D065F79C3ACFA853C2C8A3DC2572D0 +B5DD285BB0ADD7596FDED62DF7C68EFF979DB5E0182FD061DF55362EDE0B03CB +70A15526CBE98186701557FFD27556E64DF68EB38234AA13770C733477CE8A39 +0B65A272D1DB66EBA12234F1AD36E0F2B0289820CEDCBDD4CC852F53207BED97 +CB93E853456D631D7DC397ED5A6ADF59E8D04756921A319E8A85DEE2FD175D86 +A5094BFFE6FF5BA43715E2E2941741E63570CF3489C7DDF94AE79A0021F76384 +6E76CA3C1AC552EE4B66DFD560EBDA38EF5E93DDA803BD06E2EE8003E2276790 +896D51B88E4FA90061EE472BECF58A133B35920E47BBA565727DFBEF612ED98E +895C8936833C52C5703B5F79F58F4C3171F2071040881EEABBD9D4313F246856 +AFCCF15AA4A087A9483BD95C260BF5B59485B74E1E3E98F92505B0D27F46F832 +CD562D0649886F2CAD709585334B034F3C4B93692C0082EACFFBFF259ADAA6D1 +9F863393DC0C772B2A9230FDB5FF02E8F0B5C059DBAC8D8F75BE0B3650AFA3E4 +4292F1CF0A4AF45D9BD8856FF82D93AD77ECD217024A8F619A5B8667D286FA94 +587224B5CF48327FBA64FDEB58FEE11560EA78252F6F3E3520319090EDF0B565 +EECA2CB5FEAD5B42A95B19D4CF41BAC211CEE425FE833DC7F67146FA46AEEAFA +2AC315DD3D7017B652AB372D6941E9AE38D8BF6F48F5032CC938C7F8AAC3ADA8 +ABAEDC939E982B4C92C666CB24A5242D5504A788338BC5663222F502094EBEC4 +007B13BB67213B30783987029BF3458DD1714F59421AAAD0C298519EA2A4F4E5 +38703C5CFFD13C621EB988C6EDEE218B5D5315164FBF0C41F32B5A48E50FF7F4 +B60B005B69ACA39396DA5969BFD468B28BEA77413E80A3F7027A31A81FCAC929 +108189FD78D3D3B6B22529ACDC418F7D8050A4DA3275FD84E7F2822325CD1E5B +B0CD6685FA050D53B892CDD028FBE94BA9E2F1C61BD56DEFD7789C2BAAF164B4 +F8FBBF983001B91D0A667F94EE096CC9695C0F84B3BA9BCA6B50787EF1DDC483 +C5DEC8B12C00B19F9D1C680BBC3751E3F9C964F3302B4B9CECB9F6DBA34BEAA3 +CA2F39CC530488640FC1A7CC894E4AED03A08176F3AC15C3FA26FE85C9D9BAFB +9F4CC02255074CCB951B7E878D7AB997737417BC010499D7F91610D5E2A67AC6 +F8D95510738B83B43DFF22C451A3096F758616FF223882017663DA7AB0AA0D87 +4CE2C31640489CB32EA91176D5C39531746330ADC7925AAEB086075BBFD5E9E2 +4D8967A73090B20310432A8D7FB3D0A756F6D73B36020F040E710792561FA99E +3307619D6B65F1AE55F0B053FA8DE24D54619AA5ED9F0C1A7157AD8B9D97A142 +386DB15AC36D6CCF453C2EFA6A4615935D388250A11B296307A45B90D7E76BDA +609198C8FA31C6E5CE1A1AEDD544CBE2D7C6FCEF1CA63BA2D57D2744578956FE +D463214CEE5C154966E10F0A64E25DF25BE8538F9CDF5D480BD8004082070F38 +C88473561C641E815A6D94820D0CDE56829F0AAE4BE1315D360DEB4CB25B4FBF +791999D4FA7206256B177D8450D50A32A7F806D89471EE96CC7E85356D2C1E35 +288B7FBC0036792A4E7DE77DEB347F2168B3BD9AFD31177AB5E4990957869944 +243087BC9F048C218368BD6C738832CEC99D7F31159A33026442ED4D27771E12 +BF02554203415B1877941037C72CB762B51471C79365C018D506AAD55464A248 +7EB6E55D9B0527CAC8A915BA84F4DAE556B427F48E3120142AED5705789C2708 +AE94395B1F7B875EFF7F19B9AB8AF28737FC304E32C8633625DAE96D1D732E29 +59879BACFBB15ABFE8A6EE1150AEB29713B428FFAFB619206D71FC382B1215EE +759318C5CFEA9C0E5E8E3B7F47DE607B6F93C19AF28467568A3F373AEDC78AC0 +CE99A407D97154FD68220CA66F7D3EA77B323A7015FA9D9E8AC5927D0E7F4A4F +1FC871BFA999EC749E09FE2AEB8220705B0AC8CB4DBBC409CEA6B47F98B67CED +DED64869A1F9B3BCA0A85D66B1C27301DE7542FDEEAB005F2FB76CA066664B94 +968C3E637E055EFB165093574FB6EA732B959FE708C52FFEF012CC1117C85EF6 +56B97BA4B30322F7B3F1F95233A3C897E5316BB86E8C331FF1A858429E0D98FC +DA67AA525C035606A8ABDBE35B742B53183CE047EA2CDE1C08EDF08E5355F694 +1C34925DB0D5314CC0B205F40775A500B76491789B90D4604D3545E2D7DAC1EA +400B2CF72EADCE9C7409900ADD1C6057DBBD97D332F6435C0B91B14D081EBE01 +EC9230E6D12B6455E401CB100C7B3590D23CE094C79BE8266F1F24937448FEA7 +C74CE914AE8DFE853F3E068433A6DA96F156A0014C457040587BAE7DB4CAE2C0 +EC1FF60747BAFB376D5F87DB5CE2A8512453088742214C38F5B6E0D7644A0C1A +F67087FA502BB43C27B32931D8315CB8A425341ABC3E7656588AB563E9CC456C +E46CC1E57DD4B2A83CEE5FD154001568DB6AFBCEBE8FAA4458AFA35BF37E4C71 +1D112063753E5B66C8B4E801A5E46F6053C8B55A95086615D6601924A6633C4A +C4D8EB0B7A5C8AA7E49FCFDC8182EEA53DB300AADBCA3836FC88A140A155C726 +54CA5DDD926DDD0C1555C26E30AAE25D1CA4A2478D0FDE0EC996A1399D5C0F69 +C349AAA9206B2554D7D6C68DA845053641E22B965314B6F28D69628FE8D5C243 +E978E6B81B3F916E722DBAF355B18812021267A9E3C324B3D9F6BCF7B5B50CC2 +D5B72D9DE9D485E103F25E1F42FF7BF040B3B6B5DFBB36BCD8E8B6379CA3198A +7AEC551899A044FEE3CAAD9A2C3D839DD370C97C194D5A4F2815785E413A0597 +C61887CC4842988FBB321DCF73FB977402DA1E3D9EFAA176230295ABFD079DD9 +9B2D187B82BD7FCAFF1EA271FF74ED0210D616BCBB443800C9FCA4F467A19717 +DD0D36AD7CD6CBA51AEB15755E68789368851FAE22F39F3CBA9CA1DEFC304E17 +33BF87828DE7758DADAF45CB27CB0A64DEB8F4CCE7FF05CEB0E4E016B9675CA4 +E7E001E16FB153610F077EDE525873CE46E0A3997EF7F73D8DF38B916A8AF808 +93C2463BF8B9C5875B76FD983F00311BE872F5CDB5B1647508F422FBF2A56986 +6358FA3C232E7E6063C82F74823036BB7AF8F8D545D12D82B2195DCEC5969DF2 +0EE8CE3123CB3010FBEF3FCCD7F1920ACC42FFB593697B786E6A6F52E10C1A15 +208783D4280FC31CC679F9E4A00E684B74EF11900CCBF5554CFCE34B65A9A999 +68AB22E0A438B4DC1CBFC32755F7DC8FE58A7956C1BBBD29983200DDDAA59C5B +4CE550F5E0AB048E98DA80BDEBA63ADD9DB6C7DC3A3F6E25C1FB6B638120925D +C897B2C05C4179A0E48740439BEA3FFCD35C71B21ADFD7C8412706D3868C4BDE +30F6B8CAE82D86AF842CFEDCAB3CF67BDF0AF7FCE6A0E7AD2D247446C38B2CF3 +26CD3D7E09F5CE2535283C43D04C9391C7A1CDFA6F2571F786A1F0189B9BAFCB +AB1CDDF8190D7CE364F8FF8EBCBBD5F646C095CF27A34B7235566BFE8B012E01 +CC721A7B3FFD795A0EBAF81A8A0A7820B99E98166C1AF177B87446927CC0C239 +54BBAE855E9FBD704DE67917FABE3034A953930949AFCF79A59AD8A387CA1FA4 +58131723EB2935C02EBBE6F9554BDDBEA5EA55E3FD6BCF25DA52765D65054BB8 +4A5C2AD1312892297E1C45570F0622D145BE35C8758391F28C04B3AC4282D1AE +084E080892C76C1B9C9F738760879908EC5B3A90DAB7A6538080A484E54B9FF0 +1C2885E93F1F16E52E0A3C9F6802E6345BBC5DBC5E7C57C85104427CA3182C7A +54E95B22D149BFBA403CC8A960EC62EDABA1881F31B92C54DD21C96298A7703E +E9D2DBA4B91A23C4E5F3D225A38C07818DA8C2F261D950FC8AB6042023248E37 +6BA0AE50B9A85F04EB48523143AE40695F127E34E070331620415B95A5ECB24F +C46696AC6F75020F6322DFD03B42788C535DB541FEA6F846380E8F5800B7E060 +51A387FC9AAF598C88CEF209FA38E008D8707A34245EFB722BB373D7E6B1E6CF +BDF2DBCE22FD2C85F78C4C4FC31F3C2F6B553C4295A1E26665BD166FFB7DF6BE +A6E9D18FB735F2DA53138A4A4352B36A08B662528FE0237FF37FFF218D88F2EC +50741BC5E98E856B17D8015869044657657BDB90D69A0FD5D5D0CF4A6A091E56 +938D444D0618D7B45C22F65E18B034282849355ACE83A188D164FA36367AE6C3 +35C775F72A89A4017A4071EAE1118B88C58CB1DE4E20EE1955BE0BFE8646CCF7 +05322E5566D14B5318A2328648CE7C1AC36B077D1A8AF17AC827E500B09FF496 +69CF7446403EF7B00C4F1832F1F6692B5FBACFA7FF9A719E5DDC8F25A798CEE9 +F4F114E522F00B7A415AFBCE48D09958DE98CAAF427FFDFD635A7ED5DCFD5F7B +6D7AF2B5E78F4446753C8CE59F923D4728ACE448F35BF3FBBC8B2ABCF49432D3 +AA49924191FC8AFDAD01863EE8716B6D76A6512B40BDE9C18C7D321646539DB5 +A09047ACE1815F462E82DC593548CF68B78D52049AED0E44627779613BC02BCD +2B5BDC8D2091271D44BA1362DE0E44E46CAA9D966D429848FA422A73061A12F2 +B1BE7A81533D810479F91C9656D3AB7F00B9332AB851743C0F25E32F37E943FA +370B4EB25781068D8DFAAEC50CF86028610CDB59CEEC4AB547EB3908897AF9ED +CA74EA35D2CA70A70BC83B0AC2E4A5E558098AE2B12EB42397CFCA0F9C9E15BC +9431FB2F10224F22F0E191291110FC5E1313A99EA12B3E3318263AAD516BCF66 +C71C825091984E21010B29025E3FBDC518E8960AABEAE236F03611CAB6F87D03 +EF0DA8DAC4D2C58A9ABD40E592B2756FB21E4D7D2F2D3259F51CEB6BCBB1B4E2 +33BC3B474D779565D69F0FF19113A20553F85DFDB4FF9E175606240A7562B12D +4B8B8F938AFDCFDAD721A64972573F6251D363FA971FDC41F2E02F7DF28C0AED +EAD3A9CBBED541FA7E6AD7BEA83945118B83564782FBCEC5B466B96DA7809BFD +A86907AA67FCC568533218DDB3D201301379A1B9EA8A32DE36B1F7F93F99F0BB +FA3F4D002793063ADB685A8935EA4A5E549767853A6488C6DFC2E70B3A455D0A +29E8F6FD949E810C0EC0F6F835DDD975EF68B4DA83F23A14945195248F667B32 +EF2F958253C7F5FD49AD7E545911E963D76006C57322D2CE2FF3F1DD1256152B +3226C0CA03B72F409C91151FF59EC80C2B7431C656E94E19904AB842D63BC797 +1C6552AB4B265ABC2AA8B66096AEC22E778232043288EE0F60D6ABB319B9D2BD +0FBF6F0BFFF5DEDC3A39AECD6821EDE1B213F7A2E6A7BA475389D647F663642D +E4C5C3F0DE1C0030EE381006CB01B5E5947AE6E837DD2ADBFC967557A0182EDD +16B10FE9BDD490CA0A3C351B025FC63A08D1415163EBD31ECEFC3F50586142BB +205E41E1ECEC46CD2209D760D75E743AD13AF1E761A8B7F996ABCAEA43645546 +F42C87F6909258CC74419B96A39D6DA3233834894CC60B03F867B6ADAA2C18F6 +0040A9D8E70BAB12221217095DFC57117CDEB536FDA09E11787D4F7B448F88 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -6062,7 +6062,7 @@ D05087746F3EF6595180C4480008CFEF2F0AB926519BA31392E3A84A07F2C0B8 cleartomark {restore}if %%EndFont -TeXDict begin 39158280 55380996 1000 600 600 (libtasn1.dvi) +TeXDict begin 40258431 52099146 1000 600 600 (libtasn1.dvi) @start /Fa 197[21 58[{}1 74.7198 /CMMI9 rf /Fb 134[41 2[41 43 30 30 30 1[43 38 43 64 21 2[21 43 38 23 34 43 34 43 38 11[58 1[43 2[52 1[58 70 48 3[58 60 50 1[59 55 @@ -6070,78 +6070,80 @@ TeXDict begin 39158280 55380996 1000 600 600 (libtasn1.dvi) 12[{}45 74.7198 /CMR9 rf /Fc 134[39 3[39 39 39 39 2[39 39 39 39 2[39 39 2[39 3[39 97[{}13 74.7198 /CMSLTT10 rf /Fd 134[39 39 39 39 39 39 39 39 1[39 39 39 39 39 39 -1[39 39 39 39 39 39 39 39 39 39 39 8[39 39 39 39 2[39 +39 39 39 39 39 39 39 39 39 39 39 39 8[39 39 39 39 2[39 1[39 1[39 2[39 1[39 39 39 39 39 39 39 5[39 7[39 39 39 -1[39 39 39 39 2[39 39 39 39[{}51 74.7198 /CMTT9 rf /Fe +1[39 39 39 39 2[39 39 39 39[{}52 74.7198 /CMTT9 rf /Fe 133[40 4[51 35 36 39 3[51 76 25 2[25 1[45 1[42 51 40 1[44 7[69 3[70 63 51 69 2[68 71 86 55 2[36 71 71 1[60 -70 66 65 69 6[25 58[{}32 90.9091 /CMB10 rf /Ff 133[52 -52 52 1[52 52 52 52 52 52 52 52 52 52 52 1[52 52 1[52 -52 52 52 52 52 52 1[52 8[52 7[52 7[52 52 52 68[{}29 99.6264 -/CMSLTT10 rf /Fg 133[40 48 48 1[48 51 35 36 36 48 51 -45 51 76 25 1[28 25 51 45 28 40 51 40 51 45 10[68 7[68 -1[57 2[33 2[59 62 69 18[45 4[25 1[45 28[51 51 12[{}36 -90.9091 /CMSL10 rf /Fh 214[35 35 40[{}2 90.9091 /CMSS10 -rf /Fi 134[52 52 52 52 52 52 52 52 1[52 52 52 52 52 52 -52 52 52 52 52 52 52 52 52 52 1[52 25[52 18[52 52 6[52 -42[{}29 99.6264 /CMTT10 rf /Fj 134[65 65 89 65 68 48 -48 50 1[68 61 68 102 34 65 37 34 68 61 37 56 68 55 68 -60 27[81 18[61 61 36[68 12[{}28 109.091 /CMBX12 rf /Fk -130[48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 48 48 48 48 48 48 48 48 48 48 48 1[48 1[48 48 48 48 +70 66 65 69 6[25 58[{}32 90.9091 /CMB10 rf /Ff 133[40 +48 48 1[48 51 35 36 36 48 51 45 51 76 25 1[28 25 1[45 +28 40 51 40 51 45 10[68 7[68 7[59 62 69 54[51 51 12[{}30 +90.9091 /CMSL10 rf /Fg 133[52 52 52 1[52 52 52 52 52 +52 52 52 52 52 52 1[52 52 1[52 52 52 52 52 52 52 1[52 +8[52 7[52 7[52 52 52 68[{}29 99.6264 /CMSLTT10 rf /Fh +137[53 55 39 39 39 2[50 55 1[28 2[28 55 50 1[44 55 44 +1[50 20[62 2[36 2[65 68 19[50 4[28 1[50 42[{}22 99.6264 +/CMSL10 rf /Fi 214[35 35 40[{}2 90.9091 /CMSS10 rf /Fj +134[52 52 52 52 52 52 52 52 1[52 52 52 52 52 52 52 52 +52 52 52 52 52 52 52 52 1[52 25[52 18[52 52 6[52 42[{}29 +99.6264 /CMTT10 rf /Fk 134[65 65 89 65 68 48 48 50 1[68 +61 68 102 34 65 37 34 68 61 37 56 68 55 68 60 27[81 18[61 +61 36[68 12[{}28 109.091 /CMBX12 rf /Fl 130[48 1[48 48 +48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 +48 48 48 48 48 48 48 1[48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 48 48 48 48 48 48 1[48 48 48 48 48 48 1[48 48 48 48 -48 48 48 48 1[48 48 48 48 48 48 48 48 48 2[48 1[48 34[{}83 -90.9091 /CMTT10 rf /Fl 197[25 58[{}1 90.9091 /CMMI10 -rf /Fm 197[33 58[{}1 119.552 /CMMI12 rf /Fn 134[85 85 -2[90 63 64 66 1[90 81 90 134 45 2[45 90 81 49 74 90 72 -90 78 11[124 112 90 4[126 4[60 2[101 1[124 117 1[122 -12[81 81 81 81 2[45 46[{}34 143.462 /CMBX12 rf /Fo 240[45 -1[91 13[{}2 90.9091 /CMSY10 rf /Fp 138[62 62 62 62 1[62 -62 62 1[62 2[62 62 62 1[62 2[62 62 32[62 14[62 2[62 62 -45[{}18 119.552 /CMTT12 rf /Fq 134[71 71 97 71 75 52 -53 55 1[75 67 75 112 37 71 1[37 75 67 41 61 75 60 75 -65 11[103 94 75 100 1[92 1[105 128 81 1[69 50 105 106 -85 88 103 97 1[102 6[37 2[67 1[67 67 67 67 67 67 1[37 -4[52 52 27[75 12[{}52 119.552 /CMBX12 rf /Fr 131[91 1[40 -48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 -45 28 40 51 40 51 45 25 2[25 45 25 56 68 68 93 68 68 -66 51 67 71 62 71 68 83 57 71 47 33 68 71 59 62 69 66 -64 68 1[43 1[71 1[25 25 45 45 45 45 45 45 45 45 45 45 -45 25 30 25 1[45 35 35 25 2[45 1[45 25 19[51 51 53 11[{}85 -90.9091 /CMR10 rf /Fs 139[75 76 4[108 4[54 6[108 94 20[116 -26[97 49[{}8 172.154 /CMBX12 rf end +48 48 1[48 48 48 48 48 48 1[48 48 48 48 48 48 48 48 1[48 +48 48 48 48 48 48 48 48 2[48 1[48 34[{}83 90.9091 /CMTT10 +rf /Fm 197[25 58[{}1 90.9091 /CMMI10 rf /Fn 197[33 58[{}1 +119.552 /CMMI12 rf /Fo 134[85 85 2[90 63 64 66 1[90 81 +90 134 45 2[45 90 81 49 74 90 72 90 78 11[124 112 90 +4[126 4[60 2[101 1[124 117 1[122 12[81 81 81 81 2[45 +46[{}34 143.462 /CMBX12 rf /Fp 240[45 1[91 13[{}2 90.9091 +/CMSY10 rf /Fq 138[62 62 62 62 1[62 62 62 1[62 2[62 62 +62 1[62 2[62 62 32[62 14[62 2[62 62 45[{}18 119.552 /CMTT12 +rf /Fr 134[71 71 97 71 75 52 53 55 1[75 67 75 112 37 +71 1[37 75 67 41 61 75 60 75 65 11[103 94 75 100 1[92 +1[105 128 81 1[69 50 105 106 85 88 103 97 1[102 6[37 +1[67 2[67 67 67 67 67 2[37 4[52 52 27[75 12[{}51 119.552 +/CMBX12 rf /Fs 131[91 1[40 48 48 66 48 51 35 36 36 48 +51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 25 2[25 +45 25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71 +47 33 68 71 59 62 69 66 64 68 1[43 1[71 1[25 25 45 45 +45 45 45 45 45 45 45 45 45 25 30 25 1[45 35 35 25 2[45 +1[45 25 19[51 51 53 11[{}85 90.9091 /CMR10 rf /Ft 139[75 +76 4[108 4[54 6[108 94 20[116 26[97 49[{}8 172.154 /CMBX12 +rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin -%%BeginPaperSize: a4 +%%BeginPaperSize: Letter /setpagedevice where -{ pop << /PageSize [595 842] >> setpagedevice } -{ /a4 where { pop a4 } if } +{ pop << /PageSize [612 792] >> setpagedevice } +{ /letter where { pop letter } if } ifelse %%EndPaperSize end %%EndSetup %%Page: 1 1 -TeXDict begin 1 0 bop 150 1318 a Fs(Libtasn1)p 150 1385 -3600 34 v 1035 1486 a Fr(Abstract)31 b(Syn)m(tax)f(Notation)j(One)d -(\(ASN.1\))h(library)f(for)g(the)h(GNU)g(system)2592 -1594 y(for)f(v)m(ersion)h(4.13,)h(4)f(April)f(2016)150 -4795 y Fq(F)-11 b(abio)45 b(Fiorina)150 4928 y(Simon)g(Josefsson)150 -5061 y(Nik)l(os)h(Ma)l(vrogiannop)t(oulos)g(\()p Fp(help-libtasn1@)o -(gn)o(u.o)o(rg)o Fq(\))p 150 5141 3600 17 v eop end +TeXDict begin 1 0 bop 150 1318 a Ft(Libtasn1)p 150 1385 +3600 34 v 1035 1486 a Fs(Abstract)31 b(Syn)m(tax)f(Notation)j(One)d +(\(ASN.1\))h(library)f(for)g(the)h(GNU)g(system)2499 +1594 y(for)f(v)m(ersion)h(4.14,)h(29)f(Marc)m(h)g(2019)150 +4779 y Fr(F)-11 b(abio)45 b(Fiorina)150 4920 y(Simon)g(Josefsson)150 +5061 y(Nik)l(os)h(Ma)l(vrogiannop)t(oulos)g(\()p Fq(help-libtasn1@)o +(gn)o(u.o)o(rg)o Fr(\))p 150 5141 3600 17 v eop end %%Page: 2 2 -TeXDict begin 2 1 bop 150 4523 a Fr(This)21 b(man)m(ual)i(is)f(for)g -(GNU)h(Libtasn1)g(\(v)m(ersion)g(4.13,)j(4)c(April)g(2016\),)k(whic)m -(h)c(is)h(a)f(library)g(for)g(Abstract)150 4633 y(Syn)m(tax)31 -b(Notation)h(One)e(\(ASN.1\))h(and)f(Distinguished)h(Enco)s(ding)e -(Rules)i(\(DER\))g(manipulation.)150 4767 y(Cop)m(yrigh)m(t)602 -4764 y(c)577 4767 y Fo(\015)f Fr(2001-2015)k(F)-8 b(ree)32 -b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)390 4902 -y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 -b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f -(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8 +TeXDict begin 2 1 bop 150 4413 a Fs(This)40 b(man)m(ual)h(is)f(for)g +(GNU)i(Libtasn1)e(\(v)m(ersion)i(4.14,)i(29)e(Marc)m(h)f(2019\),)k +(whic)m(h)c(is)f(a)h(library)f(for)150 4523 y(Abstract)32 +b(Syn)m(tax)f(Notation)j(One)d(\(ASN.1\))h(and)f(Distinguished)g(Enco)s +(ding)g(Rules)g(\(DER\))h(manip-)150 4633 y(ulation.)150 +4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 y Fp(\015)e +Fs(2001-2019)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 +b(oundation,)32 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h +(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s +(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 @@ -6152,98 +6154,99 @@ b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390 5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end %%Page: -1 3 -TeXDict begin -1 2 bop 3725 -116 a Fr(i)150 299 y Fn(T)-13 -b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fq(1)135 b(In)l(tro)t -(duction)13 b Fm(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) -g(:)h(:)f(:)h(:)f(:)h(:)57 b Fq(1)150 911 y(2)135 b(ASN.1)45 -b(structure)g(handling)16 b Fm(:)j(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)61 b Fq(2)275 -1048 y Fr(2.1)92 b(ASN.1)30 b(syn)m(tax)20 b Fl(:)c(:)g(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)50 b Fr(2)275 1157 -y(2.2)92 b(Naming)18 b Fl(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)48 b Fr(3)275 -1267 y(2.3)92 b(Simple)30 b(parsing)21 b Fl(:)15 b(:)g(:)h(:)f(:)g(:)h +TeXDict begin -1 2 bop 3725 -116 a Fs(i)150 299 y Fo(T)-13 +b(able)53 b(of)h(Con)l(ten)l(ts)150 649 y Fr(1)135 b(In)l(tro)t +(duction)31 b Fn(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)g(:)44 b Fr(1)150 927 y(2)135 b(ASN.1)45 +b(structure)g(handling)34 b Fn(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)47 +b Fr(2)275 1064 y Fs(2.1)92 b(ASN.1)30 b(syn)m(tax)8 +b Fm(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)22 +b Fs(2)275 1174 y(2.2)92 b(Naming)26 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)40 +b Fs(3)275 1284 y(2.3)92 b(Simple)30 b(parsing)9 b Fm(:)15 +b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) -f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h -(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Fr(4)275 1377 y(2.4)92 -b(Library)29 b(Notes)18 b Fl(:)f(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) -h(:)f(:)h(:)f(:)48 b Fr(4)275 1486 y(2.5)92 b(F)-8 b(uture)30 -b(dev)m(elopmen)m(ts)22 b Fl(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)23 +b Fs(4)275 1393 y(2.4)92 b(Library)29 b(Notes)f Fm(:)15 +b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)40 +b Fs(4)275 1503 y(2.5)92 b(F)-8 b(uture)30 b(dev)m(elopmen)m(ts)10 +b Fm(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)23 b Fs(4)150 +1753 y Fr(3)135 b(Utilities)36 b Fn(:)20 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)47 +b Fr(5)275 1890 y Fs(3.1)92 b(In)m(v)m(oking)31 b(asn1P)m(arser)24 +b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)52 -b Fr(4)150 1729 y Fq(3)135 b(Utilities)16 b Fm(:)22 b(:)d(:)h(:)f(:)h -(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f -(:)h(:)60 b Fq(5)275 1866 y Fr(3.1)92 b(In)m(v)m(oking)31 -b(asn1P)m(arser)15 b Fl(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f -(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)45 -b Fr(5)275 1975 y(3.2)92 b(In)m(v)m(oking)31 b(asn1Co)s(ding)19 -b Fl(:)c(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) -f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h -(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)49 b Fr(5)275 2085 -y(3.3)92 b(In)m(v)m(oking)31 b(asn1Deco)s(ding)17 b Fl(:)f(:)g(:)f(:)g +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)37 b Fs(5)275 +2000 y(3.2)92 b(In)m(v)m(oking)31 b(asn1Co)s(ding)26 +b Fm(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)41 b Fs(5)275 2110 +y(3.3)92 b(In)m(v)m(oking)31 b(asn1Deco)s(ding)26 b Fm(:)16 +b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)47 b Fr(6)150 2327 y Fq(4)135 b(F)-11 b(unction)44 -b(reference)21 b Fm(:)g(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h -(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)66 -b Fq(7)275 2464 y Fr(4.1)92 b(ASN.1)30 b(sc)m(hema)i(functions)13 -b Fl(:)i(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) -h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)g(:)44 b Fr(7)275 2574 y(4.2)92 b(ASN.1)30 -b(\014eld)g(functions)12 b Fl(:)k(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h +h(:)f(:)h(:)f(:)g(:)39 b Fs(6)150 2360 y Fr(4)135 b(F)-11 +b(unction)44 b(reference)13 b Fn(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)h(:)f(:)26 b Fr(8)275 2497 y Fs(4.1)92 b(ASN.1)30 +b(sc)m(hema)i(functions)22 b Fm(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)35 +b Fs(8)275 2607 y(4.2)92 b(ASN.1)30 b(\014eld)g(functions)21 +b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)34 b Fs(8)275 2716 +y(4.3)92 b(DER)30 b(functions)25 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)38 b Fs(15)275 2826 y(4.4)92 b(Error)29 +b(handling)h(functions)12 b Fm(:)j(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)43 -b Fr(7)275 2683 y(4.3)92 b(DER)30 b(functions)17 b Fl(:)e(:)g(:)h(:)f -(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g -(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fr(14)275 2793 -y(4.4)92 b(Error)29 b(handling)h(functions)23 b Fl(:)16 -b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) -f(:)g(:)54 b Fr(20)275 2902 y(4.5)92 b(Auxilliary)31 -b(functions)19 b Fl(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h -(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) -f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)48 -b Fr(21)150 3145 y Fq(App)t(endix)c(A)160 b(Cop)l(ying)45 -b(Information)25 b Fm(:)c(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f -(:)70 b Fq(22)275 3282 y Fr(A.1)91 b(GNU)31 b(F)-8 b(ree)32 -b(Do)s(cumen)m(tation)g(License)21 b Fl(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h -(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) -f(:)h(:)f(:)51 b Fr(22)150 3524 y Fq(Concept)45 b(Index)18 -b Fm(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) -h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f -(:)h(:)f(:)63 b Fq(30)150 3794 y(F)-11 b(unction)44 b(and)h(Data)h -(Index)24 b Fm(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f -(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)69 b Fq(31)p -eop end +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)25 b Fs(22)275 +2936 y(4.5)92 b(Auxilliary)31 b(functions)26 b Fm(:)16 +b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)40 b Fs(23)150 3186 y Fr(App)t(endix)k(A) +119 b(Cop)l(ying)46 b(Information)11 b Fn(:)20 b(:)g(:)f(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)24 b Fr(24)275 3323 y +Fs(A.1)91 b(GNU)31 b(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)10 +b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)23 +b Fs(24)150 3574 y Fr(Concept)45 b(Index)36 b Fn(:)19 +b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:) +h(:)49 b Fr(32)150 3852 y(F)-11 b(unction)44 b(and)h(Data)h(Index)16 +b Fn(:)j(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)29 b Fr(33)p eop +end %%Page: 1 4 -TeXDict begin 1 3 bop 150 -116 a Fr(Chapter)30 b(1:)41 -b(In)m(tro)s(duction)2592 b(1)150 299 y Fn(1)80 b(In)l(tro)t(duction) -150 533 y Fr(This)27 b(do)s(cumen)m(t)h(describ)s(es)g(the)g(Libtasn1)g -(library)g(that)h(pro)m(vides)f(Abstract)h(Syn)m(tax)f(Notation)i(One) -150 643 y(\(ASN.1,)42 b(as)c(sp)s(eci\014ed)g(b)m(y)h(the)f(X.680)i -(ITU-T)f(recommendation\))g(parsing)f(and)g(structures)g(man-)150 -752 y(agemen)m(t,)g(and)c(Distinguished)h(Enco)s(ding)f(Rules)h(\(DER,) -g(as)g(p)s(er)f(X.690\))j(enco)s(ding)e(and)f(deco)s(ding)150 -862 y(functions.)275 996 y(The)29 b(main)i(features)f(of)h(this)f -(library)g(are:)225 1131 y Fo(\017)60 b Fr(On-line)30 +TeXDict begin 1 3 bop 3705 -116 a Fs(1)150 299 y Fo(1)80 +b(In)l(tro)t(duction)150 533 y Fs(This)27 b(do)s(cumen)m(t)h(describ)s +(es)g(the)g(Libtasn1)g(library)g(that)h(pro)m(vides)f(Abstract)h(Syn)m +(tax)f(Notation)i(One)150 643 y(\(ASN.1,)42 b(as)c(sp)s(eci\014ed)g(b)m +(y)h(the)f(X.680)i(ITU-T)f(recommendation\))g(parsing)f(and)g +(structures)g(man-)150 752 y(agemen)m(t,)g(and)c(Distinguished)h(Enco)s +(ding)f(Rules)h(\(DER,)g(as)g(p)s(er)f(X.690\))j(enco)s(ding)e(and)f +(deco)s(ding)150 862 y(functions.)275 996 y(The)29 b(main)i(features)f +(of)h(this)f(library)g(are:)225 1131 y Fp(\017)60 b Fs(On-line)30 b(ASN.1)h(structure)f(managemen)m(t)i(that)f(do)s(esn't)f(require)g(an) -m(y)h(C)f(co)s(de)g(\014le)h(generation.)225 1265 y Fo(\017)60 -b Fr(O\013-line)30 b(ASN.1)f(structure)g(managemen)m(t)h(with)f(C)g(co) +m(y)h(C)f(co)s(de)g(\014le)h(generation.)225 1265 y Fp(\017)60 +b Fs(O\013-line)30 b(ASN.1)f(structure)g(managemen)m(t)h(with)f(C)g(co) s(de)g(\014le)h(generation)g(con)m(taining)h(an)e(arra)m(y)-8 -b(.)225 1400 y Fo(\017)60 b Fr(Distinguished)30 b(Enco)s(ding)g(Rules)g -(\(DER\))i(enco)s(ding)e(supp)s(ort.)225 1534 y Fo(\017)60 -b Fr(No)31 b(limits)g(for)f(INTEGER)g(and)g(ENUMERA)-8 -b(TED)31 b(v)-5 b(alues.)225 1669 y Fo(\017)60 b Fr(It's)36 +b(.)225 1400 y Fp(\017)60 b Fs(Distinguished)30 b(Enco)s(ding)g(Rules)g +(\(DER\))i(enco)s(ding)e(supp)s(ort.)225 1534 y Fp(\017)60 +b Fs(No)31 b(limits)g(for)f(INTEGER)g(and)g(ENUMERA)-8 +b(TED)31 b(v)-5 b(alues.)225 1669 y Fp(\017)60 b Fs(It's)36 b(F)-8 b(ree)38 b(Soft)m(w)m(are.)59 b(An)m(yb)s(o)s(dy)35 b(can)h(use,)i(mo)s(dify)-8 b(,)38 b(and)d(redistribute)h(the)g (library)g(under)f(the)330 1778 y(terms)g(of)f(the)h(GNU)h(Lesser)e @@ -6251,188 +6254,186 @@ b(can)h(use,)i(mo)s(dify)-8 b(,)38 b(and)d(redistribute)h(the)g b(The)34 b(command)330 1888 y(line)23 b(to)s(ols,)j(self-tests)e(and)e (build)g(infrastructure)f(are)j(licensed)f(under)e(the)i(GNU)h(General) f(Public)330 1998 y(License)31 b(v)m(ersion)g(3.0)g(or)g(later.)225 -2132 y Fo(\017)60 b Fr(Thread-safet)m(y)-8 b(.)56 b(No)36 +2132 y Fp(\017)60 b Fs(Thread-safet)m(y)-8 b(.)56 b(No)36 b(global)g(v)-5 b(ariables)36 b(are)f(used)g(and)f(m)m(ultiple)i (library)f(handles)f(and)h(session)330 2242 y(handles)30 -b(ma)m(y)h(b)s(e)e(used)h(in)g(parallel.)225 2376 y Fo(\017)60 -b Fr(P)m(ortabilit)m(y)-8 b(.)54 b(The)33 b(co)s(de)h(should)f(w)m(ork) +b(ma)m(y)h(b)s(e)e(used)h(in)g(parallel.)225 2376 y Fp(\017)60 +b Fs(P)m(ortabilit)m(y)-8 b(.)54 b(The)33 b(co)s(de)h(should)f(w)m(ork) h(on)g(all)g(Unix)g(lik)m(e)h(op)s(erating)f(systems,)h(and)f(Windo)m (ws.)330 2486 y(The)c(library)g(itself)h(should)e(b)s(e)h(p)s(ortable)h (to)g(an)m(y)f(C89)h(system,)g(not)g(ev)m(en)g(POSIX)e(is)h(required.)p eop end %%Page: 2 5 -TeXDict begin 2 4 bop 150 -116 a Fr(Chapter)30 b(2:)41 -b(ASN.1)31 b(structure)f(handling)2068 b(2)150 299 y -Fn(2)80 b(ASN.1)53 b(structure)f(handling)150 632 y Fq(2.1)68 -b(ASN.1)45 b(syn)l(tax)150 792 y Fr(The)30 b(parser)f(is)h(case)h +TeXDict begin 2 4 bop 3705 -116 a Fs(2)150 299 y Fo(2)80 +b(ASN.1)53 b(structure)f(handling)150 639 y Fr(2.1)68 +b(ASN.1)45 b(syn)l(tax)150 798 y Fs(The)30 b(parser)f(is)h(case)h (sensitiv)m(e.)42 b(The)30 b(commen)m(ts)h(b)s(egin)e(with)h -Fk(--)g Fr(and)f(end)h(either)g(with)g(another)g Fk(--)p -Fr(,)150 901 y(or)35 b(at)h(the)g(end)f(of)g(the)h(resp)s(ectiv)m(e)g +Fl(--)g Fs(and)f(end)h(either)g(with)g(another)g Fl(--)p +Fs(,)150 908 y(or)35 b(at)h(the)g(end)f(of)g(the)h(resp)s(ectiv)m(e)g (line,)h(whic)m(hev)m(er)f(comes)h(\014rst.)55 b(The)34 -b(C-st)m(yle)j Fk(/*)p Fr(,)f Fk(*/)f Fr(commen)m(ts)150 -1011 y(are)c(not)f(supp)s(orted.)275 1146 y(F)-8 b(or)31 +b(C-st)m(yle)j Fl(/*)p Fs(,)f Fl(*/)f Fs(commen)m(ts)150 +1018 y(are)c(not)f(supp)s(orted.)275 1152 y(F)-8 b(or)31 b(an)f(example)h(of)g(the)f(syn)m(tax,)h(c)m(hec)m(k)h(the)f -Fk(pkix.asn)d Fr(\014le)i(distributed)g(with)g(the)g(library)-8 -b(.)275 1280 y(ASN.1)30 b(de\014nitions)g(m)m(ust)h(follo)m(w)g(the)g -(syn)m(tax)g(b)s(elo)m(w:)436 1415 y Fk(definitions_name)44 -b({<object)h(definition>})436 1634 y(DEFINITIONS)g(<EXPLICIT)g(or)j -(IMPLICIT>)d(TAGS)h(::=)436 1854 y(BEGIN)436 2073 y(<type)h(and)g -(constants)e(definitions>)436 2292 y(END)275 2427 y Fr(The)39 -b Fk(::=)g Fr(tok)m(en)i(m)m(ust)f(b)s(e)f(separate)i(from)f(other)g +Fl(pkix.asn)d Fs(\014le)i(distributed)g(with)g(the)g(library)-8 +b(.)275 1286 y(ASN.1)30 b(de\014nitions)g(m)m(ust)h(follo)m(w)g(the)g +(syn)m(tax)g(b)s(elo)m(w:)436 1421 y Fl(definitions_name)44 +b({<object)h(definition>})436 1640 y(DEFINITIONS)g(<EXPLICIT)g(or)j +(IMPLICIT>)d(TAGS)h(::=)436 1859 y(BEGIN)436 2078 y(<type)h(and)g +(constants)e(definitions>)436 2298 y(END)275 2432 y Fs(The)39 +b Fl(::=)g Fs(tok)m(en)i(m)m(ust)f(b)s(e)f(separate)i(from)f(other)g (elemen)m(ts,)k(so)c(the)g(follo)m(wing)h(declaration)h(is)150 -2536 y(in)m(v)-5 b(alid:)533 2671 y Fk(--)47 b(INCORRECT)533 -2781 y(Version)f(::=INTEGER)275 2916 y Fr(The)29 b(correct)j(form)e -(is:)533 3050 y Fk(Version)46 b(::=)h(INTEGER)275 3185 -y Fr(Here)30 b(is)h(the)f(list)h(of)g(t)m(yp)s(es)f(that)h(the)g -(parser)f(can)g(manage:)225 3320 y Fo(\017)60 b Fk(INTEGER)p -Fr(;)225 3455 y Fo(\017)g Fk(ENUMERATED)p Fr(;)225 3589 -y Fo(\017)g Fk(BOOLEAN)p Fr(;)225 3724 y Fo(\017)g Fk(OBJECT)29 -b(IDENTIFIER)p Fr(;)225 3859 y Fo(\017)60 b Fk(NULL)p -Fr(;)225 3993 y Fo(\017)g Fk(BIT)29 b(STRING)p Fr(;)225 -4128 y Fo(\017)60 b Fk(OCTET)29 b(STRING)p Fr(;)225 4263 -y Fo(\017)60 b Fk(UTCTime)p Fr(;)225 4397 y Fo(\017)g -Fk(GeneralizedTime)p Fr(;)225 4532 y Fo(\017)g Fk(GeneralString)p -Fr(;)225 4667 y Fo(\017)g Fk(NumericString)p Fr(;)225 -4801 y Fo(\017)g Fk(IA5String)p Fr(;)225 4936 y Fo(\017)g -Fk(TeletexString)p Fr(;)225 5071 y Fo(\017)g Fk(PrintableString)p -Fr(;)225 5205 y Fo(\017)g Fk(UniversalString)p Fr(;)225 -5340 y Fo(\017)g Fk(BMPString)p Fr(;)p eop end +2542 y(in)m(v)-5 b(alid:)533 2676 y Fl(--)47 b(INCORRECT)533 +2786 y(Version)f(::=INTEGER)275 2920 y Fs(The)29 b(correct)j(form)e +(is:)533 3054 y Fl(Version)46 b(::=)h(INTEGER)275 3189 +y Fs(Here)30 b(is)h(the)f(list)h(of)g(t)m(yp)s(es)f(that)h(the)g +(parser)f(can)g(manage:)225 3323 y Fp(\017)60 b Fl(INTEGER)p +Fs(;)225 3458 y Fp(\017)g Fl(ENUMERATED)p Fs(;)225 3592 +y Fp(\017)g Fl(BOOLEAN)p Fs(;)225 3727 y Fp(\017)g Fl(OBJECT)29 +b(IDENTIFIER)p Fs(;)225 3861 y Fp(\017)60 b Fl(NULL)p +Fs(;)225 3996 y Fp(\017)g Fl(BIT)29 b(STRING)p Fs(;)225 +4130 y Fp(\017)60 b Fl(OCTET)29 b(STRING)p Fs(;)225 4264 +y Fp(\017)60 b Fl(UTCTime)p Fs(;)225 4399 y Fp(\017)g +Fl(GeneralizedTime)p Fs(;)225 4533 y Fp(\017)g Fl(GeneralString)p +Fs(;)225 4668 y Fp(\017)g Fl(NumericString)p Fs(;)225 +4802 y Fp(\017)g Fl(IA5String)p Fs(;)225 4937 y Fp(\017)g +Fl(TeletexString)p Fs(;)225 5071 y Fp(\017)g Fl(PrintableString)p +Fs(;)225 5206 y Fp(\017)g Fl(UniversalString)p Fs(;)225 +5340 y Fp(\017)g Fl(BMPString)p Fs(;)p eop end %%Page: 3 6 -TeXDict begin 3 5 bop 150 -116 a Fr(Chapter)30 b(2:)41 +TeXDict begin 3 5 bop 150 -116 a Fs(Chapter)30 b(2:)41 b(ASN.1)31 b(structure)f(handling)2068 b(3)225 299 y -Fo(\017)60 b Fk(UTF8String)p Fr(;)225 437 y Fo(\017)g -Fk(VisibleString)p Fr(;)225 576 y Fo(\017)g Fk(SEQUENCE)p -Fr(;)225 714 y Fo(\017)g Fk(SEQUENCE)28 b(OF)p Fr(;)225 -853 y Fo(\017)60 b Fk(SET)p Fr(;)225 992 y Fo(\017)g -Fk(SET)29 b(OF)p Fr(;)225 1130 y Fo(\017)60 b Fk(CHOICE)p -Fr(;)225 1269 y Fo(\017)g Fk(ANY)p Fr(;)225 1407 y Fo(\017)g -Fk(ANY)29 b(DEFINED)g(BY)p Fr(.)275 1579 y(This)42 b(v)m(ersion)j(do)s -(esn't)e(handle)g(the)h Fk(REAL)f Fr(t)m(yp)s(e.)81 b(It)44 -b(do)s(esn't)f(supp)s(ort)f(the)i Fk(AUTOMATIC)28 b(TAGS)150 -1688 y Fr(option,)j(and)f(the)g Fk(EXPORT)f Fr(and)h -Fk(IMPORT)f Fr(sections,)i(either.)275 1831 y(The)e Fk(SIZE)h -Fr(constrain)m(ts)h(are)g(allo)m(w)m(ed,)h(but)e(no)g(c)m(hec)m(k)i(is) -f(done)f(on)g(them.)150 2075 y Fq(2.2)68 b(Naming)150 -2235 y Fr(Consider)30 b(this)g(de\014nition:)436 2377 -y Fk(Example)46 b({)i(1)f(2)h(3)f(4)g(})436 2597 y(DEFINITIONS)e -(EXPLICIT)h(TAGS)g(::=)436 2816 y(BEGIN)436 3035 y(Group)h(::=)g -(SEQUENCE)e({)580 3145 y(id)142 b(OBJECT)46 b(IDENTIFIER,)580 -3254 y(value)94 b(Value)436 3364 y(})436 3583 y(Value)47 -b(::=)g(SEQUENCE)e({)580 3692 y(value1)93 b(INTEGER,)580 -3802 y(value2)g(BOOLEAN)436 3912 y(})436 4131 y(END)275 -4273 y Fr(The)68 b(notation)j(to)f(access)g(the)g(`)p -Fk(Group)p Fr(')e(t)m(yp)s(e)i(of)f(the)h(`)p Fk(Example)p -Fr(')d(de\014nition)i(ab)s(o)m(v)m(e)i(is)150 4383 y(`)p -Fk(Example.Group)p Fr(')40 b(\(as)j(a)g(NUL-terminated)h(string.\))78 +Fp(\017)60 b Fl(UTF8String)p Fs(;)225 437 y Fp(\017)g +Fl(VisibleString)p Fs(;)225 575 y Fp(\017)g Fl(SEQUENCE)p +Fs(;)225 714 y Fp(\017)g Fl(SEQUENCE)28 b(OF)p Fs(;)225 +852 y Fp(\017)60 b Fl(SET)p Fs(;)225 990 y Fp(\017)g +Fl(SET)29 b(OF)p Fs(;)225 1128 y Fp(\017)60 b Fl(CHOICE)p +Fs(;)225 1267 y Fp(\017)g Fl(ANY)p Fs(;)225 1405 y Fp(\017)g +Fl(ANY)29 b(DEFINED)g(BY)p Fs(.)275 1576 y(This)42 b(v)m(ersion)j(do)s +(esn't)e(handle)g(the)h Fl(REAL)f Fs(t)m(yp)s(e.)81 b(It)44 +b(do)s(esn't)f(supp)s(ort)f(the)i Fl(AUTOMATIC)28 b(TAGS)150 +1685 y Fs(option,)j(and)f(the)g Fl(EXPORT)f Fs(and)h +Fl(IMPORT)f Fs(sections,)i(either.)275 1827 y(The)e Fl(SIZE)h +Fs(constrain)m(ts)h(are)g(allo)m(w)m(ed,)h(but)e(no)g(c)m(hec)m(k)i(is) +f(done)f(on)g(them.)150 2079 y Fr(2.2)68 b(Naming)150 +2239 y Fs(Consider)30 b(this)g(de\014nition:)436 2381 +y Fl(Example)46 b({)i(1)f(2)h(3)f(4)g(})436 2600 y(DEFINITIONS)e +(EXPLICIT)h(TAGS)g(::=)436 2819 y(BEGIN)436 3038 y(Group)h(::=)g +(SEQUENCE)e({)580 3148 y(id)142 b(OBJECT)46 b(IDENTIFIER,)580 +3257 y(value)94 b(Value)436 3367 y(})436 3586 y(Value)47 +b(::=)g(SEQUENCE)e({)580 3696 y(value1)93 b(INTEGER,)580 +3805 y(value2)g(BOOLEAN)436 3915 y(})436 4134 y(END)275 +4276 y Fs(The)68 b(notation)j(to)f(access)g(the)g(`)p +Fl(Group)p Fs(')e(t)m(yp)s(e)i(of)f(the)h(`)p Fl(Example)p +Fs(')d(de\014nition)i(ab)s(o)m(v)m(e)i(is)150 4386 y(`)p +Fl(Example.Group)p Fs(')40 b(\(as)j(a)g(NUL-terminated)h(string.\))78 b(Suc)m(h)42 b(strings)h(are)g(used)f(in)g(the)h(functions)150 -4493 y(describ)s(ed)29 b(b)s(elo)m(w.)275 4635 y(Others)g(examples:)225 -4778 y Fo(\017)60 b Fr(\014eld)30 b(`)p Fk(id)p Fr(')g(of)h(the)f(`)p -Fk(Group)p Fr(')g(t)m(yp)s(e:)41 b(`)p Fk(Example.Group.id)p -Fr(';)225 4916 y Fo(\017)60 b Fr(\014eld)24 b(`)p Fk(value1)p -Fr(')f(of)i(the)f(`)p Fk(value)p Fr(')g(\014eld)g(of)g(the)h(`)p -Fk(Group)p Fr(')e(t)m(yp)s(e:)38 b(`)p Fk(Example.Group.value.value1)o -Fr('.)275 5088 y(Elemen)m(ts)26 b(of)f(structured)g(t)m(yp)s(es)g +4495 y(describ)s(ed)29 b(b)s(elo)m(w.)275 4637 y(Others)g(examples:)225 +4779 y Fp(\017)60 b Fs(\014eld)30 b(`)p Fl(id)p Fs(')g(of)h(the)f(`)p +Fl(Group)p Fs(')g(t)m(yp)s(e:)41 b(`)p Fl(Example.Group.id)p +Fs(';)225 4918 y Fp(\017)60 b Fs(\014eld)24 b(`)p Fl(value1)p +Fs(')f(of)i(the)f(`)p Fl(value)p Fs(')g(\014eld)g(of)g(the)h(`)p +Fl(Group)p Fs(')e(t)m(yp)s(e:)38 b(`)p Fl(Example.Group.value.value1)o +Fs('.)275 5088 y(Elemen)m(ts)26 b(of)f(structured)g(t)m(yp)s(es)g (unnamed)f(b)m(y)i(the)f(resp)s(ectiv)m(e)i(de\014nition)e(receiv)m(e)i -(the)f(names)f Fk(?1)p Fr(,)150 5197 y Fk(?2)p Fr(,)30 -b(and)g(so)g(on.)275 5340 y(The)f Fk(?LAST)g Fr(name)i(indicates)g(the) -g(last)g(elemen)m(t)h(of)e(a)h Fk(SET)e(OF)h Fr(or)h -Fk(SEQUENCE)d(OF)p Fr(.)p eop end +(the)f(names)f Fl(?1)p Fs(,)150 5198 y Fl(?2)p Fs(,)30 +b(and)g(so)g(on.)275 5340 y(The)f Fl(?LAST)g Fs(name)i(indicates)g(the) +g(last)g(elemen)m(t)h(of)e(a)h Fl(SET)e(OF)h Fs(or)h +Fl(SEQUENCE)d(OF)p Fs(.)p eop end %%Page: 4 7 -TeXDict begin 4 6 bop 150 -116 a Fr(Chapter)30 b(2:)41 +TeXDict begin 4 6 bop 150 -116 a Fs(Chapter)30 b(2:)41 b(ASN.1)31 b(structure)f(handling)2068 b(4)150 299 y -Fq(2.3)68 b(Simple)46 b(parsing)150 458 y Fr(F)-8 b(or)32 -b(simple)f(t)m(yp)s(es)h(lik)m(e)g Fk(OCTET)d(STRING)h -Fr(the)h(simple)g(parsing)g(functions)g(listed)h(b)s(elo)m(w)f(ma)m(y)h -(b)s(e)f(used)150 568 y(instead.)225 702 y Fo(\017)60 -b Fr([asn1)p 538 702 28 4 v 41 w(deco)s(de)p 849 702 -V 40 w(simple)p 1142 702 V 40 w(der],)30 b(page)h(20)225 -837 y Fo(\017)60 b Fr([asn1)p 538 837 V 41 w(enco)s(de)p -849 837 V 40 w(simple)p 1142 837 V 40 w(der],)30 b(page)h(15)150 -1069 y Fq(2.4)68 b(Library)45 b(Notes)150 1229 y Fr(The)30 -b(header)g(\014le)h(of)f(this)g(library)g(is)h Fk(libtasn1.h)p -Fr(.)275 1363 y(The)d(main)g(t)m(yp)s(e)h(used)f(in)h(it)g(is)g -Fk(asn1_node)p Fr(,)e(and)h(it's)h(used)f(to)i(store)f(the)g(ASN.1)g -(de\014nitions)g(and)150 1473 y(structures)h(\(instances\).)275 -1607 y(The)f Fk(NULL)h Fr(constan)m(t)h(can)g(b)s(e)f(used)f(for)h(the) +Fr(2.3)68 b(Simple)46 b(parsing)150 458 y Fs(F)-8 b(or)32 +b(simple)f(t)m(yp)s(es)h(lik)m(e)g Fl(OCTET)d(STRING)h +Fs(the)h(simple)g(parsing)g(functions)g(listed)h(b)s(elo)m(w)f(ma)m(y)h +(b)s(e)f(used)150 568 y(instead.)225 702 y Fp(\017)60 +b Fs([asn1)p 538 702 28 4 v 41 w(deco)s(de)p 849 702 +V 40 w(simple)p 1142 702 V 40 w(der],)30 b(page)h(21,)225 +837 y Fp(\017)60 b Fs([asn1)p 538 837 V 41 w(enco)s(de)p +849 837 V 40 w(simple)p 1142 837 V 40 w(der],)30 b(page)h(16,)150 +1078 y Fr(2.4)68 b(Library)45 b(Notes)150 1237 y Fs(The)30 +b(header)g(\014le)h(of)f(this)g(library)g(is)h Fl(libtasn1.h)p +Fs(.)275 1372 y(The)d(main)g(t)m(yp)s(e)h(used)f(in)h(it)g(is)g +Fl(asn1_node)p Fs(,)e(and)h(it's)h(used)f(to)i(store)f(the)g(ASN.1)g +(de\014nitions)g(and)150 1481 y(structures)h(\(instances\).)275 +1616 y(The)f Fl(NULL)h Fs(constan)m(t)h(can)g(b)s(e)f(used)f(for)h(the) h(v)-5 b(ariable)31 b(initialization.)44 b(F)-8 b(or)31 -b(example:)438 1742 y Fk(asn1_node)45 b(definitions)g(=)i(NULL;)275 -1876 y Fr(Some)35 b(functions)h(require)f(an)h Fk(errorDescription)31 -b Fr(argumen)m(t)36 b(of)g(t)m(yp)s(e)g Fk(char)29 b(*)p -Fr(,)37 b(p)s(oin)m(ting)f(to)h(a)150 1986 y(pre-allo)s(cated)f -(bu\013er)c(of)i(at)h(least)g Fk(ASN1_MAX_ERROR_DESCRIPT)o(ION_)o(SIZ)o -(E)28 b Fr(b)m(ytes)34 b(size)h(\(e.g.,)h(as)e(in)150 -2095 y(`)p Fk(char)29 b(description[ASN1_MAX_ERROR)o(_DES)o(CRI)o(PTIO) -o(N_SI)o(ZE])o(;)p Fr('\).)275 2230 y Fk(ASN1_MAX_NAME_SIZE)22 -b Fr(is)28 b(the)h(maxim)m(um)e(n)m(um)m(b)s(er)g(of)h(c)m(haracters)h -(allo)m(w)m(ed)h(for)e(an)g(ASN.1)g(iden-)150 2340 y(ti\014er.)150 -2572 y Fq(2.5)68 b(F)-11 b(uture)44 b(dev)l(elopmen)l(ts)225 -2731 y Fo(\017)60 b Fr(Add)27 b(functions)g(for)h(a)g(C)g(co)s(de)g +b(example:)438 1750 y Fl(asn1_node)45 b(definitions)g(=)i(NULL;)275 +1885 y Fs(Some)35 b(functions)h(require)f(an)h Fl(errorDescription)31 +b Fs(argumen)m(t)36 b(of)g(t)m(yp)s(e)g Fl(char)29 b(*)p +Fs(,)37 b(p)s(oin)m(ting)f(to)h(a)150 1994 y(pre-allo)s(cated)f +(bu\013er)c(of)i(at)h(least)g Fl(ASN1_MAX_ERROR_DESCRIPT)o(ION_)o(SIZ)o +(E)28 b Fs(b)m(ytes)34 b(size)h(\(e.g.,)h(as)e(in)150 +2104 y(`)p Fl(char)29 b(description[ASN1_MAX_ERROR)o(_DES)o(CRI)o(PTIO) +o(N_SI)o(ZE])o(;)p Fs('\).)275 2238 y Fl(ASN1_MAX_NAME_SIZE)22 +b Fs(is)28 b(the)h(maxim)m(um)e(n)m(um)m(b)s(er)g(of)h(c)m(haracters)h +(allo)m(w)m(ed)h(for)e(an)g(ASN.1)g(iden-)150 2348 y(ti\014er.)150 +2589 y Fr(2.5)68 b(F)-11 b(uture)44 b(dev)l(elopmen)l(ts)225 +2748 y Fp(\017)60 b Fs(Add)27 b(functions)g(for)h(a)g(C)g(co)s(de)g (\014le)g(generation)h(con)m(taining)h(equiv)-5 b(alen)m(t)29 -b(data)g(structures)e(\(not)i(a)330 2841 y(single)i(arra)m(y)g(lik)m(e) -h(no)m(w\).)225 2976 y Fo(\017)60 b Fr(The)30 b Fk(REAL)f -Fr(t)m(yp)s(e.)p eop end +b(data)g(structures)e(\(not)i(a)330 2858 y(single)i(arra)m(y)g(lik)m(e) +h(no)m(w\).)225 2992 y Fp(\017)60 b Fs(The)30 b Fl(REAL)f +Fs(t)m(yp)s(e.)p eop end %%Page: 5 8 -TeXDict begin 5 7 bop 150 -116 a Fr(Chapter)30 b(3:)41 -b(Utilities)2776 b(5)150 299 y Fn(3)80 b(Utilities)150 -635 y Fq(3.1)68 b(In)l(v)l(oking)46 b(asn1P)l(arser)150 -794 y Fk(asn1Parser)27 b Fr(reads)j(a)g(single)h(\014le)f(with)f(ASN.1) +TeXDict begin 5 7 bop 3705 -116 a Fs(5)150 299 y Fo(3)80 +b(Utilities)150 638 y Fr(3.1)68 b(In)l(v)l(oking)46 b(asn1P)l(arser)150 +797 y Fl(asn1Parser)27 b Fs(reads)j(a)g(single)h(\014le)f(with)f(ASN.1) i(de\014nitions)e(and)h(generates)h(a)f(\014le)g(with)g(an)g(arra)m(y)g -(to)150 904 y(use)g(with)g(libtasn1)h(functions.)150 -1039 y Fk(Usage:)94 b(asn1Parser)45 b([options])g(file)150 -1258 y(Options:)198 1368 y(-h)i(:)g(shows)g(the)g(help)f(message.)198 -1477 y(-v)h(:)g(shows)g(version)f(information)e(and)j(exit.)198 -1587 y(-c)g(:)g(checks)f(the)h(syntax)f(only.)198 1697 -y(-o)h(file)g(:)g(output)f(file.)198 1806 y(-n)h(name)g(:)g(array)f -(name.)150 2040 y Fq(3.2)68 b(In)l(v)l(oking)46 b(asn1Co)t(ding)150 -2200 y Fk(asn1Coding)27 b Fr(generates)k(a)e(DER)h(enco)s(ding)f(from)g +(to)150 907 y(use)g(with)g(libtasn1)h(functions.)150 +1041 y Fl(Usage:)94 b(asn1Parser)45 b([options])g(file)150 +1260 y(Options:)198 1370 y(-h)i(:)g(shows)g(the)g(help)f(message.)198 +1480 y(-v)h(:)g(shows)g(version)f(information)e(and)j(exit.)198 +1589 y(-c)g(:)g(checks)f(the)h(syntax)f(only.)198 1699 +y(-o)h(file)g(:)g(output)f(file.)198 1808 y(-n)h(name)g(:)g(array)f +(name.)150 2049 y Fr(3.2)68 b(In)l(v)l(oking)46 b(asn1Co)t(ding)150 +2208 y Fl(asn1Coding)27 b Fs(generates)k(a)e(DER)h(enco)s(ding)f(from)g (a)h(\014le)g(with)f(ASN.1)h(de\014nitions)f(and)g(another)h(one)150 -2309 y(with)g(assignmen)m(ts.)275 2445 y(The)f(\014le)i(with)f +2318 y(with)g(assignmen)m(ts.)275 2452 y(The)f(\014le)i(with)f (assignmen)m(ts)h(m)m(ust)f(ha)m(v)m(e)i(this)e(syn)m(tax:)150 -2580 y Fk(InstanceName)92 b(Asn1Definition)150 2799 y(nameString)h -(value)150 3019 y(nameString)g(value)150 3128 y(...)275 -3264 y Fr(T)-8 b(o)35 b(sp)s(ecify)f(the)h(\014eld)f(of)h(a)g -Fk(CHOICE)d Fr(to)k(b)s(e)e(used,)h(sp)s(ecify)f(its)h(name)g(as)f(a)h -(v)-5 b(alue)36 b(to)f(the)g Fk(CHOICE)150 3373 y Fr(elemen)m(t)d -(itself.)41 b(Use)31 b Fk('')f Fr(to)h(denote)g(the)g(ro)s(ot)f(elemen) +2586 y Fl(InstanceName)92 b(Asn1Definition)150 2806 y(nameString)h +(value)150 3025 y(nameString)g(value)150 3134 y(...)275 +3269 y Fs(T)-8 b(o)35 b(sp)s(ecify)f(the)h(\014eld)f(of)h(a)g +Fl(CHOICE)d Fs(to)k(b)s(e)e(used,)h(sp)s(ecify)f(its)h(name)g(as)f(a)h +(v)-5 b(alue)36 b(to)f(the)g Fl(CHOICE)150 3378 y Fs(elemen)m(t)d +(itself.)41 b(Use)31 b Fl('')f Fs(to)h(denote)g(the)g(ro)s(ot)f(elemen) m(t)i(itself.)42 b(\(as)31 b(in)f(the)g(example)h(b)s(elo)m(w.\))275 -3509 y(The)e(output)h(\014le)h(is)f(a)h(binary)f(\014le)g(with)g(the)h -(DER)f(enco)s(ding.)150 3644 y Fk(Usage:)94 b(asn1Coding)45 -b([options])g(file1)h(file2)198 3754 y(file1)g(:)i(file)e(with)h(ASN1)f -(definitions.)198 3863 y(file2)g(:)i(file)e(with)h(assignments.)150 -3973 y(Options:)198 4083 y(-h)g(:)g(shows)g(the)g(help)f(message.)198 -4192 y(-v)h(:)g(shows)g(version)f(information)e(and)j(exit.)198 -4302 y(-c)g(:)g(checks)f(the)h(syntax)f(only.)198 4411 -y(-o)h(file)g(:)g(output)f(file.)275 4547 y Fr(F)-8 b(or)31 +3512 y(The)e(output)h(\014le)h(is)f(a)h(binary)f(\014le)g(with)g(the)h +(DER)f(enco)s(ding.)150 3647 y Fl(Usage:)94 b(asn1Coding)45 +b([options])g(file1)h(file2)198 3756 y(file1)g(:)i(file)e(with)h(ASN1)f +(definitions.)198 3866 y(file2)g(:)i(file)e(with)h(assignments.)150 +3976 y(Options:)198 4085 y(-h)g(:)g(shows)g(the)g(help)f(message.)198 +4195 y(-v)h(:)g(shows)g(version)f(information)e(and)j(exit.)198 +4304 y(-c)g(:)g(checks)f(the)h(syntax)f(only.)198 4414 +y(-o)h(file)g(:)g(output)f(file.)275 4548 y Fs(F)-8 b(or)31 b(example,)g(consider)f(an)h(ASN.1)f(de\014nitions)g(\014le)h(as)f -(follo)m(ws:)150 4682 y Fk(MYPKIX1)46 b({)h(})150 4902 +(follo)m(ws:)150 4682 y Fl(MYPKIX1)46 b({)h(})150 4902 y(DEFINITIONS)e(IMPLICIT)g(TAGS)i(::=)150 5121 y(BEGIN)150 5340 y(OtherStruct)e(:=)i(SEQUENCE)e({)p eop end %%Page: 6 9 -TeXDict begin 6 8 bop 150 -116 a Fr(Chapter)30 b(3:)41 -b(Utilities)2776 b(6)389 299 y Fk(x)333 b(INTEGER,)389 +TeXDict begin 6 8 bop 150 -116 a Fs(Chapter)30 b(3:)41 +b(Utilities)2776 b(6)389 299 y Fl(x)333 b(INTEGER,)389 408 y(y)g(CHOICE)47 b({)580 518 y(y1)g(INTEGER,)580 628 y(y2)g(OCTET)f(STRING)g(},)150 737 y(})150 956 y(Dss-Sig-Value)e(::=)j (SEQUENCE)f({)389 1066 y(r)333 b(INTEGER,)389 1176 y(s)g(INTEGER,)389 1285 y(other)141 b(OtherStruct)389 1395 y(z)333 b(INTEGER)46 -b(OPTIONAL,)150 1504 y(})150 1724 y(END)275 1869 y Fr(And)29 +b(OPTIONAL,)150 1504 y(})150 1724 y(END)275 1868 y Fs(And)29 b(a)i(assignmen)m(ts)g(\014le)f(as)h(follo)m(ws:)150 -2014 y Fk(dp)47 b(MYPKIX1.Dss-Sig-Value)150 2233 y(r)g(42)150 -2343 y(s)g(47)150 2452 y(other.x)f(66)150 2562 y(other.y)g(y1)150 -2672 y(other.y.y1)f(15)150 2781 y(z)i(\(NULL\))275 2926 -y Fr(Running)32 b(the)h(command)h(b)s(elo)m(w)f(will)h(generate)h(a)f -Fk(assign.out)d Fr(\014le,)j(con)m(taining)h(the)f(DER)g(en-)150 -3036 y(co)s(ding)c(of)h Fk(PKIX1.Dss-Sig-Value)p Fr(.)150 -3181 y Fk($)47 b(asn1Coding)e(pkix.asn)h(assign.asn1)275 -3326 y Fr(If)38 b(the)h(ro)s(ot)h(elemen)m(t)g(is)f(of)h(the)f -Fk(CHOICE)e Fr(t)m(yp)s(e,)42 b(the)d(assignmen)m(t)h(\014le)f(ma)m(y)h -(b)s(e)e(lik)m(e)j(\(using)e(the)150 3436 y(t)m(yp)s(es)30 -b(de\014ned)g(in)g Fk(pkix.asn)p Fr(\):)150 3581 y Fk(elt)47 -b(PKIX1Implicit88.GeneralN)o(ame)150 3800 y('')286 b(dNSName)150 -3910 y(dNSName)46 b(example.org)150 4159 y Fq(3.3)68 -b(In)l(v)l(oking)46 b(asn1Deco)t(ding)150 4318 y Fk(asn1Decoding)20 -b Fr(generates)25 b(an)f(ASN.1)g(structure)g(from)f(a)h(\014le)g(with)f -(ASN.1)h(de\014nitions)f(and)h(a)g(binary)150 4428 y(\014le)30 -b(with)h(a)f(DER)h(enco)s(ding.)150 4573 y Fk(Usage:)94 +2012 y Fl(dp)47 b(MYPKIX1.Dss-Sig-Value)150 2231 y(r)g(42)150 +2341 y(s)g(47)150 2450 y(other.x)f(66)150 2560 y(other.y)g(y1)150 +2670 y(other.y.y1)f(15)150 2779 y(z)i(\(NULL\))275 2923 +y Fs(Running)32 b(the)h(command)h(b)s(elo)m(w)f(will)h(generate)h(a)f +Fl(assign.out)d Fs(\014le,)j(con)m(taining)h(the)f(DER)g(en-)150 +3033 y(co)s(ding)c(of)h Fl(PKIX1.Dss-Sig-Value)p Fs(.)150 +3177 y Fl($)47 b(asn1Coding)e(pkix.asn)h(assign.asn1)275 +3322 y Fs(If)38 b(the)h(ro)s(ot)h(elemen)m(t)g(is)f(of)h(the)f +Fl(CHOICE)e Fs(t)m(yp)s(e,)42 b(the)d(assignmen)m(t)h(\014le)f(ma)m(y)h +(b)s(e)e(lik)m(e)j(\(using)e(the)150 3431 y(t)m(yp)s(es)30 +b(de\014ned)g(in)g Fl(pkix.asn)p Fs(\):)150 3575 y Fl(elt)47 +b(PKIX1Implicit88.GeneralN)o(ame)150 3795 y('')286 b(dNSName)150 +3904 y(dNSName)46 b(example.org)150 4160 y Fr(3.3)68 +b(In)l(v)l(oking)46 b(asn1Deco)t(ding)150 4319 y Fl(asn1Decoding)20 +b Fs(generates)25 b(an)f(ASN.1)g(structure)g(from)f(a)h(\014le)g(with)f +(ASN.1)h(de\014nitions)f(and)h(a)g(binary)150 4429 y(\014le)30 +b(with)h(a)f(DER)h(enco)s(ding.)150 4573 y Fl(Usage:)94 b(asn1Decoding)44 b([options])i(file1)g(file2)g(type)198 4682 y(file1)g(:)i(file)e(with)h(ASN1)f(definitions.)198 4792 y(file2)g(:)i(binary)e(file)g(with)h(a)g(DER)g(encoding.)198 @@ -6441,271 +6442,270 @@ y(Options:)198 5121 y(-h)i(:)g(shows)g(the)g(help)f(message.)198 5230 y(-v)h(:)g(shows)g(version)f(information)e(and)j(exit.)198 5340 y(-o)g(file)g(:)g(output)f(file.)p eop end %%Page: 7 10 -TeXDict begin 7 9 bop 150 -116 a Fr(Chapter)30 b(3:)41 -b(Utilities)2776 b(7)275 299 y(F)-8 b(or)47 b(example,)52 -b(after)47 b(generating)h(the)f Fk(assign.out)d Fr(\014le)j(from)f(the) -h(example)g(section)h(of)f(the)150 408 y Fk(asn1Coding)28 -b Fr(command)i(ab)s(o)m(v)m(e,)i(the)e(follo)m(wing)i(in)m(v)m(o)s -(cation)g(will)f(deco)s(de)g(the)f(DER)h(data.)150 543 -y Fk($)47 b(asn1Decoding)e(pkix.asn)g(assign.out)g(PKIX1.Dss-Sig-Value) -p eop end +TeXDict begin 7 9 bop 3705 -116 a Fs(7)275 299 y(F)-8 +b(or)47 b(example,)52 b(after)47 b(generating)h(the)f +Fl(assign.out)d Fs(\014le)j(from)f(the)h(example)g(section)h(of)f(the) +150 408 y Fl(asn1Coding)28 b Fs(command)i(ab)s(o)m(v)m(e,)i(the)e +(follo)m(wing)i(in)m(v)m(o)s(cation)g(will)f(deco)s(de)g(the)f(DER)h +(data.)150 543 y Fl($)47 b(asn1Decoding)e(pkix.asn)g(assign.out)g +(PKIX1.Dss-Sig-Value)p eop end %%Page: 8 11 -TeXDict begin 8 10 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2359 b(8)150 299 y Fn(4)80 -b(F)-13 b(unction)52 b(reference)150 682 y Fq(4.1)68 -b(ASN.1)45 b(sc)l(hema)g(functions)150 906 y Fj(asn1)p -396 906 37 5 v 55 w(parser2tree)3350 1117 y Fr([F)-8 -b(unction])-3599 b Fi(int)53 b(asn1_parser2tree)e Fh(\()p -Fg(const)31 b(c)m(har)g(*)f Ff(file)p Fg(,)i(asn1)p 2238 -1117 28 4 v 40 w(no)s(de)e(*)h Ff(definitions)p Fg(,)565 -1227 y(c)m(har)g(*)g Ff(error_desc)p Fh(\))390 1336 y -Fg(\014le)5 b Fr(:)41 b(sp)s(ecify)30 b(the)g(path)h(and)e(the)i(name)f +TeXDict begin 8 10 bop 3705 -116 a Fs(8)150 299 y Fo(4)80 +b(F)-13 b(unction)52 b(reference)150 686 y Fr(4.1)68 +b(ASN.1)45 b(sc)l(hema)g(functions)150 911 y Fk(asn1)p +396 911 37 5 v 55 w(parser2tree)3350 1121 y Fs([F)-8 +b(unction])-3599 b Fj(int)53 b(asn1_parser2tree)e Fi(\()p +Fh(const)34 b(c)m(har)f(*)g Fg(file)p Fh(,)i(asn1)p 2311 +1121 30 5 v 44 w(no)s(de)e(*)565 1230 y Fg(definitions)p +Fh(,)j(c)m(har)e(*)f Fg(error_desc)p Fi(\))390 1340 y +Ff(\014le)5 b Fs(:)41 b(sp)s(ecify)30 b(the)g(path)h(and)e(the)i(name)f (of)h(\014le)f(that)h(con)m(tains)h(ASN.1)f(declarations.)390 -1485 y Fg(de\014nitions)t Fr(:)36 b(return)21 b(the)h(p)s(oin)m(ter)g -(to)g(the)g(structure)g(created)h(from)e Fk(")p Fr(\014le)p -Fk(")h Fr(ASN.1)g(declarations.)390 1634 y Fg(error)p -589 1634 V 40 w(desc)6 b Fr(:)40 b(return)29 b(the)i(error)f +1488 y Ff(de\014nitions)t Fs(:)36 b(return)21 b(the)h(p)s(oin)m(ter)g +(to)g(the)g(structure)g(created)h(from)e Fl(")p Fs(\014le)p +Fl(")h Fs(ASN.1)g(declarations.)390 1636 y Ff(error)p +589 1636 28 4 v 40 w(desc)6 b Fs(:)40 b(return)29 b(the)i(error)f (description)g(or)h(an)f(empt)m(y)h(string)f(if)g(success.)390 1784 y(F)-8 b(unction)28 b(used)f(to)i(start)f(the)g(parse)g (algorithm.)41 b(Creates)28 b(the)g(structures)f(needed)g(to)i(manage) -390 1893 y(the)i(de\014nitions)e(included)h(in)g Fk(file)f -Fr(\014le.)390 2042 y Fe(Returns:)39 b Fk(ASN1_SUCCESS)26 -b Fr(if)i(the)h(\014le)g(has)f(a)h(correct)g(syn)m(tax)h(and)e(ev)m -(ery)h(iden)m(ti\014er)g(is)f(kno)m(wn,)390 2152 y Fk -(ASN1_ELEMENT_NOT_EMPTY)35 b Fr(if)41 b Fk(definitions)c -Fr(not)k Fk(NULL)f Fr(,)k Fk(ASN1_FILE_NOT_FOUND)35 b -Fr(if)41 b(an)390 2261 y(error)32 b(o)s(ccured)g(while)g(op)s(ening)g -Fk(file)f Fr(,)h Fk(ASN1_SYNTAX_ERROR)c Fr(if)k(the)g(syn)m(tax)h(is)f -(not)h(correct,)390 2371 y Fk(ASN1_IDENTIFIER_NOT_FOUN)o(D)c -Fr(if)35 b(in)f(the)h(\014le)g(there)h(is)f(an)f(iden)m(ti\014er)h -(that)h(is)f(not)g(de\014ned,)390 2480 y Fk(ASN1_NAME_TOO_LONG)27 -b Fr(if)32 b(in)g(the)g(\014le)g(there)g(is)g(an)g(iden)m(ti\014er)g -(whith)g(more)g(than)f Fk(ASN1_MAX_)390 2590 y(NAME_SIZE)d -Fr(c)m(haracters.)150 2804 y Fj(asn1)p 396 2804 37 5 -v 55 w(parser2arra)m(y)3350 3015 y Fr([F)-8 b(unction])-3599 -b Fi(int)53 b(asn1_parser2array)e Fh(\()p Fg(const)31 -b(c)m(har)g(*)g Ff(inputFileName)p Fg(,)j(const)d(c)m(har)g(*)565 -3125 y Ff(outputFileName)p Fg(,)k(const)c(c)m(har)g(*)f -Ff(vectorName)p Fg(,)k(c)m(har)d(*)f Ff(error_desc)p -Fh(\))390 3234 y Fg(inputFileName)5 b Fr(:)49 b(sp)s(ecify)34 +390 1894 y(the)i(de\014nitions)e(included)h(in)g Fl(file)f +Fs(\014le.)390 2042 y Fe(Returns:)39 b Fl(ASN1_SUCCESS)26 +b Fs(if)i(the)h(\014le)g(has)f(a)h(correct)g(syn)m(tax)h(and)e(ev)m +(ery)h(iden)m(ti\014er)g(is)f(kno)m(wn,)390 2151 y Fl +(ASN1_ELEMENT_NOT_EMPTY)35 b Fs(if)41 b Fl(definitions)c +Fs(not)k Fl(NULL)f Fs(,)k Fl(ASN1_FILE_NOT_FOUND)35 b +Fs(if)41 b(an)390 2261 y(error)29 b(o)s(ccurred)f(while)i(op)s(ening)e +Fl(file)g Fs(,)i Fl(ASN1_SYNTAX_ERROR)24 b Fs(if)30 b(the)f(syn)m(tax)h +(is)f(not)h(correct,)390 2370 y Fl(ASN1_IDENTIFIER_NOT_FOUN)o(D)f +Fs(if)35 b(in)f(the)h(\014le)g(there)h(is)f(an)f(iden)m(ti\014er)h +(that)h(is)f(not)g(de\014ned,)390 2480 y Fl(ASN1_NAME_TOO_LONG)27 +b Fs(if)32 b(in)g(the)g(\014le)g(there)g(is)g(an)g(iden)m(ti\014er)g +(whith)g(more)g(than)f Fl(ASN1_MAX_)390 2590 y(NAME_SIZE)d +Fs(c)m(haracters.)150 2802 y Fk(asn1)p 396 2802 37 5 +v 55 w(parser2arra)m(y)3350 3013 y Fs([F)-8 b(unction])-3599 +b Fj(int)53 b(asn1_parser2array)e Fi(\()p Fh(const)34 +b(c)m(har)g(*)f Fg(inputFileName)p Fh(,)k(const)c(c)m(har)h(*)565 +3122 y Fg(outputFileName)p Fh(,)j(const)d(c)m(har)g(*)f +Fg(vectorName)p Fh(,)j(c)m(har)e(*)f Fg(error_desc)p +Fi(\))390 3232 y Ff(inputFileName)5 b Fs(:)49 b(sp)s(ecify)34 b(the)g(path)g(and)f(the)h(name)g(of)g(\014le)g(that)h(con)m(tains)g -(ASN.1)g(declara-)390 3344 y(tions.)390 3493 y Fg(outputFileName)5 -b Fr(:)41 b(sp)s(ecify)27 b(the)h(path)f(and)g(the)h(name)f(of)h +(ASN.1)g(declara-)390 3341 y(tions.)390 3489 y Ff(outputFileName)5 +b Fs(:)41 b(sp)s(ecify)27 b(the)h(path)f(and)g(the)h(name)f(of)h (\014le)g(that)g(will)g(con)m(tain)h(the)e(C)g(v)m(ector)390 -3603 y(de\014nition.)390 3752 y Fg(v)m(ectorName)5 b -Fr(:)43 b(sp)s(ecify)30 b(the)h(name)f(of)h(the)f(C)g(v)m(ector.)390 -3901 y Fg(error)p 589 3901 28 4 v 40 w(desc)6 b Fr(:)40 +3599 y(de\014nition.)390 3747 y Ff(v)m(ectorName)5 b +Fs(:)43 b(sp)s(ecify)30 b(the)h(name)f(of)h(the)f(C)g(v)m(ector.)390 +3895 y Ff(error)p 589 3895 28 4 v 40 w(desc)6 b Fs(:)40 b(return)29 b(the)i(error)f(description)g(or)h(an)f(empt)m(y)h(string)f -(if)g(success.)390 4050 y(F)-8 b(unction)42 b(that)g(generates)h(a)e(C) +(if)g(success.)390 4043 y(F)-8 b(unction)42 b(that)g(generates)h(a)e(C) g(structure)g(from)g(an)g(ASN1)h(\014le.)73 b(Creates)42 -b(a)g(\014le)f(con)m(tain-)390 4159 y(ing)k(a)h(C)f(v)m(ector)i(to)e +b(a)g(\014le)f(con)m(tain-)390 4152 y(ing)k(a)h(C)f(v)m(ector)i(to)e (use)g(to)h(manage)g(the)g(de\014nitions)f(included)f(in)h -Fk(inputFileName)d Fr(\014le.)390 4269 y(If)i Fk(inputFileName)e -Fr(is)i Fk(")p Fr(/aa/bb/xx.yy)p Fk(")i Fr(and)e Fk(outputFileName)d -Fr(is)k Fk(NULL)f Fr(,)k(the)d(\014le)g(cre-)390 4378 -y(ated)g(is)f Fk(")p Fr(/aa/bb/xx)p 1188 4378 V 41 w(asn1)p -1406 4378 V 40 w(tab.c)p Fk(")p Fr(.)83 b(If)43 b Fk(vectorName)f -Fr(is)i Fk(NULL)f Fr(the)h(v)m(ector)i(name)e(will)h(b)s(e)390 -4488 y Fk(")p Fr(xx)p 540 4488 V 40 w(asn1)p 757 4488 -V 40 w(tab)p Fk(")p Fr(.)390 4637 y Fe(Returns:)39 b -Fk(ASN1_SUCCESS)26 b Fr(if)i(the)h(\014le)g(has)f(a)h(correct)g(syn)m +Fl(inputFileName)d Fs(\014le.)390 4262 y(If)i Fl(inputFileName)e +Fs(is)i Fl(")p Fs(/aa/bb/xx.yy)p Fl(")i Fs(and)e Fl(outputFileName)d +Fs(is)k Fl(NULL)f Fs(,)k(the)d(\014le)g(cre-)390 4372 +y(ated)g(is)f Fl(")p Fs(/aa/bb/xx)p 1188 4372 V 41 w(asn1)p +1406 4372 V 40 w(tab.c)p Fl(")p Fs(.)83 b(If)43 b Fl(vectorName)f +Fs(is)i Fl(NULL)f Fs(the)h(v)m(ector)i(name)e(will)h(b)s(e)390 +4481 y Fl(")p Fs(xx)p 540 4481 V 40 w(asn1)p 757 4481 +V 40 w(tab)p Fl(")p Fs(.)390 4629 y Fe(Returns:)39 b +Fl(ASN1_SUCCESS)26 b Fs(if)i(the)h(\014le)g(has)f(a)h(correct)g(syn)m (tax)h(and)e(ev)m(ery)h(iden)m(ti\014er)g(is)f(kno)m(wn,)390 -4747 y Fk(ASN1_FILE_NOT_FOUND)39 b Fr(if)45 b(an)f(error)g(o)s(ccured)h -(while)f(op)s(ening)g Fk(inputFileName)d Fr(,)48 b Fk(ASN1_)390 -4856 y(SYNTAX_ERROR)23 b Fr(if)k(the)f(syn)m(tax)i(is)e(not)h(correct,) -i Fk(ASN1_IDENTIFIER_NOT_FOU)o(ND)20 b Fr(if)27 b(in)f(the)h(\014le)390 -4966 y(there)35 b(is)g(an)g(iden)m(ti\014er)g(that)g(is)g(not)g -(de\014ned,)g Fk(ASN1_NAME_TOO_LONG)30 b Fr(if)35 b(in)g(the)g(\014le)g -(there)g(is)390 5075 y(an)30 b(iden)m(ti\014er)h(whith)e(more)i(than)f -Fk(ASN1_MAX_NAME_SIZE)25 b Fr(c)m(haracters.)150 5330 -y Fq(4.2)68 b(ASN.1)45 b(\014eld)g(functions)p eop end +4739 y Fl(ASN1_FILE_NOT_FOUND)35 b Fs(if)41 b(an)g(error)f(o)s(ccurred) +g(while)h(op)s(ening)f Fl(inputFileName)d Fs(,)43 b Fl(ASN1_)390 +4848 y(SYNTAX_ERROR)23 b Fs(if)k(the)f(syn)m(tax)i(is)e(not)h(correct,) +i Fl(ASN1_IDENTIFIER_NOT_FOU)o(ND)20 b Fs(if)27 b(in)f(the)h(\014le)390 +4958 y(there)35 b(is)g(an)g(iden)m(ti\014er)g(that)g(is)g(not)g +(de\014ned,)g Fl(ASN1_NAME_TOO_LONG)30 b Fs(if)35 b(in)g(the)g(\014le)g +(there)g(is)390 5068 y(an)30 b(iden)m(ti\014er)h(whith)e(more)i(than)f +Fl(ASN1_MAX_NAME_SIZE)25 b Fs(c)m(haracters.)150 5329 +y Fr(4.2)68 b(ASN.1)45 b(\014eld)g(functions)p eop end %%Page: 9 12 -TeXDict begin 9 11 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2359 b(9)150 299 y Fj(asn1)p -396 299 37 5 v 55 w(arra)m(y2tree)3350 517 y Fr([F)-8 -b(unction])-3599 b Fi(int)53 b(asn1_array2tree)d Fh(\()p -Fg(const)31 b(asn1)p 1645 517 28 4 v 41 w(static)p 1902 -517 V 41 w(no)s(de)f(*)h Ff(array)p Fg(,)h(asn1)p 2733 -517 V 40 w(no)s(de)e(*)565 626 y Ff(definitions)p Fg(,)k(c)m(har)d(*)g -Ff(errorDescription)p Fh(\))390 736 y Fg(arra)m(y)8 b -Fr(:)41 b(sp)s(ecify)30 b(the)h(arra)m(y)f(that)h(con)m(tains)h(ASN.1)f -(declarations)390 891 y Fg(de\014nitions)t Fr(:)44 b(return)31 +TeXDict begin 9 11 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2359 b(9)150 299 y Fk(asn1)p +396 299 37 5 v 55 w(arra)m(y2tree)3350 517 y Fs([F)-8 +b(unction])-3599 b Fj(int)53 b(asn1_array2tree)d Fi(\()p +Fh(const)34 b(asn1)p 1686 517 30 5 v 44 w(static)p 1969 +517 V 44 w(no)s(de)g(*)f Fg(array)p Fh(,)h(asn1)p 2853 +517 V 44 w(no)s(de)g(*)565 626 y Fg(definitions)p Fh(,)i(c)m(har)e(*)f +Fg(errorDescription)p Fi(\))390 736 y Ff(arra)m(y)8 b +Fs(:)41 b(sp)s(ecify)30 b(the)h(arra)m(y)f(that)h(con)m(tains)h(ASN.1)f +(declarations)390 891 y Ff(de\014nitions)t Fs(:)44 b(return)31 b(the)h(p)s(oin)m(ter)h(to)g(the)f(structure)g(created)h(b)m(y)f(*ARRA) -8 b(Y)34 b(ASN.1)f(declara-)390 1001 y(tions)390 1156 -y Fg(errorDescription)p Fr(:)41 b(return)30 b(the)g(error)g +y Ff(errorDescription)p Fs(:)41 b(return)30 b(the)g(error)g (description.)390 1312 y(Creates)38 b(the)g(structures)f(needed)h(to)g -(manage)h(the)f(ASN.1)g(de\014nitions.)62 b Fk(array)36 -b Fr(is)i(a)g(v)m(ector)390 1421 y(created)31 b(b)m(y)g -Fk(asn1_parser2array\(\))25 b Fr(.)390 1577 y Fe(Returns:)37 -b Fk(ASN1_SUCCESS)20 b Fr(if)k(structure)f(w)m(as)h(created)h -(correctly)-8 b(,)27 b Fk(ASN1_ELEMENT_NOT_EMPTY)390 -1686 y Fr(if)34 b(*)g Fk(definitions)d Fr(not)j(NULL,)g -Fk(ASN1_IDENTIFIER_NOT_FOUND)27 b Fr(if)34 b(in)g(the)g(\014le)g(there) +(manage)h(the)f(ASN.1)g(de\014nitions.)62 b Fl(array)36 +b Fs(is)i(a)g(v)m(ector)390 1421 y(created)31 b(b)m(y)g +Fl(asn1_parser2array\(\))25 b Fs(.)390 1577 y Fe(Returns:)37 +b Fl(ASN1_SUCCESS)20 b Fs(if)k(structure)f(w)m(as)h(created)h +(correctly)-8 b(,)27 b Fl(ASN1_ELEMENT_NOT_EMPTY)390 +1686 y Fs(if)34 b(*)g Fl(definitions)d Fs(not)j(NULL,)g +Fl(ASN1_IDENTIFIER_NOT_FOUND)27 b Fs(if)34 b(in)g(the)g(\014le)g(there) g(is)g(an)390 1796 y(iden)m(ti\014er)k(that)h(is)f(not)h(de\014ned)e -(\(see)i Fk(errorDescription)34 b Fr(for)k(more)g(information\),)j -Fk(ASN1_)390 1906 y(ARRAY_ERROR)27 b Fr(if)k(the)f(arra)m(y)h(p)s(oin)m -(ted)f(b)m(y)h Fk(array)e Fr(is)h(wrong.)150 2126 y Fj(asn1)p +(\(see)i Fl(errorDescription)34 b Fs(for)k(more)g(information\),)j +Fl(ASN1_)390 1906 y(ARRAY_ERROR)27 b Fs(if)k(the)f(arra)m(y)h(p)s(oin)m +(ted)f(b)m(y)h Fl(array)e Fs(is)h(wrong.)150 2126 y Fk(asn1)p 396 2126 37 5 v 55 w(delete)p 769 2126 V 54 w(structure)3350 -2344 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_delete_structure)f -Fh(\()p Fg(asn1)p 1721 2344 28 4 v 41 w(no)s(de)29 b(*)i -Ff(structure)p Fh(\))390 2453 y Fg(structure)5 b Fr(:)40 +2344 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_delete_structure)f +Fi(\()p Fh(asn1)p 1739 2344 30 5 v 45 w(no)s(de)33 b(*)g +Fg(structure)p Fi(\))390 2453 y Ff(structure)5 b Fs(:)40 b(p)s(oin)m(ter)31 b(to)g(the)f(structure)g(that)h(y)m(ou)g(w)m(an)m(t) g(to)g(delete.)390 2609 y(Deletes)h(the)f(structure)f(*)h -Fk(structure)c Fr(.)41 b(A)m(t)31 b(the)g(end,)f(*)h -Fk(structure)d Fr(is)i(set)h(to)g(NULL.)390 2764 y Fe(Returns:)41 -b Fk(ASN1_SUCCESS)27 b Fr(if)k(successful,)g Fk(ASN1_ELEMENT_NOT_FOUND) -25 b Fr(if)30 b(*)h Fk(structure)e Fr(w)m(as)390 2874 -y(NULL.)150 3094 y Fj(asn1)p 396 3094 37 5 v 55 w(delete)p -769 3094 V 54 w(structure2)3350 3312 y Fr([F)-8 b(unction])-3599 -b Fi(int)53 b(asn1_delete_structure)q(2)e Fh(\()p Fg(asn1)p -1773 3312 28 4 v 41 w(no)s(de)30 b(*)g Ff(structure)p -Fg(,)k(unsigned)29 b(in)m(t)565 3421 y Ff(flags)p Fh(\))390 -3531 y Fg(structure)5 b Fr(:)40 b(p)s(oin)m(ter)31 b(to)g(the)f +Fl(structure)c Fs(.)41 b(A)m(t)31 b(the)g(end,)f(*)h +Fl(structure)d Fs(is)i(set)h(to)g(NULL.)390 2764 y Fe(Returns:)41 +b Fl(ASN1_SUCCESS)27 b Fs(if)k(successful,)g Fl(ASN1_ELEMENT_NOT_FOUND) +25 b Fs(if)30 b(*)h Fl(structure)e Fs(w)m(as)390 2874 +y(NULL.)150 3094 y Fk(asn1)p 396 3094 37 5 v 55 w(delete)p +769 3094 V 54 w(structure2)3350 3312 y Fs([F)-8 b(unction])-3599 +b Fj(int)53 b(asn1_delete_structure)q(2)e Fi(\()p Fh(asn1)p +1791 3312 30 5 v 45 w(no)s(de)34 b(*)f Fg(structure)p +Fh(,)i(unsigned)565 3421 y(in)m(t)e Fg(flags)p Fi(\))390 +3531 y Ff(structure)5 b Fs(:)40 b(p)s(oin)m(ter)31 b(to)g(the)f (structure)g(that)h(y)m(ou)g(w)m(an)m(t)g(to)g(delete.)390 -3686 y Fg(\015ags)t Fr(:)41 b(additional)31 b(\015ags)g(\(see)g -Fk(ASN1_DELETE_FLAG)26 b Fr(\))390 3842 y(Deletes)32 -b(the)f(structure)f(*)h Fk(structure)c Fr(.)41 b(A)m(t)31 -b(the)g(end,)f(*)h Fk(structure)d Fr(is)i(set)h(to)g(NULL.)390 -3997 y Fe(Returns:)41 b Fk(ASN1_SUCCESS)27 b Fr(if)k(successful,)g -Fk(ASN1_ELEMENT_NOT_FOUND)25 b Fr(if)30 b(*)h Fk(structure)e -Fr(w)m(as)390 4107 y(NULL.)150 4327 y Fj(asn1)p 396 4327 +3686 y Ff(\015ags)t Fs(:)41 b(additional)31 b(\015ags)g(\(see)g +Fl(ASN1_DELETE_FLAG)26 b Fs(\))390 3842 y(Deletes)32 +b(the)f(structure)f(*)h Fl(structure)c Fs(.)41 b(A)m(t)31 +b(the)g(end,)f(*)h Fl(structure)d Fs(is)i(set)h(to)g(NULL.)390 +3997 y Fe(Returns:)41 b Fl(ASN1_SUCCESS)27 b Fs(if)k(successful,)g +Fl(ASN1_ELEMENT_NOT_FOUND)25 b Fs(if)30 b(*)h Fl(structure)e +Fs(w)m(as)390 4107 y(NULL.)150 4327 y Fk(asn1)p 396 4327 37 5 v 55 w(delete)p 769 4327 V 54 w(elemen)m(t)3350 -4545 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_delete_element)e -Fh(\()p Fg(asn1)p 1616 4545 28 4 v 41 w(no)s(de)30 b -Ff(structure)p Fg(,)j(const)e(c)m(har)g(*)565 4654 y -Ff(element_name)p Fh(\))390 4764 y Fg(structure)5 b Fr(:)40 +4545 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_delete_element)e +Fi(\()p Fh(asn1)p 1634 4545 30 5 v 45 w(no)s(de)34 b +Fg(structure)p Fh(,)h(const)f(c)m(har)g(*)565 4654 y +Fg(element_name)p Fi(\))390 4764 y Ff(structure)5 b Fs(:)40 b(p)s(oin)m(ter)31 b(to)g(the)f(structure)g(that)h(con)m(tains)h(the)e (elemen)m(t)i(y)m(ou)f(w)m(an)m(t)g(to)g(delete.)390 -4919 y Fg(elemen)m(t)p 700 4919 V 42 w(name)5 b Fr(:)40 -b(elemen)m(t's)32 b(name)f(y)m(ou)g(w)m(an)m(t)g(to)g(delete.)390 -5075 y(Deletes)h(the)f(elemen)m(t)h(named)e(*)h Fk(element_name)c -Fr(inside)j(*)g Fk(structure)e Fr(.)390 5230 y Fe(Returns:)37 -b Fk(ASN1_SUCCESS)19 b Fr(if)k(successful,)i Fk(ASN1_ELEMENT_NOT_FOUND) -17 b Fr(if)23 b(the)g Fk(element_name)390 5340 y Fr(w)m(as)31 +4919 y Ff(elemen)m(t)p 700 4919 28 4 v 42 w(name)5 b +Fs(:)40 b(elemen)m(t's)32 b(name)f(y)m(ou)g(w)m(an)m(t)g(to)g(delete.) +390 5075 y(Deletes)h(the)f(elemen)m(t)h(named)e(*)h Fl(element_name)c +Fs(inside)j(*)g Fl(structure)e Fs(.)390 5230 y Fe(Returns:)37 +b Fl(ASN1_SUCCESS)19 b Fs(if)k(successful,)i Fl(ASN1_ELEMENT_NOT_FOUND) +17 b Fs(if)23 b(the)g Fl(element_name)390 5340 y Fs(w)m(as)31 b(not)f(found.)p eop end %%Page: 10 13 -TeXDict begin 10 12 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(10)150 299 y Fj(asn1)p +TeXDict begin 10 12 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(10)150 299 y Fk(asn1)p 396 299 37 5 v 55 w(create)p 776 299 V 53 w(elemen)m(t)3350 -492 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_create_element)e -Fh(\()p Fg(asn1)p 1616 492 28 4 v 41 w(no)s(de)30 b Ff(definitions)p -Fg(,)k(const)d(c)m(har)f(*)565 602 y Ff(source_name)p -Fg(,)k(asn1)p 1379 602 V 40 w(no)s(de)c(*)h Ff(element)p -Fh(\))390 712 y Fg(de\014nitions)t Fr(:)40 b(p)s(oin)m(ter)30 -b(to)h(the)g(structure)f(returned)f(b)m(y)h Fk(")p Fr(parser)p -2633 712 V 40 w(asn1)p Fk(")g Fr(function)390 845 y Fg(source)p -644 845 V 40 w(name)5 b Fr(:)39 b(the)25 b(name)g(of)g(the)h(t)m(yp)s -(e)f(of)h(the)f(new)g(structure)f(\(m)m(ust)i(b)s(e)e(inside)h(p)p -3296 845 V 40 w(structure\).)390 977 y Fg(elemen)m(t)r -Fr(:)42 b(p)s(oin)m(ter)31 b(to)g(the)f(structure)g(created.)390 -1110 y(Creates)h(a)g(structure)f(of)g(t)m(yp)s(e)h Fk(source_name)c -Fr(.)41 b(Example)30 b(using)g Fk(")p Fr(pkix.asn)p Fk(")p -Fr(:)390 1243 y(rc)g(=)g(asn1)p 780 1243 V 41 w(create)p -1057 1243 V 41 w(elemen)m(t\(cert)p 1588 1243 V 43 w(def,)g -Fk(")p Fr(PKIX1.Certi\014cate)p Fk(")p Fr(,)i(certptr\);)390 -1376 y Fe(Returns:)53 b Fk(ASN1_SUCCESS)34 b Fr(if)i(creation)i(OK,)f -Fk(ASN1_ELEMENT_NOT_FOUND)30 b Fr(if)37 b Fk(source_name)390 -1486 y Fr(is)30 b(not)h(kno)m(wn.)150 1682 y Fj(asn1)p +492 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_create_element)e +Fi(\()p Fh(asn1)p 1634 492 30 5 v 45 w(no)s(de)34 b Fg(definitions)p +Fh(,)i(const)e(c)m(har)f(*)565 602 y Fg(source_name)p +Fh(,)j(asn1)p 1402 602 V 44 w(no)s(de)e(*)f Fg(element)p +Fi(\))390 712 y Ff(de\014nitions)t Fs(:)40 b(p)s(oin)m(ter)30 +b(to)h(the)g(structure)f(returned)f(b)m(y)h Fl(")p Fs(parser)p +2633 712 28 4 v 40 w(asn1)p Fl(")g Fs(function)390 845 +y Ff(source)p 644 845 V 40 w(name)5 b Fs(:)39 b(the)25 +b(name)g(of)g(the)h(t)m(yp)s(e)f(of)h(the)f(new)g(structure)f(\(m)m +(ust)i(b)s(e)e(inside)h(p)p 3296 845 V 40 w(structure\).)390 +977 y Ff(elemen)m(t)r Fs(:)42 b(p)s(oin)m(ter)31 b(to)g(the)f +(structure)g(created.)390 1110 y(Creates)h(a)g(structure)f(of)g(t)m(yp) +s(e)h Fl(source_name)c Fs(.)41 b(Example)30 b(using)g +Fl(")p Fs(pkix.asn)p Fl(")p Fs(:)390 1243 y(rc)g(=)g(asn1)p +780 1243 V 41 w(create)p 1057 1243 V 41 w(elemen)m(t\(cert)p +1588 1243 V 43 w(def,)g Fl(")p Fs(PKIX1.Certi\014cate)p +Fl(")p Fs(,)i(certptr\);)390 1376 y Fe(Returns:)53 b +Fl(ASN1_SUCCESS)34 b Fs(if)i(creation)i(OK,)f Fl +(ASN1_ELEMENT_NOT_FOUND)30 b Fs(if)37 b Fl(source_name)390 +1486 y Fs(is)30 b(not)h(kno)m(wn.)150 1682 y Fk(asn1)p 396 1682 37 5 v 55 w(prin)m(t)p 716 1682 V 54 w(structure)3350 -1875 y Fr([F)-8 b(unction])-3599 b Fi(void)54 b(asn1_print_structure)d -Fh(\()p Fg(FILE)31 b(*)f Ff(out)p Fg(,)i(asn1)p 2251 -1875 28 4 v 40 w(no)s(de)e Ff(structure)p Fg(,)565 1985 -y(const)h(c)m(har)g(*)f Ff(name)p Fg(,)i(in)m(t)f Ff(mode)p -Fh(\))390 2095 y Fg(out)r Fr(:)41 b(p)s(oin)m(ter)30 +1875 y Fs([F)-8 b(unction])-3599 b Fj(void)54 b(asn1_print_structure)d +Fi(\()p Fh(FILE)34 b(*)f Fg(out)p Fh(,)g(asn1)p 2304 +1875 30 5 v 45 w(no)s(de)g Fg(structure)p Fh(,)565 1985 +y(const)h(c)m(har)g(*)f Fg(name)p Fh(,)h(in)m(t)f Fg(mode)p +Fi(\))390 2095 y Ff(out)r Fs(:)41 b(p)s(oin)m(ter)30 b(to)h(the)g(output)f(\014le)g(\(e.g.)43 b(stdout\).)390 -2228 y Fg(structure)5 b Fr(:)40 b(p)s(oin)m(ter)31 b(to)g(the)f +2228 y Ff(structure)5 b Fs(:)40 b(p)s(oin)m(ter)31 b(to)g(the)f (structure)g(that)h(y)m(ou)g(w)m(an)m(t)g(to)g(visit.)390 -2360 y Fg(name)5 b Fr(:)41 b(an)30 b(elemen)m(t)i(of)f(the)f(structure) -390 2493 y Fg(mo)s(de)5 b Fr(:)40 b(sp)s(ecify)30 b(ho)m(w)h(m)m(uc)m +2360 y Ff(name)5 b Fs(:)41 b(an)30 b(elemen)m(t)i(of)f(the)f(structure) +390 2493 y Ff(mo)s(de)5 b Fs(:)40 b(sp)s(ecify)30 b(ho)m(w)h(m)m(uc)m (h)f(of)h(the)f(structure)g(to)h(prin)m(t,)f(can)h(b)s(e)f -Fk(ASN1_PRINT_NAME)c Fr(,)k Fk(ASN1_)390 2603 y(PRINT_NAME_TYPE)c -Fr(,)31 b Fk(ASN1_PRINT_NAME_TYPE_VA)o(LUE)24 b Fr(,)31 -b(or)f Fk(ASN1_PRINT_ALL)c Fr(.)390 2736 y(Prin)m(ts)33 -b(on)g(the)g Fk(out)f Fr(\014le)h(descriptor)f(the)h(structure's)g -(tree)h(starting)f(from)g(the)g Fk(name)e Fr(elemen)m(t)390 -2845 y(inside)f(the)h(structure)f Fk(structure)d Fr(.)150 -3042 y Fj(asn1)p 396 3042 37 5 v 55 w(n)m(um)m(b)s(er)p +Fl(ASN1_PRINT_NAME)c Fs(,)k Fl(ASN1_)390 2603 y(PRINT_NAME_TYPE)c +Fs(,)31 b Fl(ASN1_PRINT_NAME_TYPE_VA)o(LUE)24 b Fs(,)31 +b(or)f Fl(ASN1_PRINT_ALL)c Fs(.)390 2736 y(Prin)m(ts)33 +b(on)g(the)g Fl(out)f Fs(\014le)h(descriptor)f(the)h(structure's)g +(tree)h(starting)f(from)g(the)g Fl(name)e Fs(elemen)m(t)390 +2845 y(inside)f(the)h(structure)f Fl(structure)d Fs(.)150 +3042 y Fk(asn1)p 396 3042 37 5 v 55 w(n)m(um)m(b)s(er)p 860 3042 V 54 w(of)p 1012 3042 V 55 w(elemen)m(ts)3350 -3235 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_number_of_elemen)q -(ts)f Fh(\()p Fg(asn1)p 1826 3235 28 4 v 40 w(no)s(de)30 -b Ff(element)p Fg(,)j(const)e(c)m(har)f(*)565 3345 y -Ff(name)p Fg(,)i(in)m(t)f(*)g Ff(num)p Fh(\))390 3454 -y Fg(elemen)m(t)r Fr(:)42 b(p)s(oin)m(ter)31 b(to)g(the)f(ro)s(ot)h(of) -f(an)h(ASN1)f(structure.)390 3587 y Fg(name)5 b Fr(:)41 +3235 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_number_of_elemen)q +(ts)f Fi(\()p Fh(asn1)p 1844 3235 30 5 v 44 w(no)s(de)34 +b Fg(element)p Fh(,)h(const)f(c)m(har)f(*)565 3345 y +Fg(name)p Fh(,)h(in)m(t)f(*)g Fg(num)p Fi(\))390 3454 +y Ff(elemen)m(t)r Fs(:)42 b(p)s(oin)m(ter)31 b(to)g(the)f(ro)s(ot)h(of) +f(an)h(ASN1)f(structure.)390 3587 y Ff(name)5 b Fs(:)41 b(the)30 b(name)h(of)f(a)h(sub-structure)e(of)i(R)m(OOT.)390 -3720 y Fg(n)m(um)p Fr(:)40 b(p)s(oin)m(ter)30 b(to)h(an)g(in)m(teger)g +3720 y Ff(n)m(um)p Fs(:)40 b(p)s(oin)m(ter)30 b(to)h(an)g(in)m(teger)g (where)f(the)h(result)f(will)h(b)s(e)f(stored)390 3853 y(Coun)m(ts)e(the)h(n)m(um)m(b)s(er)e(of)h(elemen)m(ts)i(of)f(a)f (sub-structure)f(called)j(NAME)f(with)f(names)g(equal)h(to)390 -3963 y Fk(")p Fr(?1)p Fk(")p Fr(,)p Fk(")p Fr(?2)p Fk(")p -Fr(,)h(...)390 4096 y Fe(Returns:)36 b Fk(ASN1_SUCCESS)18 -b Fr(if)k(successful,)h Fk(ASN1_ELEMENT_NOT_FOUND)15 -b Fr(if)22 b Fk(name)e Fr(is)h(not)h(kno)m(wn,)390 4205 -y Fk(ASN1_GENERIC_ERROR)j Fr(if)31 b(p)s(oin)m(ter)f -Fk(num)g Fr(is)g Fk(NULL)f Fr(.)150 4401 y Fj(asn1)p +3963 y Fl(")p Fs(?1)p Fl(")p Fs(,)p Fl(")p Fs(?2)p Fl(")p +Fs(,)h(...)390 4096 y Fe(Returns:)36 b Fl(ASN1_SUCCESS)18 +b Fs(if)k(successful,)h Fl(ASN1_ELEMENT_NOT_FOUND)15 +b Fs(if)22 b Fl(name)e Fs(is)h(not)h(kno)m(wn,)390 4205 +y Fl(ASN1_GENERIC_ERROR)j Fs(if)31 b(p)s(oin)m(ter)f +Fl(num)g Fs(is)g Fl(NULL)f Fs(.)150 4401 y Fk(asn1)p 396 4401 37 5 v 55 w(\014nd)p 655 4401 V 54 w(structure)p 1200 4401 V 54 w(from)p 1504 4401 V 55 w(oid)3350 4595 -y Fr([F)-8 b(unction])-3599 b Fi(const)54 b(char)f(*)g -(asn1_find_structure_fr)q(om_)q(oid)f Fh(\()p Fg(asn1)p -2558 4595 28 4 v 41 w(no)s(de)565 4704 y Ff(definitions)p -Fg(,)34 b(const)d(c)m(har)g(*)f Ff(oidValue)p Fh(\))390 -4814 y Fg(de\014nitions)t Fr(:)40 b(ASN1)31 b(de\014nitions)390 -4947 y Fg(oidV)-8 b(alue)5 b Fr(:)42 b(v)-5 b(alue)31 -b(of)g(the)f(OID)g(to)i(searc)m(h)f(\(e.g.)42 b Fk(")p -Fr(1.2.3.4)p Fk(")p Fr(\).)390 5080 y(Searc)m(h)31 b(the)f(structure)g +y Fs([F)-8 b(unction])-3599 b Fj(const)54 b(char)f(*)g +(asn1_find_structure_fr)q(om_)q(oid)f Fi(\()p Fh(asn1)p +2576 4595 30 5 v 44 w(no)s(de)565 4704 y Fg(definitions)p +Fh(,)36 b(const)e(c)m(har)g(*)f Fg(oidValue)p Fi(\))390 +4814 y Ff(de\014nitions)t Fs(:)40 b(ASN1)31 b(de\014nitions)390 +4947 y Ff(oidV)-8 b(alue)5 b Fs(:)42 b(v)-5 b(alue)31 +b(of)g(the)f(OID)g(to)i(searc)m(h)f(\(e.g.)42 b Fl(")p +Fs(1.2.3.4)p Fl(")p Fs(\).)390 5080 y(Searc)m(h)31 b(the)f(structure)g (that)h(is)g(de\014ned)e(just)g(after)i(an)g(OID)f(de\014nition.)390 -5213 y Fe(Returns:)41 b Fk(NULL)29 b Fr(when)h Fk(oidValue)e -Fr(not)j(found,)e(otherwise)i(the)g(p)s(oin)m(ter)g(to)g(a)g(constan)m +5213 y Fe(Returns:)41 b Fl(NULL)29 b Fs(when)h Fl(oidValue)e +Fs(not)j(found,)e(otherwise)i(the)g(p)s(oin)m(ter)g(to)g(a)g(constan)m (t)h(string)390 5322 y(that)f(con)m(tains)h(the)e(elemen)m(t)i(name)e (de\014ned)g(just)f(after)i(the)g(OID.)p eop end %%Page: 11 14 -TeXDict begin 11 13 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(11)150 299 y Fj(asn1)p +TeXDict begin 11 13 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(11)150 299 y Fk(asn1)p 396 299 37 5 v 55 w(cop)m(y)p 697 299 V 53 w(no)s(de)3350 -493 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_copy_node)d -Fh(\()p Fg(asn1)p 1355 493 28 4 v 41 w(no)s(de)29 b Ff(dst)p -Fg(,)j(const)f(c)m(har)f(*)h Ff(dst_name)p Fg(,)565 603 -y(asn1)p 748 603 V 40 w(no)s(de)f Ff(src)p Fg(,)i(const)e(c)m(har)h(*)g -Ff(src_name)p Fh(\))390 712 y Fg(dst)r Fr(:)40 b(Destination)32 -b(asn1)f(no)s(de.)390 845 y Fg(dst)p 518 845 V 40 w(name)5 -b Fr(:)41 b(Field)31 b(name)f(in)g(destination)h(no)s(de.)390 -979 y Fg(src)6 b Fr(:)40 b(Source)30 b(asn1)h(no)s(de.)390 -1112 y Fg(src)p 508 1112 V 40 w(name)5 b Fr(:)41 b(Field)31 +493 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_copy_node)d +Fi(\()p Fh(asn1)p 1373 493 30 5 v 44 w(no)s(de)34 b Fg(dst)p +Fh(,)g(const)g(c)m(har)g(*)f Fg(dst_name)p Fh(,)565 603 +y(asn1)p 766 603 V 44 w(no)s(de)h Fg(src)p Fh(,)g(const)f(c)m(har)h(*)f +Fg(src_name)p Fi(\))390 712 y Ff(dst)r Fs(:)40 b(Destination)32 +b(asn1)f(no)s(de.)390 845 y Ff(dst)p 518 845 28 4 v 40 +w(name)5 b Fs(:)41 b(Field)31 b(name)f(in)g(destination)h(no)s(de.)390 +979 y Ff(src)6 b Fs(:)40 b(Source)30 b(asn1)h(no)s(de.)390 +1112 y Ff(src)p 508 1112 V 40 w(name)5 b Fs(:)41 b(Field)31 b(name)f(in)g(source)h(no)s(de.)390 1245 y(Create)39 b(a)f(deep)g(cop)m(y)h(of)f(a)g(asn1)p 1591 1245 V 40 w(no)s(de)g(v)-5 b(ariable.)64 b(That)38 b(function)g(requires)f -Fk(dst)g Fr(to)i(b)s(e)e(ex-)390 1355 y(panded)29 b(using)h -Fk(asn1_create_element\(\))25 b Fr(.)390 1488 y Fe(Returns:)40 -b Fr(Return)30 b Fk(ASN1_SUCCESS)d Fr(on)j(success.)150 -1685 y Fj(asn1)p 396 1685 37 5 v 55 w(dup)p 655 1685 -V 54 w(no)s(de)3350 1879 y Fr([F)-8 b(unction])-3599 -b Fi(asn1_node)55 b(asn1_dup_node)49 b Fh(\()p Fg(asn1)p -1616 1879 28 4 v 41 w(no)s(de)30 b Ff(src)p Fg(,)h(const)g(c)m(har)g(*) -g Ff(src_name)p Fh(\))390 1988 y Fg(src)6 b Fr(:)40 b(Source)30 -b(asn1)h(no)s(de.)390 2122 y Fg(src)p 508 2122 V 40 w(name)5 -b Fr(:)41 b(Field)31 b(name)f(in)g(source)h(no)s(de.)390 +Fl(dst)g Fs(to)i(b)s(e)e(ex-)390 1355 y(panded)29 b(using)h +Fl(asn1_create_element\(\))25 b Fs(.)390 1488 y Fe(Returns:)40 +b Fs(Return)30 b Fl(ASN1_SUCCESS)d Fs(on)j(success.)150 +1685 y Fk(asn1)p 396 1685 37 5 v 55 w(dup)p 655 1685 +V 54 w(no)s(de)3350 1879 y Fs([F)-8 b(unction])-3599 +b Fj(asn1_node)55 b(asn1_dup_node)49 b Fi(\()p Fh(asn1)p +1634 1879 30 5 v 45 w(no)s(de)34 b Fg(src)p Fh(,)f(const)h(c)m(har)g(*) +f Fg(src_name)p Fi(\))390 1988 y Ff(src)6 b Fs(:)40 b(Source)30 +b(asn1)h(no)s(de.)390 2122 y Ff(src)p 508 2122 28 4 v +40 w(name)5 b Fs(:)41 b(Field)31 b(name)f(in)g(source)h(no)s(de.)390 2255 y(Create)h(a)f(deep)g(cop)m(y)h(of)g(a)f(asn1)p 1550 2255 V 40 w(no)s(de)g(v)-5 b(ariable.)44 b(This)30 b(function)h(will)g(return)f(an)i(exact)g(cop)m(y)390 2364 y(of)f(the)f(pro)m(vided)g(structure.)390 2498 y -Fe(Returns:)40 b Fr(Return)30 b Fk(NULL)f Fr(on)h(failure.)150 -2694 y Fj(asn1)p 396 2694 37 5 v 55 w(write)p 728 2694 -V 53 w(v)-7 b(alue)3350 2888 y Fr([F)f(unction])-3599 -b Fi(int)53 b(asn1_write_value)e Fh(\()p Fg(asn1)p 1460 -2888 28 4 v 40 w(no)s(de)30 b Ff(node_root)p Fg(,)j(const)e(c)m(har)g -(*)g Ff(name)p Fg(,)565 2998 y(const)g(v)m(oid)g(*)g -Ff(ivalue)p Fg(,)h(in)m(t)f Ff(len)p Fh(\))390 3108 y -Fg(no)s(de)p 586 3108 V 39 w(ro)s(ot)r Fr(:)41 b(p)s(oin)m(ter)31 -b(to)g(a)g(structure)390 3241 y Fg(name)5 b Fr(:)41 b(the)30 +Fe(Returns:)40 b Fs(Return)30 b Fl(NULL)f Fs(on)h(failure.)150 +2694 y Fk(asn1)p 396 2694 37 5 v 55 w(write)p 728 2694 +V 53 w(v)-7 b(alue)3350 2888 y Fs([F)f(unction])-3599 +b Fj(int)53 b(asn1_write_value)e Fi(\()p Fh(asn1)p 1478 +2888 30 5 v 44 w(no)s(de)34 b Fg(node_root)p Fh(,)h(const)f(c)m(har)g +(*)f Fg(name)p Fh(,)565 2998 y(const)h(v)m(oid)f(*)g +Fg(ivalue)p Fh(,)h(in)m(t)g Fg(len)p Fi(\))390 3108 y +Ff(no)s(de)p 586 3108 28 4 v 39 w(ro)s(ot)r Fs(:)41 b(p)s(oin)m(ter)31 +b(to)g(a)g(structure)390 3241 y Ff(name)5 b Fs(:)41 b(the)30 b(name)h(of)f(the)h(elemen)m(t)h(inside)e(the)g(structure)g(that)h(y)m -(ou)g(w)m(an)m(t)g(to)g(set.)390 3374 y Fg(iv)-5 b(alue)5 -b Fr(:)45 b(v)m(ector)34 b(used)e(to)h(sp)s(ecify)f(the)g(v)-5 -b(alue)33 b(to)g(set.)47 b(If)32 b(len)g(is)h Fk(>)p -Fr(0,)g(V)-10 b(ALUE)32 b(m)m(ust)g(b)s(e)g(a)g(t)m(w)m(o's)390 +(ou)g(w)m(an)m(t)g(to)g(set.)390 3374 y Ff(iv)-5 b(alue)5 +b Fs(:)45 b(v)m(ector)34 b(used)e(to)h(sp)s(ecify)f(the)g(v)-5 +b(alue)33 b(to)g(set.)47 b(If)32 b(len)g(is)h Fl(>)p +Fs(0,)g(V)-10 b(ALUE)32 b(m)m(ust)g(b)s(e)g(a)g(t)m(w)m(o's)390 3484 y(complemen)m(t)k(form)e(in)m(teger.)56 b(if)35 b(len=0)g(*V)-10 b(ALUE)35 b(m)m(ust)g(b)s(e)f(a)h(n)m(ull)g (terminated)g(string)g(with)390 3593 y(an)30 b(in)m(teger)i(v)-5 -b(alue.)390 3726 y Fg(len)p Fr(:)53 b(n)m(um)m(b)s(er)35 +b(alue.)390 3726 y Ff(len)p Fs(:)53 b(n)m(um)m(b)s(er)35 b(of)i(b)m(ytes)g(of)g(*v)-5 b(alue)38 b(to)f(use)f(to)h(set)h(the)e(v) -5 b(alue:)54 b(v)-5 b(alue[0]..v)g(alue[len-1])40 b(or)d(0)g(if)390 3836 y(v)-5 b(alue)31 b(is)f(a)h(n)m(ull)f(terminated)h(string)390 @@ -6713,937 +6713,949 @@ b(of)i(b)m(ytes)g(of)g(*v)-5 b(alue)38 b(to)f(use)f(to)h(set)h(the)e(v) h(structure.)390 4102 y(If)23 b(an)g(elemen)m(t)i(is)e(OPTIONAL)f(and)g (y)m(ou)i(w)m(an)m(t)g(to)g(delete)g(it,)i(y)m(ou)d(m)m(ust)g(use)g (the)h(v)-5 b(alue=NULL)390 4212 y(and)30 b(len=0.)41 -b(Using)30 b Fk(")p Fr(pkix.asn)p Fk(")p Fr(:)390 4345 +b(Using)30 b Fl(")p Fs(pkix.asn)p Fl(")p Fs(:)390 4345 y(result=asn1)p 867 4345 V 40 w(write)p 1109 4345 V 40 -w(v)-5 b(alue\(cert,)32 b Fk(")p Fr(tbsCerti\014cate.issuerUniqueID)p -Fk(")p Fr(,)f(NULL,)g(0\);)390 4478 y(Description)g(for)f(eac)m(h)i(t)m -(yp)s(e:)390 4612 y Fe(INTEGER:)f Fr(V)-10 b(ALUE)30 +w(v)-5 b(alue\(cert,)32 b Fl(")p Fs(tbsCerti\014cate.issuerUniqueID)p +Fl(")p Fs(,)f(NULL,)g(0\);)390 4478 y(Description)g(for)f(eac)m(h)i(t)m +(yp)s(e:)390 4612 y Fe(INTEGER:)f Fs(V)-10 b(ALUE)30 b(m)m(ust)g(con)m(tain)i(a)f(t)m(w)m(o's)h(complemen)m(t)f(form)f(in)m (teger.)390 4745 y(v)-5 b(alue[0]=0xFF)52 b(,)e(len=1)g(-)p -Fk(>)g Fr(in)m(teger=-1.)101 b(v)-5 b(alue[0]=0xFF)52 -b(v)-5 b(alue[1]=0xFF)52 b(,)e(len=2)g(-)p Fk(>)390 4854 -y Fr(in)m(teger=-1.)85 b(v)-5 b(alue[0]=0x01)46 b(,)i(len=1)d(-)p -Fk(>)f Fr(in)m(teger=)i(1.)83 b(v)-5 b(alue[0]=0x00)47 +Fl(>)g Fs(in)m(teger=-1.)101 b(v)-5 b(alue[0]=0xFF)52 +b(v)-5 b(alue[1]=0xFF)52 b(,)e(len=2)g(-)p Fl(>)390 4854 +y Fs(in)m(teger=-1.)85 b(v)-5 b(alue[0]=0x01)46 b(,)i(len=1)d(-)p +Fl(>)f Fs(in)m(teger=)i(1.)83 b(v)-5 b(alue[0]=0x00)47 b(v)-5 b(alue[1]=0x01)47 b(,)390 4964 y(len=2)31 b(-)p -Fk(>)f Fr(in)m(teger=)h(1.)42 b(v)-5 b(alue=)p Fk(")p -Fr(123)p Fk(")31 b Fr(,)f(len=0)h(-)p Fk(>)f Fr(in)m(teger=)i(123.)390 -5097 y Fe(ENUMERA)-8 b(TED:)30 b Fr(As)g(INTEGER)g(\(but)g(only)h(with) +Fl(>)f Fs(in)m(teger=)h(1.)42 b(v)-5 b(alue=)p Fl(")p +Fs(123)p Fl(")31 b Fs(,)f(len=0)h(-)p Fl(>)f Fs(in)m(teger=)i(123.)390 +5097 y Fe(ENUMERA)-8 b(TED:)30 b Fs(As)g(INTEGER)g(\(but)g(only)h(with) f(not)g(negativ)m(e)j(n)m(um)m(b)s(ers\).)390 5230 y -Fe(BOOLEAN:)g Fr(V)-10 b(ALUE)35 b(m)m(ust)f(b)s(e)f(the)i(n)m(ull)f -(terminated)g(string)h Fk(")p Fr(TR)m(UE)p Fk(")e Fr(or)h -Fk(")p Fr(F)-10 b(ALSE)p Fk(")34 b Fr(and)390 5340 y(LEN)c(!=)g(0.)p +Fe(BOOLEAN:)g Fs(V)-10 b(ALUE)35 b(m)m(ust)f(b)s(e)f(the)i(n)m(ull)f +(terminated)g(string)h Fl(")p Fs(TR)m(UE)p Fl(")e Fs(or)h +Fl(")p Fs(F)-10 b(ALSE)p Fl(")34 b Fs(and)390 5340 y(LEN)c(!=)g(0.)p eop end %%Page: 12 15 -TeXDict begin 12 14 bop 150 -116 a Fr(Chapter)30 b(4:)41 +TeXDict begin 12 14 bop 150 -116 a Fs(Chapter)30 b(4:)41 b(F)-8 b(unction)31 b(reference)2313 b(12)390 299 y(v)-5 -b(alue=)p Fk(")p Fr(TR)m(UE)p Fk(")88 b Fr(,)103 b(len=1)89 -b(-)p Fk(>)g Fr(b)s(o)s(olean=TR)m(UE.)f(v)-5 b(alue=)p -Fk(")p Fr(F)-10 b(ALSE)p Fk(")88 b Fr(,)103 b(len=1)89 -b(-)p Fk(>)390 408 y Fr(b)s(o)s(olean=F)-10 b(ALSE.)390 +b(alue=)p Fl(")p Fs(TR)m(UE)p Fl(")88 b Fs(,)103 b(len=1)89 +b(-)p Fl(>)g Fs(b)s(o)s(olean=TR)m(UE.)f(v)-5 b(alue=)p +Fl(")p Fs(F)-10 b(ALSE)p Fl(")88 b Fs(,)103 b(len=1)89 +b(-)p Fl(>)390 408 y Fs(b)s(o)s(olean=F)-10 b(ALSE.)390 538 y(OBJECT)26 b(IDENTIFIER:)h(V)-10 b(ALUE)27 b(m)m(ust)g(b)s(e)g(a)g (n)m(ull)g(terminated)h(string)f(with)g(eac)m(h)h(n)m(um)m(b)s(er)390 -648 y(separated)j(b)m(y)f(a)h(dot)f(\(e.g.)43 b Fk(")p -Fr(1.2.3.543.1)p Fk(")p Fr(\).)h(LEN)30 b(!=)h(0.)390 -777 y(v)-5 b(alue=)p Fk(")p Fr(1)31 b(2)f(840)i(10040)h(4)d(3)p -Fk(")h Fr(,)g(len=1)f(-)p Fk(>)g Fr(OID=dsa-with-sha.)390 -907 y Fe(UTCTime:)84 b Fr(V)-10 b(ALUE)53 b(m)m(ust)f(b)s(e)f(a)i(n)m +648 y(separated)j(b)m(y)f(a)h(dot)f(\(e.g.)43 b Fl(")p +Fs(1.2.3.543.1)p Fl(")p Fs(\).)h(LEN)30 b(!=)h(0.)390 +777 y(v)-5 b(alue=)p Fl(")p Fs(1)31 b(2)f(840)i(10040)h(4)d(3)p +Fl(")h Fs(,)g(len=1)f(-)p Fl(>)g Fs(OID=dsa-with-sha.)390 +907 y Fe(UTCTime:)84 b Fs(V)-10 b(ALUE)53 b(m)m(ust)f(b)s(e)f(a)i(n)m (ull)f(terminated)g(string)g(in)g(one)h(of)f(these)g(formats:)390 -1017 y Fk(")p Fr(YYMMDDhhmmssZ)p Fk(")p Fr(,)118 b Fk(")p -Fr(YYMMDDhhmmssZ)p Fk(")p Fr(,)g Fk(")p Fr(YYMMDDhhmmss)p -Fk(+)p Fr(hh'mm')p Fk(")p Fr(,)390 1126 y Fk(")p Fr -(YYMMDDhhmmss-hh'mm')p Fk(")p Fr(,)40 b Fk(")p Fr(YYMMDDhhmm)p -Fk(+)p Fr(hh'mm')p Fk(")p Fr(,)g(or)f Fk(")p Fr(YYMMDDhhmm-)390 -1236 y(hh'mm')p Fk(")p Fr(.)g(LEN)31 b(!=)f(0.)390 1365 -y(v)-5 b(alue=)p Fk(")p Fr(9801011200Z)p Fk(")43 b Fr(,)f(len=1)e(-)p -Fk(>)f Fr(time=Jann)m(uary)g(1st,)k(1998)e(at)f(12h)g(00m)g(Green)m +1017 y Fl(")p Fs(YYMMDDhhmmssZ)p Fl(")p Fs(,)118 b Fl(")p +Fs(YYMMDDhhmmssZ)p Fl(")p Fs(,)g Fl(")p Fs(YYMMDDhhmmss)p +Fl(+)p Fs(hh'mm')p Fl(")p Fs(,)390 1126 y Fl(")p Fs +(YYMMDDhhmmss-hh'mm')p Fl(")p Fs(,)40 b Fl(")p Fs(YYMMDDhhmm)p +Fl(+)p Fs(hh'mm')p Fl(")p Fs(,)g(or)f Fl(")p Fs(YYMMDDhhmm-)390 +1236 y(hh'mm')p Fl(")p Fs(.)g(LEN)31 b(!=)f(0.)390 1365 +y(v)-5 b(alue=)p Fl(")p Fs(9801011200Z)p Fl(")43 b Fs(,)f(len=1)e(-)p +Fl(>)f Fs(time=Jann)m(uary)g(1st,)k(1998)e(at)f(12h)g(00m)g(Green)m (wic)m(h)390 1475 y(Mean)31 b(Time)390 1605 y Fe(GeneralizedTime:)94 -b Fr(V)-10 b(ALUE)56 b(m)m(ust)f(b)s(e)h(in)f(one)h(of)g(this)g -(format:)92 b Fk(")p Fr(YYYYMMDDhh-)390 1714 y(mmss.sZ)p -Fk(")p Fr(,)185 b Fk(")p Fr(YYYYMMDDhhmmss.sZ)p Fk(")p -Fr(,)h Fk(")p Fr(YYYYMMDDhhmmss.s)p Fk(+)p Fr(hh'mm')p -Fk(")p Fr(,)390 1824 y Fk(")p Fr(YYYYMMDDhhmmss.s-hh'mm')p -Fk(")p Fr(,)279 b Fk(")p Fr(YYYYMMDDhhmm)p Fk(+)p Fr(hh'mm')p -Fk(")p Fr(,)g(or)390 1933 y Fk(")p Fr(YYYYMMDDhhmm-hh'mm')p -Fk(")36 b Fr(where)h(ss.s)f(indicates)i(the)f(seconds)f(with)h(an)m(y)g -(precision)390 2043 y(lik)m(e)32 b Fk(")p Fr(10.1)p Fk(")f -Fr(or)f Fk(")p Fr(01.02)p Fk(")p Fr(.)43 b(LEN)30 b(!=)g(0)390 -2172 y(v)-5 b(alue=)p Fk(")p Fr(2001010112001.1)q(2-0)q(70)q(0)p -Fk(")50 b Fr(,)e(len=1)c(-)p Fk(>)h Fr(time=Jann)m(uary)e(1st,)49 +b Fs(V)-10 b(ALUE)56 b(m)m(ust)f(b)s(e)h(in)f(one)h(of)g(this)g +(format:)92 b Fl(")p Fs(YYYYMMDDhh-)390 1714 y(mmss.sZ)p +Fl(")p Fs(,)185 b Fl(")p Fs(YYYYMMDDhhmmss.sZ)p Fl(")p +Fs(,)h Fl(")p Fs(YYYYMMDDhhmmss.s)p Fl(+)p Fs(hh'mm')p +Fl(")p Fs(,)390 1824 y Fl(")p Fs(YYYYMMDDhhmmss.s-hh'mm')p +Fl(")p Fs(,)279 b Fl(")p Fs(YYYYMMDDhhmm)p Fl(+)p Fs(hh'mm')p +Fl(")p Fs(,)g(or)390 1933 y Fl(")p Fs(YYYYMMDDhhmm-hh'mm')p +Fl(")36 b Fs(where)h(ss.s)f(indicates)i(the)f(seconds)f(with)h(an)m(y)g +(precision)390 2043 y(lik)m(e)32 b Fl(")p Fs(10.1)p Fl(")f +Fs(or)f Fl(")p Fs(01.02)p Fl(")p Fs(.)43 b(LEN)30 b(!=)g(0)390 +2172 y(v)-5 b(alue=)p Fl(")p Fs(2001010112001.1)q(2-0)q(70)q(0)p +Fl(")50 b Fs(,)e(len=1)c(-)p Fl(>)h Fs(time=Jann)m(uary)e(1st,)49 b(2001)d(at)f(12h)f(00m)390 2282 y(01.12s)32 b(P)m(aci\014c)g(Da)m (yligh)m(t)h(Time)390 2412 y(OCTET)22 b(STRING:)h(V)-10 b(ALUE)23 b(con)m(tains)h(the)g(o)s(ctet)g(string)g(and)e(LEN)h(is)h (the)f(n)m(um)m(b)s(er)f(of)h(o)s(ctets.)390 2541 y(v)-5 -b(alue=)p Fk(")p Fr($)p Fk(\\)p Fr(bac)m(kslash$x01$)p -Fk(\\)p Fr(bac)m(kslash$x02$)p Fk(\\)p Fr(bac)m(kslash$x03)q -Fk(")62 b Fr(,)g(len=3)57 b(-)p Fk(>)f Fr(three)g(b)m(ytes)390 +b(alue=)p Fl(")p Fs($)p Fl(\\)p Fs(bac)m(kslash$x01$)p +Fl(\\)p Fs(bac)m(kslash$x02$)p Fl(\\)p Fs(bac)m(kslash$x03)q +Fl(")62 b Fs(,)g(len=3)57 b(-)p Fl(>)f Fs(three)g(b)m(ytes)390 2651 y(o)s(ctet)32 b(string)390 2781 y Fe(GeneralString:)42 -b Fr(V)-10 b(ALUE)30 b(con)m(tains)h(the)g(generalstring)g(and)f(LEN)g +b Fs(V)-10 b(ALUE)30 b(con)m(tains)h(the)g(generalstring)g(and)f(LEN)g (is)g(the)g(n)m(um)m(b)s(er)f(of)h(o)s(ctets.)390 2910 -y(v)-5 b(alue=)p Fk(")p Fr($)p Fk(\\)p Fr(bac)m(kslash$x01$)p -Fk(\\)p Fr(bac)m(kslash$x02$)p Fk(\\)p Fr(bac)m(kslash$x03)q -Fk(")62 b Fr(,)g(len=3)57 b(-)p Fk(>)f Fr(three)g(b)m(ytes)390 +y(v)-5 b(alue=)p Fl(")p Fs($)p Fl(\\)p Fs(bac)m(kslash$x01$)p +Fl(\\)p Fs(bac)m(kslash$x02$)p Fl(\\)p Fs(bac)m(kslash$x03)q +Fl(")62 b Fs(,)g(len=3)57 b(-)p Fl(>)f Fs(three)g(b)m(ytes)390 3020 y(generalstring)390 3149 y(BIT)39 b(STRING:)g(V)-10 b(ALUE)39 b(con)m(tains)h(the)g(bit)f(string)g(organized)h(b)m(y)f(b)m (ytes)h(and)f(LEN)g(is)g(the)390 3259 y(n)m(um)m(b)s(er)29 -b(of)i(bits.)390 3389 y(v)-5 b(alue=)p Fk(")p Fr($)p -Fk(\\)p Fr(bac)m(kslash$xCF)p Fk(")31 b Fr(,)g(len=6)g(-)p -Fk(>)f Fr(bit)g(string=)p Fk(")p Fr(110011)p Fk(")j Fr(\(six)d(bits\)) -390 3518 y Fe(CHOICE:)f Fr(if)g(NAME)g(indicates)h(a)g(c)m(hoice)g(t)m +b(of)i(bits.)390 3389 y(v)-5 b(alue=)p Fl(")p Fs($)p +Fl(\\)p Fs(bac)m(kslash$xCF)p Fl(")31 b Fs(,)g(len=6)g(-)p +Fl(>)f Fs(bit)g(string=)p Fl(")p Fs(110011)p Fl(")j Fs(\(six)d(bits\)) +390 3518 y Fe(CHOICE:)f Fs(if)g(NAME)g(indicates)h(a)g(c)m(hoice)g(t)m (yp)s(e,)g(V)-10 b(ALUE)29 b(m)m(ust)g(sp)s(ecify)g(one)g(of)g(the)h (alterna-)390 3628 y(tiv)m(es)i(with)e(a)g(n)m(ull)h(terminated)g -(string.)40 b(LEN)31 b(!=)f(0.)41 b(Using)30 b Fk(")p -Fr(pkix.asn)p Fk("\\)p Fr(:)390 3757 y(result=asn1)p +(string.)40 b(LEN)31 b(!=)f(0.)41 b(Using)30 b Fl(")p +Fs(pkix.asn)p Fl("\\)p Fs(:)390 3757 y(result=asn1)p 867 3757 28 4 v 40 w(write)p 1109 3757 V 40 w(v)-5 b(alue\(cert,)74 -b Fk(")p Fr(certi\014cate1.tbsCerti\014cate.sub)5 b(ject)p -Fk(")p Fr(,)76 b Fk(")p Fr(rdnSequence)p Fk(")p Fr(,)390 -3867 y(1\);)390 3997 y Fe(ANY:)30 b Fr(V)-10 b(ALUE)31 +b Fl(")p Fs(certi\014cate1.tbsCerti\014cate.sub)5 b(ject)p +Fl(")p Fs(,)76 b Fl(")p Fs(rdnSequence)p Fl(")p Fs(,)390 +3867 y(1\);)390 3997 y Fe(ANY:)30 b Fs(V)-10 b(ALUE)31 b(indicates)g(the)f(der)g(enco)s(ding)h(of)f(a)h(structure.)40 b(LEN)30 b(!=)h(0.)390 4126 y(SEQUENCE)i(OF:)h(V)-10 b(ALUE)34 b(m)m(ust)g(b)s(e)g(the)g(n)m(ull)g(terminated)h(string)f -Fk(")p Fr(NEW)p Fk(")g Fr(and)f(LEN)h(!=)390 4236 y(0.)46 +Fl(")p Fs(NEW)p Fl(")g Fs(and)f(LEN)h(!=)390 4236 y(0.)46 b(With)32 b(this)g(instruction)g(another)g(elemen)m(t)i(is)e(app)s (ended)e(in)h(the)i(sequence.)45 b(The)32 b(name)g(of)390 -4345 y(this)e(elemen)m(t)i(will)f(b)s(e)f Fk(")p Fr(?1)p -Fk(")g Fr(if)g(it's)h(the)g(\014rst)e(one,)i Fk(")p Fr(?2)p -Fk(")f Fr(for)g(the)h(second)f(and)g(so)h(on.)390 4475 -y(Using)g Fk(")p Fr(pkix.asn)p Fk("\\)p Fr(:)390 4605 +4345 y(this)e(elemen)m(t)i(will)f(b)s(e)f Fl(")p Fs(?1)p +Fl(")g Fs(if)g(it's)h(the)g(\014rst)e(one,)i Fl(")p Fs(?2)p +Fl(")f Fs(for)g(the)h(second)f(and)g(so)h(on.)390 4475 +y(Using)g Fl(")p Fs(pkix.asn)p Fl("\\)p Fs(:)390 4605 y(result=asn1)p 867 4605 V 40 w(write)p 1109 4605 V 40 -w(v)-5 b(alue\(cert,)241 b Fk(")p Fr +w(v)-5 b(alue\(cert,)241 b Fl(")p Fs (certi\014cate1.tbsCerti\014cate.sub)5 b(ject.rdnSequence)p -Fk(")p Fr(,)390 4714 y Fk(")p Fr(NEW)p Fk(")p Fr(,)30 +Fl(")p Fs(,)390 4714 y Fl(")p Fs(NEW)p Fl(")p Fs(,)30 b(1\);)390 4844 y(SET)f(OF:)i(the)g(same)f(as)h(SEQUENCE)e(OF.)i(Using) -f Fk(")p Fr(pkix.asn)p Fk(")p Fr(:)390 4973 y(result=asn1)p +f Fl(")p Fs(pkix.asn)p Fl(")p Fs(:)390 4973 y(result=asn1)p 867 4973 V 40 w(write)p 1109 4973 V 40 w(v)-5 b(alue\(cert,)25 -b Fk(")p Fr(tbsCerti\014cate.sub)5 b(ject.rdnSequence.?LAST)p -Fk(")p Fr(,)22 b Fk(")p Fr(NEW)p Fk(")p Fr(,)390 5083 -y(1\);)390 5213 y Fe(Returns:)38 b Fk(ASN1_SUCCESS)21 -b Fr(if)k(the)g(v)-5 b(alue)26 b(w)m(as)f(set,)i Fk -(ASN1_ELEMENT_NOT_FOUND)19 b Fr(if)25 b Fk(name)f Fr(is)h(not)390 -5322 y(a)31 b(v)-5 b(alid)30 b(elemen)m(t,)j(and)c Fk -(ASN1_VALUE_NOT_VALID)c Fr(if)31 b Fk(ivalue)d Fr(has)i(a)h(wrong)f +b Fl(")p Fs(tbsCerti\014cate.sub)5 b(ject.rdnSequence.?LAST)p +Fl(")p Fs(,)22 b Fl(")p Fs(NEW)p Fl(")p Fs(,)390 5083 +y(1\);)390 5213 y Fe(Returns:)38 b Fl(ASN1_SUCCESS)21 +b Fs(if)k(the)g(v)-5 b(alue)26 b(w)m(as)f(set,)i Fl +(ASN1_ELEMENT_NOT_FOUND)19 b Fs(if)25 b Fl(name)f Fs(is)h(not)390 +5322 y(a)31 b(v)-5 b(alid)30 b(elemen)m(t,)j(and)c Fl +(ASN1_VALUE_NOT_VALID)c Fs(if)31 b Fl(ivalue)d Fs(has)i(a)h(wrong)f (format.)p eop end %%Page: 13 16 -TeXDict begin 13 15 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(13)150 299 y Fj(asn1)p +TeXDict begin 13 15 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(13)150 299 y Fk(asn1)p 396 299 37 5 v 55 w(read)p 685 299 V 54 w(v)-7 b(alue)3350 -493 y Fr([F)f(unction])-3599 b Fi(int)53 b(asn1_read_value)d -Fh(\()p Fg(asn1)p 1407 493 28 4 v 41 w(no)s(de)30 b Ff(root)p -Fg(,)h(const)g(c)m(har)g(*)g Ff(name)p Fg(,)g(v)m(oid)g(*)565 -602 y Ff(ivalue)p Fg(,)h(in)m(t)f(*)g Ff(len)p Fh(\))390 -712 y Fg(ro)s(ot)r Fr(:)41 b(p)s(oin)m(ter)30 b(to)i(a)e(structure.)390 -845 y Fg(name)5 b Fr(:)41 b(the)30 b(name)h(of)f(the)h(elemen)m(t)h +494 y Fs([F)f(unction])-3599 b Fj(int)53 b(asn1_read_value)d +Fi(\()p Fh(asn1)p 1425 494 30 5 v 45 w(no)s(de)33 b Fg(root)p +Fh(,)i(const)e(c)m(har)h(*)f Fg(name)p Fh(,)h(v)m(oid)f(*)565 +604 y Fg(ivalue)p Fh(,)i(in)m(t)e(*)g Fg(len)p Fi(\))390 +714 y Ff(ro)s(ot)r Fs(:)41 b(p)s(oin)m(ter)30 b(to)i(a)e(structure.)390 +848 y Ff(name)5 b Fs(:)41 b(the)30 b(name)h(of)f(the)h(elemen)m(t)h (inside)e(a)h(structure)f(that)h(y)m(ou)f(w)m(an)m(t)h(to)h(read.)390 -978 y Fg(iv)-5 b(alue)5 b Fr(:)45 b(v)m(ector)34 b(that)e(will)h(con)m +981 y Ff(iv)-5 b(alue)5 b Fs(:)45 b(v)m(ector)34 b(that)e(will)h(con)m (tain)g(the)g(elemen)m(t's)g(con)m(ten)m(t,)i(m)m(ust)d(b)s(e)g(a)g(p)s -(oin)m(ter)g(to)h(memory)390 1088 y(cells)e(already)g(allo)s(cated)i -(\(ma)m(y)e(b)s(e)f Fk(NULL)f Fr(\).)390 1221 y Fg(len)p -Fr(:)41 b(n)m(um)m(b)s(er)29 b(of)h(b)m(ytes)h(of)g(*v)-5 +(oin)m(ter)g(to)h(memory)390 1091 y(cells)e(already)g(allo)s(cated)i +(\(ma)m(y)e(b)s(e)f Fl(NULL)f Fs(\).)390 1225 y Ff(len)p +Fs(:)41 b(n)m(um)m(b)s(er)29 b(of)h(b)m(ytes)h(of)g(*v)-5 b(alue:)41 b(v)-5 b(alue[0]..v)g(alue[len-1].)45 b(Initialy)31 -b(holds)f(the)h(sizeof)g(v)-5 b(alue.)390 1354 y(Returns)25 +b(holds)f(the)h(sizeof)g(v)-5 b(alue.)390 1359 y(Returns)25 b(the)h(v)-5 b(alue)27 b(of)f(one)g(elemen)m(t)i(inside)d(a)i (structure.)39 b(If)25 b(an)h(elemen)m(t)i(is)e(OPTIONAL)f(and)390 -1463 y(this)j(returns)f Fk(ASN1_ELEMENT_NOT_FOUND)22 -b Fr(,)29 b(it)f(means)g(that)h(this)f(elemen)m(t)i(w)m(asn't)e(presen) -m(t)g(in)390 1573 y(the)j(der)e(enco)s(ding)i(that)g(created)g(the)f +1468 y(this)j(returns)f Fl(ASN1_ELEMENT_NOT_FOUND)22 +b Fs(,)29 b(it)f(means)g(that)h(this)f(elemen)m(t)i(w)m(asn't)e(presen) +m(t)g(in)390 1578 y(the)j(der)e(enco)s(ding)i(that)g(created)g(the)f (structure.)41 b(The)29 b(\014rst)h(elemen)m(t)i(of)e(a)h(SEQUENCE)p -3587 1573 V 39 w(OF)390 1683 y(or)c(SET)p 683 1683 V -39 w(OF)g(is)g(named)f Fk(")p Fr(?1)p Fk(")p Fr(.)40 -b(The)26 b(second)h(one)g Fk(")p Fr(?2)p Fk(")g Fr(and)f(so)h(on.)40 -b(If)26 b(the)h Fk(root)f Fr(pro)m(vided)h(is)g(a)390 -1792 y(no)s(de)c(to)i(sp)s(eci\014c)f(sequence)h(elemen)m(t,)i(then)d -(the)g(k)m(eyw)m(ord)h Fk(")p Fr(?CURRENT)p Fk(")e Fr(is)h(also)h -(acceptable)390 1902 y(and)30 b(indicates)h(the)g(curren)m(t)f -(sequence)h(elemen)m(t)g(of)g(this)f(no)s(de.)390 2035 +3587 1578 28 4 v 39 w(OF)390 1688 y(or)c(SET)p 683 1688 +V 39 w(OF)g(is)g(named)f Fl(")p Fs(?1)p Fl(")p Fs(.)40 +b(The)26 b(second)h(one)g Fl(")p Fs(?2)p Fl(")g Fs(and)f(so)h(on.)40 +b(If)26 b(the)h Fl(root)f Fs(pro)m(vided)h(is)g(a)390 +1797 y(no)s(de)c(to)i(sp)s(eci\014c)f(sequence)h(elemen)m(t,)i(then)d +(the)g(k)m(eyw)m(ord)h Fl(")p Fs(?CURRENT)p Fl(")e Fs(is)h(also)h +(acceptable)390 1907 y(and)30 b(indicates)h(the)g(curren)m(t)f +(sequence)h(elemen)m(t)g(of)g(this)f(no)s(de.)390 2041 y(Note)i(that)f(there)g(can)g(b)s(e)f(v)-5 b(alid)31 b(v)-5 b(alues)31 b(with)f(length)h(zero.)42 b(In)30 -b(these)h(case)h(this)e(function)h(will)390 2144 y(succeed)g(and)f -Fk(len)f Fr(will)i(b)s(e)e(zero.)390 2277 y Fe(INTEGER:)i -Fr(V)-10 b(ALUE)30 b(will)h(con)m(tain)h(a)e(t)m(w)m(o's)i(complemen)m -(t)g(form)e(in)m(teger.)390 2410 y(in)m(teger=-1)i(-)p -Fk(>)f Fr(v)-5 b(alue[0]=0xFF)32 b(,)f(len=1.)41 b(in)m(teger=1)32 -b(-)p Fk(>)e Fr(v)-5 b(alue[0]=0x01)33 b(,)d(len=1.)390 -2544 y Fe(ENUMERA)-8 b(TED:)30 b Fr(As)g(INTEGER)g(\(but)g(only)h(with) -f(not)g(negativ)m(e)j(n)m(um)m(b)s(ers\).)390 2677 y -Fe(BOOLEAN:)38 b Fr(V)-10 b(ALUE)39 b(will)h(b)s(e)e(the)h(n)m(ull)g -(terminated)h(string)f Fk(")p Fr(TR)m(UE)p Fk(")f Fr(or)h -Fk(")p Fr(F)-10 b(ALSE)p Fk(")39 b Fr(and)390 2786 y(LEN=5)30 -b(or)h(LEN=6.)390 2919 y(OBJECT)g(IDENTIFIER:)h(V)-10 +b(these)h(case)h(this)e(function)h(will)390 2150 y(succeed)g(and)f +Fl(len)f Fs(will)i(b)s(e)e(zero.)390 2284 y Fe(INTEGER:)i +Fs(V)-10 b(ALUE)30 b(will)h(con)m(tain)h(a)e(t)m(w)m(o's)i(complemen)m +(t)g(form)e(in)m(teger.)390 2418 y(in)m(teger=-1)i(-)p +Fl(>)f Fs(v)-5 b(alue[0]=0xFF)32 b(,)f(len=1.)41 b(in)m(teger=1)32 +b(-)p Fl(>)e Fs(v)-5 b(alue[0]=0x01)33 b(,)d(len=1.)390 +2552 y Fe(ENUMERA)-8 b(TED:)30 b Fs(As)g(INTEGER)g(\(but)g(only)h(with) +f(not)g(negativ)m(e)j(n)m(um)m(b)s(ers\).)390 2686 y +Fe(BOOLEAN:)38 b Fs(V)-10 b(ALUE)39 b(will)h(b)s(e)e(the)h(n)m(ull)g +(terminated)h(string)f Fl(")p Fs(TR)m(UE)p Fl(")f Fs(or)h +Fl(")p Fs(F)-10 b(ALSE)p Fl(")39 b Fs(and)390 2795 y(LEN=5)30 +b(or)h(LEN=6.)390 2929 y(OBJECT)g(IDENTIFIER:)h(V)-10 b(ALUE)32 b(will)g(b)s(e)g(a)g(n)m(ull)g(terminated)g(string)g(with)g -(eac)m(h)h(n)m(um)m(b)s(er)390 3029 y(separated)e(b)m(y)f(a)h(dot)f -(\(i.e.)42 b Fk(")p Fr(1.2.3.543.1)p Fk(")p Fr(\).)390 -3162 y(LEN)30 b(=)g(strlen\(V)-10 b(ALUE\))p Fk(+)p Fr(1)390 -3295 y Fe(UTCTime:)41 b Fr(V)-10 b(ALUE)30 b(will)h(b)s(e)e(a)i(n)m +(eac)m(h)h(n)m(um)m(b)s(er)390 3039 y(separated)e(b)m(y)f(a)h(dot)f +(\(i.e.)42 b Fl(")p Fs(1.2.3.543.1)p Fl(")p Fs(\).)390 +3173 y(LEN)30 b(=)g(strlen\(V)-10 b(ALUE\))p Fl(+)p Fs(1)390 +3307 y Fe(UTCTime:)41 b Fs(V)-10 b(ALUE)30 b(will)h(b)s(e)e(a)i(n)m (ull)f(terminated)h(string)f(in)g(one)g(of)h(these)f(formats:)41 -b Fk(")p Fr(YYM-)390 3405 y(MDDhhmmss)p Fk(+)p Fr(hh'mm')p -Fk(")28 b Fr(or)j Fk(")p Fr(YYMMDDhhmmss-hh'mm')p Fk(")p -Fr(.)39 b(LEN=strlen\(V)-10 b(ALUE\))p Fk(+)p Fr(1.)390 -3538 y Fe(GeneralizedTime:)48 b Fr(V)-10 b(ALUE)33 b(will)g(b)s(e)g(a)g +b Fl(")p Fs(YYM-)390 3416 y(MDDhhmmss)p Fl(+)p Fs(hh'mm')p +Fl(")28 b Fs(or)j Fl(")p Fs(YYMMDDhhmmss-hh'mm')p Fl(")p +Fs(.)39 b(LEN=strlen\(V)-10 b(ALUE\))p Fl(+)p Fs(1.)390 +3550 y Fe(GeneralizedTime:)48 b Fs(V)-10 b(ALUE)33 b(will)g(b)s(e)g(a)g (n)m(ull)g(terminated)g(string)g(in)g(the)g(same)g(format)h(used)390 -3647 y(to)d(set)g(the)g(v)-5 b(alue.)390 3780 y(OCTET)26 +3660 y(to)d(set)g(the)g(v)-5 b(alue.)390 3794 y(OCTET)26 b(STRING:)h(V)-10 b(ALUE)27 b(will)h(con)m(tain)h(the)f(o)s(ctet)h (string)e(and)g(LEN)g(will)h(b)s(e)f(the)g(n)m(um)m(b)s(er)390 -3890 y(of)k(o)s(ctets.)390 4023 y Fe(GeneralString:)51 -b Fr(V)-10 b(ALUE)34 b(will)i(con)m(tain)g(the)f(generalstring)g(and)g -(LEN)f(will)h(b)s(e)f(the)h(n)m(um)m(b)s(er)390 4133 -y(of)c(o)s(ctets.)390 4266 y(BIT)j(STRING:)h(V)-10 b(ALUE)34 +3903 y(of)k(o)s(ctets.)390 4037 y Fe(GeneralString:)51 +b Fs(V)-10 b(ALUE)34 b(will)i(con)m(tain)g(the)f(generalstring)g(and)g +(LEN)f(will)h(b)s(e)f(the)h(n)m(um)m(b)s(er)390 4147 +y(of)c(o)s(ctets.)390 4281 y(BIT)j(STRING:)h(V)-10 b(ALUE)34 b(will)h(con)m(tain)h(the)f(bit)g(string)f(organized)i(b)m(y)e(b)m -(ytes)h(and)f(LEN)h(will)390 4375 y(b)s(e)30 b(the)g(n)m(um)m(b)s(er)f -(of)i(bits.)390 4508 y Fe(CHOICE:)j Fr(If)f(NAME)i(indicates)g(a)g(c)m +(ytes)h(and)f(LEN)h(will)390 4390 y(b)s(e)30 b(the)g(n)m(um)m(b)s(er)f +(of)i(bits.)390 4524 y Fe(CHOICE:)j Fs(If)f(NAME)i(indicates)g(a)g(c)m (hoice)h(t)m(yp)s(e,)f(V)-10 b(ALUE)34 b(will)h(sp)s(ecify)f(the)g -(alternativ)m(e)i(se-)390 4618 y(lected.)390 4751 y Fe(ANY:)h -Fr(If)f(NAME)i(indicates)g(an)f(an)m(y)g(t)m(yp)s(e,)i(V)-10 +(alternativ)m(e)i(se-)390 4634 y(lected.)390 4768 y Fe(ANY:)h +Fs(If)f(NAME)i(indicates)g(an)f(an)m(y)g(t)m(yp)s(e,)i(V)-10 b(ALUE)37 b(will)g(indicate)h(the)g(DER)f(enco)s(ding)g(of)390 -4860 y(the)31 b(structure)e(actually)j(used.)390 4994 -y Fe(Returns:)64 b Fk(ASN1_SUCCESS)38 b Fr(if)k(v)-5 -b(alue)42 b(is)g(returned,)i Fk(ASN1_ELEMENT_NOT_FOUND)36 -b Fr(if)42 b Fk(name)f Fr(is)390 5103 y(not)33 b(a)g(v)-5 -b(alid)34 b(elemen)m(t,)h Fk(ASN1_VALUE_NOT_FOUND)27 -b Fr(if)33 b(there)g(isn't)g(an)m(y)g(v)-5 b(alue)34 -b(for)e(the)h(elemen)m(t)390 5213 y(selected,)28 b(and)d -Fk(ASN1_MEM_ERROR)c Fr(if)26 b(The)f(v)-5 b(alue)26 b(v)m(ector)h +4877 y(the)31 b(structure)e(actually)j(used.)390 5011 +y Fe(Returns:)64 b Fl(ASN1_SUCCESS)38 b Fs(if)k(v)-5 +b(alue)42 b(is)g(returned,)i Fl(ASN1_ELEMENT_NOT_FOUND)36 +b Fs(if)42 b Fl(name)f Fs(is)390 5121 y(not)33 b(a)g(v)-5 +b(alid)34 b(elemen)m(t,)h Fl(ASN1_VALUE_NOT_FOUND)27 +b Fs(if)33 b(there)g(isn't)g(an)m(y)g(v)-5 b(alue)34 +b(for)e(the)h(elemen)m(t)390 5230 y(selected,)28 b(and)d +Fl(ASN1_MEM_ERROR)c Fs(if)26 b(The)f(v)-5 b(alue)26 b(v)m(ector)h (isn't)e(big)h(enough)f(to)h(store)g(the)g(result,)390 -5322 y(and)k(in)g(this)g(case)i Fk(len)d Fr(will)i(con)m(tain)g(the)g -(n)m(um)m(b)s(er)e(of)i(b)m(ytes)f(needed.)p eop end +5340 y(and)32 b(in)g(this)h(case)g Fl(len)f Fs(will)h(con)m(tain)h(the) +f(n)m(um)m(b)s(er)e(of)i(b)m(ytes)g(needed.)47 b(On)32 +b(the)g(o)s(ccasion)i(that)p eop end %%Page: 14 17 -TeXDict begin 14 16 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(14)150 299 y Fj(asn1)p -396 299 37 5 v 55 w(read)p 685 299 V 54 w(v)-7 b(alue)p -1015 299 V 53 w(t)m(yp)s(e)3350 481 y Fr([F)f(unction])-3599 -b Fi(int)53 b(asn1_read_value_type)f Fh(\()p Fg(asn1)p -1669 481 28 4 v 40 w(no)s(de)29 b Ff(root)p Fg(,)i(const)e(c)m(har)h(*) -f Ff(name)p Fg(,)i(v)m(oid)f(*)565 590 y Ff(ivalue)p -Fg(,)i(in)m(t)f(*)g Ff(len)p Fg(,)h(unsigned)d(in)m(t)i(*)g -Ff(etype)p Fh(\))390 700 y Fg(ro)s(ot)r Fr(:)41 b(p)s(oin)m(ter)30 -b(to)i(a)e(structure.)390 827 y Fg(name)5 b Fr(:)41 b(the)30 -b(name)h(of)f(the)h(elemen)m(t)h(inside)e(a)h(structure)f(that)h(y)m -(ou)f(w)m(an)m(t)h(to)h(read.)390 954 y Fg(iv)-5 b(alue)5 -b Fr(:)45 b(v)m(ector)34 b(that)e(will)h(con)m(tain)g(the)g(elemen)m -(t's)g(con)m(ten)m(t,)i(m)m(ust)d(b)s(e)g(a)g(p)s(oin)m(ter)g(to)h -(memory)390 1063 y(cells)e(already)g(allo)s(cated)i(\(ma)m(y)e(b)s(e)f -Fk(NULL)f Fr(\).)390 1190 y Fg(len)p Fr(:)41 b(n)m(um)m(b)s(er)29 +TeXDict begin 14 16 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(14)390 299 y(the)28 +b(stored)g(data)h(are)f(of)h(zero-length)g(this)f(function)g(ma)m(y)g +(return)f Fl(ASN1_SUCCESS)e Fs(ev)m(en)k(if)f(the)390 +408 y(pro)m(vided)i Fl(len)f Fs(is)i(zero.)150 608 y +Fk(asn1)p 396 608 37 5 v 55 w(read)p 685 608 V 54 w(v)-7 +b(alue)p 1015 608 V 53 w(t)m(yp)s(e)3350 805 y Fs([F)f(unction])-3599 +b Fj(int)53 b(asn1_read_value_type)f Fi(\()p Fh(asn1)p +1687 805 30 5 v 44 w(no)s(de)34 b Fg(root)p Fh(,)g(const)g(c)m(har)g(*) +f Fg(name)p Fh(,)565 915 y(v)m(oid)g(*)g Fg(ivalue)p +Fh(,)i(in)m(t)e(*)g Fg(len)p Fh(,)h(unsigned)g(in)m(t)g(*)f +Fg(etype)p Fi(\))390 1024 y Ff(ro)s(ot)r Fs(:)41 b(p)s(oin)m(ter)30 +b(to)i(a)e(structure.)390 1159 y Ff(name)5 b Fs(:)41 +b(the)30 b(name)h(of)f(the)h(elemen)m(t)h(inside)e(a)h(structure)f +(that)h(y)m(ou)f(w)m(an)m(t)h(to)h(read.)390 1294 y Ff(iv)-5 +b(alue)5 b Fs(:)45 b(v)m(ector)34 b(that)e(will)h(con)m(tain)g(the)g +(elemen)m(t's)g(con)m(ten)m(t,)i(m)m(ust)d(b)s(e)g(a)g(p)s(oin)m(ter)g +(to)h(memory)390 1404 y(cells)e(already)g(allo)s(cated)i(\(ma)m(y)e(b)s +(e)f Fl(NULL)f Fs(\).)390 1539 y Ff(len)p Fs(:)41 b(n)m(um)m(b)s(er)29 b(of)h(b)m(ytes)h(of)g(*v)-5 b(alue:)41 b(v)-5 b(alue[0]..v)g (alue[len-1].)45 b(Initialy)31 b(holds)f(the)h(sizeof)g(v)-5 -b(alue.)390 1317 y Fg(et)m(yp)s(e)5 b Fr(:)41 b(The)30 +b(alue.)390 1673 y Ff(et)m(yp)s(e)5 b Fs(:)41 b(The)30 b(t)m(yp)s(e)h(of)f(the)h(v)-5 b(alue)31 b(read)f(\(ASN1)p -2037 1317 V 41 w(ETYPE\))390 1445 y(Returns)k(the)g(t)m(yp)s(e)h(and)f -(v)-5 b(alue)35 b(of)f(one)h(elemen)m(t)h(inside)e(a)h(structure.)52 -b(If)34 b(an)h(elemen)m(t)h(is)e(OP-)390 1554 y(TIONAL)41 -b(and)g(this)g(returns)f Fk(ASN1_ELEMENT_NOT_FOUND)c -Fr(,)44 b(it)e(means)g(that)g(this)f(elemen)m(t)390 1664 +2037 1673 28 4 v 41 w(ETYPE\))390 1808 y(Returns)k(the)g(t)m(yp)s(e)h +(and)f(v)-5 b(alue)35 b(of)f(one)h(elemen)m(t)h(inside)e(a)h +(structure.)52 b(If)34 b(an)h(elemen)m(t)h(is)e(OP-)390 +1918 y(TIONAL)41 b(and)g(this)g(returns)f Fl(ASN1_ELEMENT_NOT_FOUND)c +Fs(,)44 b(it)e(means)g(that)g(this)f(elemen)m(t)390 2027 y(w)m(asn't)36 b(presen)m(t)f(in)h(the)f(der)g(enco)s(ding)g(that)i (created)f(the)g(structure.)55 b(The)35 b(\014rst)g(elemen)m(t)i(of)390 -1773 y(a)e(SEQUENCE)p 986 1773 V 39 w(OF)g(or)g(SET)p -1485 1773 V 39 w(OF)f(is)h(named)g Fk(")p Fr(?1)p Fk(")p -Fr(.)53 b(The)35 b(second)g(one)g Fk(")p Fr(?2)p Fk(")f -Fr(and)g(so)h(on.)54 b(If)390 1883 y(the)31 b Fk(root)g -Fr(pro)m(vided)f(is)i(a)f(no)s(de)g(to)h(sp)s(eci\014c)f(sequence)h -(elemen)m(t,)h(then)e(the)h(k)m(eyw)m(ord)f Fk(")p Fr(?CUR-)390 -1992 y(RENT)p Fk(")f Fr(is)g(also)h(acceptable)i(and)d(indicates)h(the) +2137 y(a)e(SEQUENCE)p 986 2137 V 39 w(OF)g(or)g(SET)p +1485 2137 V 39 w(OF)f(is)h(named)g Fl(")p Fs(?1)p Fl(")p +Fs(.)53 b(The)35 b(second)g(one)g Fl(")p Fs(?2)p Fl(")f +Fs(and)g(so)h(on.)54 b(If)390 2247 y(the)31 b Fl(root)g +Fs(pro)m(vided)f(is)i(a)f(no)s(de)g(to)h(sp)s(eci\014c)f(sequence)h +(elemen)m(t,)h(then)e(the)h(k)m(eyw)m(ord)f Fl(")p Fs(?CUR-)390 +2356 y(RENT)p Fl(")f Fs(is)g(also)h(acceptable)i(and)d(indicates)h(the) f(curren)m(t)h(sequence)f(elemen)m(t)i(of)f(this)f(no)s(de.)390 -2119 y(Note)i(that)f(there)g(can)g(b)s(e)f(v)-5 b(alid)31 +2491 y(Note)i(that)f(there)g(can)g(b)s(e)f(v)-5 b(alid)31 b(v)-5 b(alues)31 b(with)f(length)h(zero.)42 b(In)30 -b(these)h(case)h(this)e(function)h(will)390 2229 y(succeed)g(and)f -Fk(len)f Fr(will)i(b)s(e)e(zero.)390 2356 y Fe(INTEGER:)i -Fr(V)-10 b(ALUE)30 b(will)h(con)m(tain)h(a)e(t)m(w)m(o's)i(complemen)m -(t)g(form)e(in)m(teger.)390 2483 y(in)m(teger=-1)i(-)p -Fk(>)f Fr(v)-5 b(alue[0]=0xFF)32 b(,)f(len=1.)41 b(in)m(teger=1)32 -b(-)p Fk(>)e Fr(v)-5 b(alue[0]=0x01)33 b(,)d(len=1.)390 -2610 y Fe(ENUMERA)-8 b(TED:)30 b Fr(As)g(INTEGER)g(\(but)g(only)h(with) -f(not)g(negativ)m(e)j(n)m(um)m(b)s(ers\).)390 2737 y -Fe(BOOLEAN:)38 b Fr(V)-10 b(ALUE)39 b(will)h(b)s(e)e(the)h(n)m(ull)g -(terminated)h(string)f Fk(")p Fr(TR)m(UE)p Fk(")f Fr(or)h -Fk(")p Fr(F)-10 b(ALSE)p Fk(")39 b Fr(and)390 2847 y(LEN=5)30 -b(or)h(LEN=6.)390 2974 y(OBJECT)g(IDENTIFIER:)h(V)-10 +b(these)h(case)h(this)e(function)h(will)390 2601 y(succeed)g(and)f +Fl(len)f Fs(will)i(b)s(e)e(zero.)390 2735 y Fe(INTEGER:)i +Fs(V)-10 b(ALUE)30 b(will)h(con)m(tain)h(a)e(t)m(w)m(o's)i(complemen)m +(t)g(form)e(in)m(teger.)390 2870 y(in)m(teger=-1)i(-)p +Fl(>)f Fs(v)-5 b(alue[0]=0xFF)32 b(,)f(len=1.)41 b(in)m(teger=1)32 +b(-)p Fl(>)e Fs(v)-5 b(alue[0]=0x01)33 b(,)d(len=1.)390 +3005 y Fe(ENUMERA)-8 b(TED:)30 b Fs(As)g(INTEGER)g(\(but)g(only)h(with) +f(not)g(negativ)m(e)j(n)m(um)m(b)s(ers\).)390 3140 y +Fe(BOOLEAN:)38 b Fs(V)-10 b(ALUE)39 b(will)h(b)s(e)e(the)h(n)m(ull)g +(terminated)h(string)f Fl(")p Fs(TR)m(UE)p Fl(")f Fs(or)h +Fl(")p Fs(F)-10 b(ALSE)p Fl(")39 b Fs(and)390 3250 y(LEN=5)30 +b(or)h(LEN=6.)390 3384 y(OBJECT)g(IDENTIFIER:)h(V)-10 b(ALUE)32 b(will)g(b)s(e)g(a)g(n)m(ull)g(terminated)g(string)g(with)g -(eac)m(h)h(n)m(um)m(b)s(er)390 3083 y(separated)e(b)m(y)f(a)h(dot)f -(\(i.e.)42 b Fk(")p Fr(1.2.3.543.1)p Fk(")p Fr(\).)390 -3210 y(LEN)30 b(=)g(strlen\(V)-10 b(ALUE\))p Fk(+)p Fr(1)390 -3337 y Fe(UTCTime:)41 b Fr(V)-10 b(ALUE)30 b(will)h(b)s(e)e(a)i(n)m +(eac)m(h)h(n)m(um)m(b)s(er)390 3494 y(separated)e(b)m(y)f(a)h(dot)f +(\(i.e.)42 b Fl(")p Fs(1.2.3.543.1)p Fl(")p Fs(\).)390 +3629 y(LEN)30 b(=)g(strlen\(V)-10 b(ALUE\))p Fl(+)p Fs(1)390 +3764 y Fe(UTCTime:)41 b Fs(V)-10 b(ALUE)30 b(will)h(b)s(e)e(a)i(n)m (ull)f(terminated)h(string)f(in)g(one)g(of)h(these)f(formats:)41 -b Fk(")p Fr(YYM-)390 3447 y(MDDhhmmss)p Fk(+)p Fr(hh'mm')p -Fk(")28 b Fr(or)j Fk(")p Fr(YYMMDDhhmmss-hh'mm')p Fk(")p -Fr(.)39 b(LEN=strlen\(V)-10 b(ALUE\))p Fk(+)p Fr(1.)390 -3574 y Fe(GeneralizedTime:)48 b Fr(V)-10 b(ALUE)33 b(will)g(b)s(e)g(a)g +b Fl(")p Fs(YYM-)390 3873 y(MDDhhmmss)p Fl(+)p Fs(hh'mm')p +Fl(")28 b Fs(or)j Fl(")p Fs(YYMMDDhhmmss-hh'mm')p Fl(")p +Fs(.)39 b(LEN=strlen\(V)-10 b(ALUE\))p Fl(+)p Fs(1.)390 +4008 y Fe(GeneralizedTime:)48 b Fs(V)-10 b(ALUE)33 b(will)g(b)s(e)g(a)g (n)m(ull)g(terminated)g(string)g(in)g(the)g(same)g(format)h(used)390 -3684 y(to)d(set)g(the)g(v)-5 b(alue.)390 3811 y(OCTET)26 +4118 y(to)d(set)g(the)g(v)-5 b(alue.)390 4253 y(OCTET)26 b(STRING:)h(V)-10 b(ALUE)27 b(will)h(con)m(tain)h(the)f(o)s(ctet)h (string)e(and)g(LEN)g(will)h(b)s(e)f(the)g(n)m(um)m(b)s(er)390 -3920 y(of)k(o)s(ctets.)390 4047 y Fe(GeneralString:)51 -b Fr(V)-10 b(ALUE)34 b(will)i(con)m(tain)g(the)f(generalstring)g(and)g -(LEN)f(will)h(b)s(e)f(the)h(n)m(um)m(b)s(er)390 4157 -y(of)c(o)s(ctets.)390 4284 y(BIT)j(STRING:)h(V)-10 b(ALUE)34 +4362 y(of)k(o)s(ctets.)390 4497 y Fe(GeneralString:)51 +b Fs(V)-10 b(ALUE)34 b(will)i(con)m(tain)g(the)f(generalstring)g(and)g +(LEN)f(will)h(b)s(e)f(the)h(n)m(um)m(b)s(er)390 4607 +y(of)c(o)s(ctets.)390 4742 y(BIT)j(STRING:)h(V)-10 b(ALUE)34 b(will)h(con)m(tain)h(the)f(bit)g(string)f(organized)i(b)m(y)e(b)m -(ytes)h(and)f(LEN)h(will)390 4393 y(b)s(e)30 b(the)g(n)m(um)m(b)s(er)f -(of)i(bits.)390 4520 y Fe(CHOICE:)j Fr(If)f(NAME)i(indicates)g(a)g(c)m +(ytes)h(and)f(LEN)h(will)390 4851 y(b)s(e)30 b(the)g(n)m(um)m(b)s(er)f +(of)i(bits.)390 4986 y Fe(CHOICE:)j Fs(If)f(NAME)i(indicates)g(a)g(c)m (hoice)h(t)m(yp)s(e,)f(V)-10 b(ALUE)34 b(will)h(sp)s(ecify)f(the)g -(alternativ)m(e)i(se-)390 4630 y(lected.)390 4757 y Fe(ANY:)h -Fr(If)f(NAME)i(indicates)g(an)f(an)m(y)g(t)m(yp)s(e,)i(V)-10 +(alternativ)m(e)i(se-)390 5096 y(lected.)390 5230 y Fe(ANY:)h +Fs(If)f(NAME)i(indicates)g(an)f(an)m(y)g(t)m(yp)s(e,)i(V)-10 b(ALUE)37 b(will)g(indicate)h(the)g(DER)f(enco)s(ding)g(of)390 -4867 y(the)31 b(structure)e(actually)j(used.)390 4994 -y Fe(Returns:)64 b Fk(ASN1_SUCCESS)38 b Fr(if)k(v)-5 -b(alue)42 b(is)g(returned,)i Fk(ASN1_ELEMENT_NOT_FOUND)36 -b Fr(if)42 b Fk(name)f Fr(is)390 5103 y(not)33 b(a)g(v)-5 -b(alid)34 b(elemen)m(t,)h Fk(ASN1_VALUE_NOT_FOUND)27 -b Fr(if)33 b(there)g(isn't)g(an)m(y)g(v)-5 b(alue)34 -b(for)e(the)h(elemen)m(t)390 5213 y(selected,)28 b(and)d -Fk(ASN1_MEM_ERROR)c Fr(if)26 b(The)f(v)-5 b(alue)26 b(v)m(ector)h -(isn't)e(big)h(enough)f(to)h(store)g(the)g(result,)390 -5322 y(and)k(in)g(this)g(case)i Fk(len)d Fr(will)i(con)m(tain)g(the)g -(n)m(um)m(b)s(er)e(of)i(b)m(ytes)f(needed.)p eop end +5340 y(the)31 b(structure)e(actually)j(used.)p eop end %%Page: 15 18 -TeXDict begin 15 17 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(15)150 299 y Fj(asn1)p -396 299 37 5 v 55 w(read)p 685 299 V 54 w(tag)3350 494 -y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_read_tag)d -Fh(\()p Fg(asn1)p 1303 494 28 4 v 40 w(no)s(de)30 b Ff(root)p -Fg(,)i(const)f(c)m(har)f(*)h Ff(name)p Fg(,)h(in)m(t)f(*)565 -604 y Ff(tagValue)p Fg(,)i(in)m(t)e(*)g Ff(classValue)p -Fh(\))390 714 y Fg(ro)s(ot)r Fr(:)41 b(p)s(oin)m(ter)30 -b(to)i(a)e(structure)390 847 y Fg(name)5 b Fr(:)41 b(the)30 -b(name)h(of)f(the)h(elemen)m(t)h(inside)e(a)h(structure.)390 -981 y Fg(tagV)-8 b(alue)5 b Fr(:)43 b(v)-5 b(ariable)31 -b(that)g(will)g(con)m(tain)h(the)e(T)-8 b(A)m(G)32 b(v)-5 -b(alue.)390 1115 y Fg(classV)d(alue)5 b Fr(:)43 b(v)-5 -b(ariable)31 b(that)g(will)g(sp)s(ecify)f(the)g(T)-8 -b(A)m(G)32 b(t)m(yp)s(e.)390 1249 y(Returns)40 b(the)h(T)-8 +TeXDict begin 15 17 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(15)390 299 y Fe(Returns:)64 +b Fl(ASN1_SUCCESS)38 b Fs(if)k(v)-5 b(alue)42 b(is)g(returned,)i +Fl(ASN1_ELEMENT_NOT_FOUND)36 b Fs(if)42 b Fl(name)f Fs(is)390 +408 y(not)33 b(a)g(v)-5 b(alid)34 b(elemen)m(t,)h Fl +(ASN1_VALUE_NOT_FOUND)27 b Fs(if)33 b(there)g(isn't)g(an)m(y)g(v)-5 +b(alue)34 b(for)e(the)h(elemen)m(t)390 518 y(selected,)28 +b(and)d Fl(ASN1_MEM_ERROR)c Fs(if)26 b(The)f(v)-5 b(alue)26 +b(v)m(ector)h(isn't)e(big)h(enough)f(to)h(store)g(the)g(result,)390 +628 y(and)32 b(in)g(this)h(case)g Fl(len)f Fs(will)h(con)m(tain)h(the)f +(n)m(um)m(b)s(er)e(of)i(b)m(ytes)g(needed.)47 b(On)32 +b(the)g(o)s(ccasion)i(that)390 737 y(the)28 b(stored)g(data)h(are)f(of) +h(zero-length)g(this)f(function)g(ma)m(y)g(return)f Fl(ASN1_SUCCESS)e +Fs(ev)m(en)k(if)f(the)390 847 y(pro)m(vided)i Fl(len)f +Fs(is)i(zero.)150 1051 y Fk(asn1)p 396 1051 37 5 v 55 +w(read)p 685 1051 V 54 w(tag)3350 1253 y Fs([F)-8 b(unction])-3599 +b Fj(int)53 b(asn1_read_tag)d Fi(\()p Fh(asn1)p 1321 +1253 30 5 v 44 w(no)s(de)34 b Fg(root)p Fh(,)g(const)g(c)m(har)g(*)f +Fg(name)p Fh(,)h(in)m(t)f(*)565 1362 y Fg(tagValue)p +Fh(,)i(in)m(t)f(*)f Fg(classValue)p Fi(\))390 1472 y +Ff(ro)s(ot)r Fs(:)41 b(p)s(oin)m(ter)30 b(to)i(a)e(structure)390 +1612 y Ff(name)5 b Fs(:)41 b(the)30 b(name)h(of)f(the)h(elemen)m(t)h +(inside)e(a)h(structure.)390 1751 y Ff(tagV)-8 b(alue)5 +b Fs(:)43 b(v)-5 b(ariable)31 b(that)g(will)g(con)m(tain)h(the)e(T)-8 +b(A)m(G)32 b(v)-5 b(alue.)390 1891 y Ff(classV)d(alue)5 +b Fs(:)43 b(v)-5 b(ariable)31 b(that)g(will)g(sp)s(ecify)f(the)g(T)-8 +b(A)m(G)32 b(t)m(yp)s(e.)390 2030 y(Returns)40 b(the)h(T)-8 b(A)m(G)41 b(and)f(the)h(CLASS)e(of)i(one)g(elemen)m(t)h(inside)e(a)h -(structure.)71 b(CLASS)40 b(can)390 1359 y(ha)m(v)m(e)e(one)g(of)f -(these)h(constan)m(ts:)56 b Fk(ASN1_CLASS_APPLICATION)31 -b Fr(,)39 b Fk(ASN1_CLASS_UNIVERSAL)32 b Fr(,)390 1468 -y Fk(ASN1_CLASS_PRIVATE)25 b Fr(or)31 b Fk(ASN1_CLASS_CONTEXT_SPEC)o -(IFIC)24 b Fr(.)390 1602 y Fe(Returns:)37 b Fk(ASN1_SUCCESS)21 -b Fr(if)k(successful,)g Fk(ASN1_ELEMENT_NOT_FOUND)18 -b Fr(if)25 b Fk(name)e Fr(is)h(not)h(a)g(v)-5 b(alid)390 -1712 y(elemen)m(t.)150 1910 y Fj(asn1)p 396 1910 37 5 -v 55 w(read)p 685 1910 V 54 w(no)s(de)p 995 1910 V 55 -w(v)e(alue)3350 2105 y Fr([F)f(unction])-3599 b Fi(int)53 -b(asn1_read_node_value)f Fh(\()p Fg(asn1)p 1669 2105 -28 4 v 40 w(no)s(de)30 b Ff(node)p Fg(,)i(asn1)p 2371 -2105 V 40 w(data)p 2587 2105 V 41 w(no)s(de)p 2818 2105 -V 39 w(st)f(*)565 2215 y Ff(data)p Fh(\))390 2324 y Fg(no)s(de)5 -b Fr(:)40 b(p)s(oin)m(ter)31 b(to)g(a)f(no)s(de.)390 -2458 y Fg(data)p Fr(:)41 b(a)31 b(p)s(oin)m(t)g(to)g(a)f(asn1)p -1315 2458 V 41 w(data)p 1532 2458 V 40 w(no)s(de)p 1762 -2458 V 40 w(st)390 2592 y(Returns)22 b(the)g(v)-5 b(alue)23 -b(a)g(data)h(no)s(de)d(inside)i(a)g(asn1)p 2084 2592 -V 40 w(no)s(de)f(structure.)37 b(The)22 b(data)i(returned)d(should)390 -2702 y(b)s(e)30 b(handled)f(as)i(constan)m(t)g(v)-5 b(alues.)390 -2836 y Fe(Returns:)40 b Fk(ASN1_SUCCESS)27 b Fr(if)k(the)f(no)s(de)g -(exists.)150 3067 y Fq(4.3)68 b(DER)46 b(functions)150 -3290 y Fj(asn1)p 396 3290 37 5 v 55 w(length)p 786 3290 -V 54 w(der)3350 3486 y Fr([F)-8 b(unction])-3599 b Fi(void)54 -b(asn1_length_der)c Fh(\()p Fg(unsigned)29 b(long)i(in)m(t)g -Ff(len)p Fg(,)g(unsigned)f(c)m(har)h(*)f Ff(der)p Fg(,)i(in)m(t)565 -3595 y(*)f Ff(der_len)p Fh(\))390 3705 y Fg(len)p Fr(:)41 -b(v)-5 b(alue)31 b(to)g(con)m(v)m(ert.)390 3839 y Fg(der)7 -b Fr(:)40 b(bu\013er)29 b(to)i(hold)f(the)h(returned)e(enco)s(ding)h -(\(ma)m(y)i(b)s(e)d Fk(NULL)h Fr(\).)390 3973 y Fg(der)p -523 3973 28 4 v 40 w(len)p Fr(:)40 b(n)m(um)m(b)s(er)29 -b(of)i(meaningful)f(b)m(ytes)h(of)g(ANS)f(\(der[0]..der[der)p -2791 3973 V 40 w(len-1]\).)390 4107 y(Creates)35 b(the)f(DER)h(enco)s -(ding)f(of)g(the)g(pro)m(vided)g(length)h(v)-5 b(alue.)52 -b(The)34 b Fk(der)f Fr(bu\013er)h(m)m(ust)g(ha)m(v)m(e)390 -4216 y(enough)27 b(ro)s(om)f(for)h(the)g(output.)40 b(The)26 -b(maxim)m(um)h(length)g(this)g(function)g(will)g(enco)s(de)g(is)g -Fk(ASN1_)390 4326 y(MAX_LENGTH_SIZE)f Fr(.)390 4460 y(T)-8 -b(o)31 b(kno)m(w)f(the)h(size)g(of)g(the)f(DER)h(enco)s(ding)f(use)g(a) -h Fk(NULL)e Fr(v)-5 b(alue)31 b(for)f Fk(der)f Fr(.)150 -4658 y Fj(asn1)p 396 4658 37 5 v 55 w(o)s(ctet)p 722 -4658 V 53 w(der)3350 4853 y Fr([F)-8 b(unction])-3599 -b Fi(void)54 b(asn1_octet_der)49 b Fh(\()p Fg(const)31 -b(unsigned)f(c)m(har)g(*)h Ff(str)p Fg(,)h(in)m(t)f Ff(str_len)p -Fg(,)565 4963 y(unsigned)e(c)m(har)i(*)g Ff(der)p Fg(,)g(in)m(t)g(*)g -Ff(der_len)p Fh(\))390 5072 y Fg(str)7 b Fr(:)40 b(the)31 -b(input)e(data.)390 5206 y Fg(str)p 503 5206 28 4 v 40 -w(len)p Fr(:)41 b(STR)29 b(length)i(\(str[0]..str[*str)p -1787 5206 V 42 w(len-1]\).)390 5340 y Fg(der)7 b Fr(:)40 -b(enco)s(ded)30 b(string)g(returned.)p eop end +(structure.)71 b(CLASS)40 b(can)390 2140 y(ha)m(v)m(e)e(one)g(of)f +(these)h(constan)m(ts:)56 b Fl(ASN1_CLASS_APPLICATION)31 +b Fs(,)39 b Fl(ASN1_CLASS_UNIVERSAL)32 b Fs(,)390 2249 +y Fl(ASN1_CLASS_PRIVATE)25 b Fs(or)31 b Fl(ASN1_CLASS_CONTEXT_SPEC)o +(IFIC)24 b Fs(.)390 2389 y Fe(Returns:)37 b Fl(ASN1_SUCCESS)21 +b Fs(if)k(successful,)g Fl(ASN1_ELEMENT_NOT_FOUND)18 +b Fs(if)25 b Fl(name)e Fs(is)h(not)h(a)g(v)-5 b(alid)390 +2498 y(elemen)m(t.)150 2703 y Fk(asn1)p 396 2703 37 5 +v 55 w(read)p 685 2703 V 54 w(no)s(de)p 995 2703 V 55 +w(v)e(alue)3350 2904 y Fs([F)f(unction])-3599 b Fj(int)53 +b(asn1_read_node_value)f Fi(\()p Fh(asn1)p 1687 2904 +30 5 v 44 w(no)s(de)34 b Fg(node)p Fh(,)g(asn1)p 2436 +2904 V 44 w(data)p 2674 2904 V 44 w(no)s(de)p 2925 2904 +V 44 w(st)f(*)565 3014 y Fg(data)p Fi(\))390 3124 y Ff(no)s(de)5 +b Fs(:)40 b(p)s(oin)m(ter)31 b(to)g(a)f(no)s(de.)390 +3263 y Ff(data)p Fs(:)41 b(a)31 b(p)s(oin)m(t)g(to)g(a)f(asn1)p +1315 3263 28 4 v 41 w(data)p 1532 3263 V 40 w(no)s(de)p +1762 3263 V 40 w(st)390 3403 y(Returns)22 b(the)g(v)-5 +b(alue)23 b(a)g(data)h(no)s(de)d(inside)i(a)g(asn1)p +2084 3403 V 40 w(no)s(de)f(structure.)37 b(The)22 b(data)i(returned)d +(should)390 3512 y(b)s(e)30 b(handled)f(as)i(constan)m(t)g(v)-5 +b(alues.)390 3652 y Fe(Returns:)40 b Fl(ASN1_SUCCESS)27 +b Fs(if)k(the)f(no)s(de)g(exists.)150 3900 y Fr(4.3)68 +b(DER)46 b(functions)150 4124 y Fk(asn1)p 396 4124 37 +5 v 55 w(length)p 786 4124 V 54 w(der)3350 4326 y Fs([F)-8 +b(unction])-3599 b Fj(void)54 b(asn1_length_der)c Fi(\()p +Fh(unsigned)35 b(long)d(in)m(t)i Fg(len)p Fh(,)f(unsigned)i(c)m(har)f +(*)f Fg(der)p Fh(,)565 4435 y(in)m(t)g(*)g Fg(der_len)p +Fi(\))390 4545 y Ff(len)p Fs(:)41 b(v)-5 b(alue)31 b(to)g(con)m(v)m +(ert.)390 4685 y Ff(der)7 b Fs(:)40 b(bu\013er)29 b(to)i(hold)f(the)h +(returned)e(enco)s(ding)h(\(ma)m(y)i(b)s(e)d Fl(NULL)h +Fs(\).)390 4824 y Ff(der)p 523 4824 28 4 v 40 w(len)p +Fs(:)40 b(n)m(um)m(b)s(er)29 b(of)i(meaningful)f(b)m(ytes)h(of)g(ANS)f +(\(der[0]..der[der)p 2791 4824 V 40 w(len-1]\).)390 4964 +y(Creates)35 b(the)f(DER)h(enco)s(ding)f(of)g(the)g(pro)m(vided)g +(length)h(v)-5 b(alue.)52 b(The)34 b Fl(der)f Fs(bu\013er)h(m)m(ust)g +(ha)m(v)m(e)390 5073 y(enough)27 b(ro)s(om)f(for)h(the)g(output.)40 +b(The)26 b(maxim)m(um)h(length)g(this)g(function)g(will)g(enco)s(de)g +(is)g Fl(ASN1_)390 5183 y(MAX_LENGTH_SIZE)f Fs(.)390 +5322 y(T)-8 b(o)31 b(kno)m(w)f(the)h(size)g(of)g(the)f(DER)h(enco)s +(ding)f(use)g(a)h Fl(NULL)e Fs(v)-5 b(alue)31 b(for)f +Fl(der)f Fs(.)p eop end %%Page: 16 19 -TeXDict begin 16 18 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(16)390 299 y Fg(der)p -523 299 28 4 v 40 w(len)p Fr(:)40 b(n)m(um)m(b)s(er)29 +TeXDict begin 16 18 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(16)150 299 y Fk(asn1)p +396 299 37 5 v 55 w(o)s(ctet)p 722 299 V 53 w(der)3350 +500 y Fs([F)-8 b(unction])-3599 b Fj(void)54 b(asn1_octet_der)49 +b Fi(\()p Fh(const)34 b(unsigned)h(c)m(har)f(*)f Fg(str)p +Fh(,)h(in)m(t)f Fg(str_len)p Fh(,)565 609 y(unsigned)i(c)m(har)f(*)f +Fg(der)p Fh(,)g(in)m(t)h(*)f Fg(der_len)p Fi(\))390 719 +y Ff(str)7 b Fs(:)40 b(the)31 b(input)e(data.)390 858 +y Ff(str)p 503 858 28 4 v 40 w(len)p Fs(:)41 b(STR)29 +b(length)i(\(str[0]..str[*str)p 1787 858 V 42 w(len-1]\).)390 +996 y Ff(der)7 b Fs(:)40 b(enco)s(ded)30 b(string)g(returned.)390 +1135 y Ff(der)p 523 1135 V 40 w(len)p Fs(:)40 b(n)m(um)m(b)s(er)29 b(of)i(meaningful)f(b)m(ytes)h(of)g(DER)f(\(der[0]..der[der)p -2802 299 V 41 w(len-1]\).)390 436 y(Creates)j(a)f(length-v)-5 +2802 1135 V 41 w(len-1]\).)390 1274 y(Creates)j(a)f(length-v)-5 b(alue)34 b(DER)e(enco)s(ding)g(for)g(the)g(input)f(data.)47 -b(The)31 b(DER)h(enco)s(ding)g(of)h(the)390 546 y(input)c(data)i(will)g -(b)s(e)f(placed)h(in)f(the)g Fk(der)g Fr(v)-5 b(ariable.)390 -683 y(Note)32 b(that)f(the)f(OCTET)f(STRING)h(tag)h(is)g(not)f -(included)g(in)g(the)h(output.)390 820 y(This)41 b(function)g(do)s(es)g -(not)h(return)e(an)m(y)i(v)-5 b(alue)42 b(b)s(ecause)f(it)i(is)e(exp)s -(ected)h(that)g Fk(der_len)e Fr(will)390 929 y(con)m(tain)30 +b(The)31 b(DER)h(enco)s(ding)g(of)h(the)390 1384 y(input)c(data)i(will) +g(b)s(e)f(placed)h(in)f(the)g Fl(der)g Fs(v)-5 b(ariable.)390 +1522 y(Note)32 b(that)f(the)f(OCTET)f(STRING)h(tag)h(is)g(not)f +(included)g(in)g(the)h(output.)390 1661 y(This)41 b(function)g(do)s(es) +g(not)h(return)e(an)m(y)i(v)-5 b(alue)42 b(b)s(ecause)f(it)i(is)e(exp)s +(ected)h(that)g Fl(der_len)e Fs(will)390 1771 y(con)m(tain)30 b(enough)e(b)m(ytes)i(to)f(store)g(the)g(string)g(plus)e(the)i(DER)g -(enco)s(ding.)40 b(The)28 b(DER)h(enco)s(ding)390 1039 -y(size)i(can)g(b)s(e)f(obtained)g(using)g Fk(asn1_length_der\(\))c -Fr(.)150 1241 y Fj(asn1)p 396 1241 37 5 v 55 w(enco)s(de)p -818 1241 V 54 w(simple)p 1214 1241 V 55 w(der)3350 1440 -y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_encode_simple_de)q(r)e -Fh(\()p Fg(unsigned)30 b(in)m(t)h Ff(etype)p Fg(,)h(const)f(unsigned) -565 1550 y(c)m(har)g(*)f Ff(str)p Fg(,)i(unsigned)d(in)m(t)i -Ff(str_len)p Fg(,)h(unsigned)e(c)m(har)g(*)h Ff(tl)p -Fg(,)g(unsigned)e(in)m(t)i(*)g Ff(tl_len)p Fh(\))390 -1659 y Fg(et)m(yp)s(e)5 b Fr(:)41 b(The)30 b(t)m(yp)s(e)h(of)f(the)h -(string)f(to)h(b)s(e)f(enco)s(ded)g(\(ASN1)p 2444 1659 -28 4 v 41 w(ETYPE)p 2805 1659 V 39 w(\))390 1796 y Fg(str)7 -b Fr(:)40 b(the)31 b(string)f(data.)390 1934 y Fg(str)p -503 1934 V 40 w(len)p Fr(:)41 b(the)30 b(string)h(length)390 -2071 y Fg(tl)t Fr(:)41 b(the)30 b(enco)s(ded)g(tag)i(and)e(length)390 -2208 y Fg(tl)p 456 2208 V 41 w(len)p Fr(:)40 b(the)31 -b(b)m(ytes)g(of)f(the)h Fk(tl)f Fr(\014eld)390 2345 y(Creates)j(the)g +(enco)s(ding.)40 b(The)28 b(DER)h(enco)s(ding)390 1880 +y(size)i(can)g(b)s(e)f(obtained)g(using)g Fl(asn1_length_der\(\))c +Fs(.)150 2084 y Fk(asn1)p 396 2084 37 5 v 55 w(enco)s(de)p +818 2084 V 54 w(simple)p 1214 2084 V 55 w(der)3350 2285 +y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_encode_simple_de)q(r)e +Fi(\()p Fh(unsigned)35 b(in)m(t)f Fg(etype)p Fh(,)g(const)g(unsigned) +565 2394 y(c)m(har)g(*)f Fg(str)p Fh(,)h(unsigned)g(in)m(t)g +Fg(str_len)p Fh(,)h(unsigned)f(c)m(har)g(*)f Fg(tl)p +Fh(,)h(unsigned)g(in)m(t)g(*)565 2504 y Fg(tl_len)p Fi(\))390 +2613 y Ff(et)m(yp)s(e)5 b Fs(:)41 b(The)30 b(t)m(yp)s(e)h(of)f(the)h +(string)f(to)h(b)s(e)f(enco)s(ded)g(\(ASN1)p 2444 2613 +28 4 v 41 w(ETYPE)p 2805 2613 V 39 w(\))390 2752 y Ff(str)7 +b Fs(:)40 b(the)31 b(string)f(data.)390 2891 y Ff(str)p +503 2891 V 40 w(len)p Fs(:)41 b(the)30 b(string)h(length)390 +3030 y Ff(tl)t Fs(:)41 b(the)30 b(enco)s(ded)g(tag)i(and)e(length)390 +3168 y Ff(tl)p 456 3168 V 41 w(len)p Fs(:)40 b(the)31 +b(b)m(ytes)g(of)f(the)h Fl(tl)f Fs(\014eld)390 3307 y(Creates)j(the)g (DER)g(enco)s(ding)f(for)h(v)-5 b(arious)32 b(simple)h(ASN.1)g(t)m(yp)s (es)f(lik)m(e)i(strings)e(etc.)49 b(It)32 b(stores)390 -2454 y(the)k(tag)h(and)e(length)h(in)g Fk(tl)f Fr(,)i(whic)m(h)f -(should)f(ha)m(v)m(e)i(space)f(for)g(at)g(least)h Fk(ASN1_MAX_TL_SIZE) -390 2564 y Fr(b)m(ytes.)k(Initially)32 b Fk(tl_len)c -Fr(should)i(con)m(tain)h(the)g(size)g(of)g Fk(tl)e Fr(.)390 -2701 y(The)39 b(complete)i(DER)f(enco)s(ding)g(should)e(consist)i(of)g -(the)g(v)-5 b(alue)40 b(in)g Fk(tl)f Fr(app)s(ended)e(with)j(the)390 -2811 y(pro)m(vided)30 b Fk(str)f Fr(.)390 2948 y Fe(Returns:)40 -b Fk(ASN1_SUCCESS)27 b Fr(if)k(successful)f(or)g(an)g(error)g(v)-5 -b(alue.)150 3150 y Fj(asn1)p 396 3150 37 5 v 55 w(bit)p -601 3150 V 54 w(der)3350 3349 y Fr([F)d(unction])-3599 -b Fi(void)54 b(asn1_bit_der)49 b Fh(\()p Fg(const)31 -b(unsigned)e(c)m(har)i(*)g Ff(str)p Fg(,)g(in)m(t)g Ff(bit_len)p -Fg(,)i(unsigned)565 3459 y(c)m(har)e(*)g Ff(der)p Fg(,)g(in)m(t)g(*)g -Ff(der_len)p Fh(\))390 3568 y Fg(str)7 b Fr(:)40 b(BIT)30 -b(string.)390 3705 y Fg(bit)p 507 3705 28 4 v 40 w(len)p -Fr(:)41 b(n)m(um)m(b)s(er)29 b(of)i(meaningful)f(bits)g(in)g(STR.)390 -3842 y Fg(der)7 b Fr(:)40 b(string)30 b(returned.)390 -3980 y Fg(der)p 523 3980 V 40 w(len)p Fr(:)40 b(n)m(um)m(b)s(er)29 +3417 y(the)k(tag)h(and)e(length)h(in)g Fl(tl)f Fs(,)i(whic)m(h)f +(should)f(ha)m(v)m(e)i(space)f(for)g(at)g(least)h Fl(ASN1_MAX_TL_SIZE) +390 3526 y Fs(b)m(ytes.)k(Initially)32 b Fl(tl_len)c +Fs(should)i(con)m(tain)h(the)g(size)g(of)g Fl(tl)e Fs(.)390 +3665 y(The)39 b(complete)i(DER)f(enco)s(ding)g(should)e(consist)i(of)g +(the)g(v)-5 b(alue)40 b(in)g Fl(tl)f Fs(app)s(ended)e(with)j(the)390 +3774 y(pro)m(vided)30 b Fl(str)f Fs(.)390 3913 y Fe(Returns:)40 +b Fl(ASN1_SUCCESS)27 b Fs(if)k(successful)f(or)g(an)g(error)g(v)-5 +b(alue.)150 4117 y Fk(asn1)p 396 4117 37 5 v 55 w(bit)p +601 4117 V 54 w(der)3350 4318 y Fs([F)d(unction])-3599 +b Fj(void)54 b(asn1_bit_der)49 b Fi(\()p Fh(const)34 +b(unsigned)g(c)m(har)g(*)f Fg(str)p Fh(,)h(in)m(t)f Fg(bit_len)p +Fh(,)565 4427 y(unsigned)i(c)m(har)f(*)f Fg(der)p Fh(,)g(in)m(t)h(*)f +Fg(der_len)p Fi(\))390 4537 y Ff(str)7 b Fs(:)40 b(BIT)30 +b(string.)390 4676 y Ff(bit)p 507 4676 28 4 v 40 w(len)p +Fs(:)41 b(n)m(um)m(b)s(er)29 b(of)i(meaningful)f(bits)g(in)g(STR.)390 +4814 y Ff(der)7 b Fs(:)40 b(string)30 b(returned.)390 +4953 y Ff(der)p 523 4953 V 40 w(len)p Fs(:)40 b(n)m(um)m(b)s(er)29 b(of)i(meaningful)f(b)m(ytes)h(of)g(DER)f(\(der[0]..der[ans)p -2807 3980 V 41 w(len-1]\).)390 4117 y(Creates)i(a)f(length-v)-5 +2807 4953 V 41 w(len-1]\).)390 5092 y(Creates)i(a)f(length-v)-5 b(alue)33 b(DER)e(enco)s(ding)g(for)g(the)g(input)f(data)i(as)f(it)h(w) -m(ould)f(ha)m(v)m(e)h(b)s(een)f(for)g(a)390 4226 y(BIT)f(STRING.)g(The) +m(ould)f(ha)m(v)m(e)h(b)s(een)f(for)g(a)390 5201 y(BIT)f(STRING.)g(The) g(DER)h(enco)s(ded)f(data)h(will)f(b)s(e)g(copied)h(in)f -Fk(der)f Fr(.)390 4363 y(Note)j(that)f(the)f(BIT)g(STRING)g(tag)i(is)e -(not)h(included)e(in)h(the)h(output.)390 4500 y(This)41 -b(function)g(do)s(es)g(not)h(return)e(an)m(y)i(v)-5 b(alue)42 -b(b)s(ecause)f(it)i(is)e(exp)s(ected)h(that)g Fk(der_len)e -Fr(will)390 4610 y(con)m(tain)30 b(enough)e(b)m(ytes)i(to)f(store)g -(the)g(string)g(plus)e(the)i(DER)g(enco)s(ding.)40 b(The)28 -b(DER)h(enco)s(ding)390 4720 y(size)i(can)g(b)s(e)f(obtained)g(using)g -Fk(asn1_length_der\(\))c Fr(.)150 4921 y Fj(asn1)p 396 -4921 37 5 v 55 w(der)p 625 4921 V 54 w(co)s(ding)3350 -5121 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_der_coding)d -Fh(\()p Fg(asn1)p 1407 5121 28 4 v 41 w(no)s(de)30 b -Ff(element)p Fg(,)i(const)f(c)m(har)g(*)g Ff(name)p Fg(,)g(v)m(oid)g(*) -565 5230 y Ff(ider)p Fg(,)h(in)m(t)f(*)g Ff(len)p Fg(,)g(c)m(har)g(*)f -Ff(ErrorDescription)p Fh(\))390 5340 y Fg(elemen)m(t)r -Fr(:)42 b(p)s(oin)m(ter)31 b(to)g(an)f(ASN1)h(elemen)m(t)p -eop end +Fl(der)f Fs(.)390 5340 y(Note)j(that)f(the)f(BIT)g(STRING)g(tag)i(is)e +(not)h(included)e(in)h(the)h(output.)p eop end %%Page: 17 20 -TeXDict begin 17 19 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(17)390 299 y Fg(name)5 -b Fr(:)39 b(the)27 b(name)h(of)f(the)g(structure)g(y)m(ou)g(w)m(an)m(t) -h(to)g(enco)s(de)f(\(it)h(m)m(ust)f(b)s(e)f(inside)h(*POINTER\).)390 -440 y Fg(ider)7 b Fr(:)39 b(v)m(ector)30 b(that)f(will)f(con)m(tain)i -(the)e(DER)h(enco)s(ding.)40 b(DER)28 b(m)m(ust)g(b)s(e)g(a)h(p)s(oin)m -(ter)f(to)h(memory)390 549 y(cells)i(already)g(allo)s(cated.)390 -690 y Fg(len)p Fr(:)49 b(n)m(um)m(b)s(er)33 b(of)h(b)m(ytes)h(of)g(*)g -Fk(ider)e Fr(:)48 b Fk(ider)34 b Fr([0]..)54 b Fk(ider)33 -b Fr([len-1],)k(Initialy)e(holds)f(the)g(sizeof)i(of)390 -799 y(der)30 b(v)m(ector.)390 940 y Fg(ErrorDescription)p -Fr(:)41 b(return)29 b(the)i(error)f(description)g(or)g(an)h(empt)m(y)f -(string)h(if)f(success.)390 1081 y(Creates)h(the)g(DER)f(enco)s(ding)g +TeXDict begin 17 19 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(17)390 299 y(This)41 +b(function)g(do)s(es)g(not)h(return)e(an)m(y)i(v)-5 b(alue)42 +b(b)s(ecause)f(it)i(is)e(exp)s(ected)h(that)g Fl(der_len)e +Fs(will)390 408 y(con)m(tain)30 b(enough)e(b)m(ytes)i(to)f(store)g(the) +g(string)g(plus)e(the)i(DER)g(enco)s(ding.)40 b(The)28 +b(DER)h(enco)s(ding)390 518 y(size)i(can)g(b)s(e)f(obtained)g(using)g +Fl(asn1_length_der\(\))c Fs(.)150 719 y Fk(asn1)p 396 +719 37 5 v 55 w(der)p 625 719 V 54 w(co)s(ding)3350 918 +y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_der_coding)d +Fi(\()p Fh(asn1)p 1425 918 30 5 v 45 w(no)s(de)33 b Fg(element)p +Fh(,)i(const)f(c)m(har)g(*)f Fg(name)p Fh(,)h(v)m(oid)565 +1027 y(*)f Fg(ider)p Fh(,)h(in)m(t)f(*)g Fg(len)p Fh(,)h(c)m(har)g(*)f +Fg(ErrorDescription)p Fi(\))390 1137 y Ff(elemen)m(t)r +Fs(:)42 b(p)s(oin)m(ter)31 b(to)g(an)f(ASN1)h(elemen)m(t)390 +1273 y Ff(name)5 b Fs(:)39 b(the)27 b(name)h(of)f(the)g(structure)g(y)m +(ou)g(w)m(an)m(t)h(to)g(enco)s(de)f(\(it)h(m)m(ust)f(b)s(e)f(inside)h +(*POINTER\).)390 1409 y Ff(ider)7 b Fs(:)39 b(v)m(ector)30 +b(that)f(will)f(con)m(tain)i(the)e(DER)h(enco)s(ding.)40 +b(DER)28 b(m)m(ust)g(b)s(e)g(a)h(p)s(oin)m(ter)f(to)h(memory)390 +1519 y(cells)i(already)g(allo)s(cated.)390 1655 y Ff(len)p +Fs(:)49 b(n)m(um)m(b)s(er)33 b(of)h(b)m(ytes)h(of)g(*)g +Fl(ider)e Fs(:)48 b Fl(ider)34 b Fs([0]..)54 b Fl(ider)33 +b Fs([len-1],)k(Initialy)e(holds)f(the)g(sizeof)i(of)390 +1765 y(der)30 b(v)m(ector.)390 1901 y Ff(ErrorDescription)p +Fs(:)41 b(return)29 b(the)i(error)f(description)g(or)g(an)h(empt)m(y)f +(string)h(if)f(success.)390 2038 y(Creates)h(the)g(DER)f(enco)s(ding)g (for)h(the)f(NAME)h(structure)f(\(inside)g(*POINTER)g(structure\).)390 -1221 y Fe(Returns:)47 b Fk(ASN1_SUCCESS)30 b Fr(if)k(DER)g(enco)s(ding) -f(OK,)g Fk(ASN1_ELEMENT_NOT_FOUND)28 b Fr(if)33 b Fk(name)g -Fr(is)390 1331 y(not)h(a)g(v)-5 b(alid)35 b(elemen)m(t,)h -Fk(ASN1_VALUE_NOT_FOUND)29 b Fr(if)34 b(there)g(is)g(an)g(elemen)m(t)h -(without)f(a)g(v)-5 b(alue,)390 1441 y Fk(ASN1_MEM_ERROR)24 -b Fr(if)29 b(the)f Fk(ider)g Fr(v)m(ector)i(isn't)e(big)h(enough)f(and) -g(in)g(this)g(case)h Fk(len)f Fr(will)h(con)m(tain)390 -1550 y(the)i(length)f(needed.)150 1756 y Fj(asn1)p 396 -1756 37 5 v 55 w(get)p 616 1756 V 54 w(length)p 1005 -1756 V 54 w(der)3350 1959 y Fr([F)-8 b(unction])-3599 -b Fi(long)54 b(asn1_get_length_der)d Fh(\()p Fg(const)31 -b(unsigned)e(c)m(har)i(*)g Ff(der)p Fg(,)g(in)m(t)g Ff(der_len)p -Fg(,)565 2068 y(in)m(t)g(*)g Ff(len)p Fh(\))390 2178 -y Fg(der)7 b Fr(:)40 b(DER)30 b(data)h(to)g(deco)s(de.)390 -2318 y Fg(der)p 523 2318 28 4 v 40 w(len)p Fr(:)40 b(Length)31 -b(of)f(DER)h(data)g(to)g(deco)s(de.)390 2459 y Fg(len)p -Fr(:)41 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h(the)f(length) -f(of)h(the)g(DER)f(length)h(\014eld.)390 2600 y(Extract)g(a)g(length)g -(\014eld)f(from)g(DER)g(data.)390 2740 y Fe(Returns:)40 -b Fr(Return)29 b(the)h(deco)s(ded)f(length)h(v)-5 b(alue,)30 +2174 y Fe(Returns:)47 b Fl(ASN1_SUCCESS)30 b Fs(if)k(DER)g(enco)s(ding) +f(OK,)g Fl(ASN1_ELEMENT_NOT_FOUND)28 b Fs(if)33 b Fl(name)g +Fs(is)390 2283 y(not)h(a)g(v)-5 b(alid)35 b(elemen)m(t,)h +Fl(ASN1_VALUE_NOT_FOUND)29 b Fs(if)34 b(there)g(is)g(an)g(elemen)m(t)h +(without)f(a)g(v)-5 b(alue,)390 2393 y Fl(ASN1_MEM_ERROR)24 +b Fs(if)29 b(the)f Fl(ider)g Fs(v)m(ector)i(isn't)e(big)h(enough)f(and) +g(in)g(this)g(case)h Fl(len)f Fs(will)h(con)m(tain)390 +2503 y(the)i(length)f(needed.)150 2704 y Fk(asn1)p 396 +2704 37 5 v 55 w(get)p 616 2704 V 54 w(length)p 1005 +2704 V 54 w(der)3350 2902 y Fs([F)-8 b(unction])-3599 +b Fj(long)54 b(asn1_get_length_der)d Fi(\()p Fh(const)34 +b(unsigned)g(c)m(har)g(*)f Fg(der)p Fh(,)h(in)m(t)565 +3012 y Fg(der_len)p Fh(,)h(in)m(t)e(*)g Fg(len)p Fi(\))390 +3121 y Ff(der)7 b Fs(:)40 b(DER)30 b(data)h(to)g(deco)s(de.)390 +3258 y Ff(der)p 523 3258 28 4 v 40 w(len)p Fs(:)40 b(Length)31 +b(of)f(DER)h(data)g(to)g(deco)s(de.)390 3394 y Ff(len)p +Fs(:)41 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h(the)f(length) +f(of)h(the)g(DER)f(length)h(\014eld.)390 3530 y(Extract)g(a)g(length)g +(\014eld)f(from)g(DER)g(data.)390 3667 y Fe(Returns:)40 +b Fs(Return)29 b(the)h(deco)s(ded)f(length)h(v)-5 b(alue,)30 b(or)g(-1)g(on)g(inde\014nite)f(length,)h(or)g(-2)g(when)f(the)390 -2850 y(v)-5 b(alue)30 b(w)m(as)h(to)s(o)f(big)g(to)h(\014t)e(in)h(a)g +3776 y(v)-5 b(alue)30 b(w)m(as)h(to)s(o)f(big)g(to)h(\014t)e(in)h(a)g (in)m(t,)h(or)f(-4)g(when)f(the)h(deco)s(ded)g(length)g(v)-5 -b(alue)30 b(plus)f Fk(len)g Fr(w)m(ould)390 2960 y(exceed)i -Fk(der_len)e Fr(.)150 3165 y Fj(asn1)p 396 3165 37 5 -v 55 w(get)p 616 3165 V 54 w(tag)p 839 3165 V 53 w(der)3350 -3368 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_get_tag_der)e -Fh(\()p Fg(const)31 b(unsigned)e(c)m(har)i(*)g Ff(der)p -Fg(,)g(in)m(t)g Ff(der_len)p Fg(,)565 3478 y(unsigned)e(c)m(har)i(*)g -Ff(cls)p Fg(,)g(in)m(t)g(*)g Ff(len)p Fg(,)g(unsigned)f(long)h(*)g -Ff(tag)p Fh(\))390 3587 y Fg(der)7 b Fr(:)40 b(DER)30 -b(data)h(to)g(deco)s(de.)390 3728 y Fg(der)p 523 3728 -28 4 v 40 w(len)p Fr(:)40 b(Length)31 b(of)f(DER)h(data)g(to)g(deco)s -(de.)390 3868 y Fg(cls)t Fr(:)41 b(Output)29 b(v)-5 b(ariable)31 -b(con)m(taining)h(deco)s(ded)e(class.)390 4009 y Fg(len)p -Fr(:)41 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h(the)f(length) -f(of)h(the)g(DER)f(T)-8 b(A)m(G)31 b(data.)390 4150 y -Fg(tag)8 b Fr(:)42 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h -(the)f(deco)s(ded)f(tag.)390 4290 y(Deco)s(de)h(the)g(class)g(and)f(T) --8 b(A)m(G)31 b(from)f(DER)h(co)s(de.)390 4431 y Fe(Returns:)40 -b Fr(Returns)30 b Fk(ASN1_SUCCESS)d Fr(on)j(success,)h(or)f(an)h -(error.)150 4637 y Fj(asn1)p 396 4637 37 5 v 55 w(get)p -616 4637 V 54 w(length)p 1005 4637 V 54 w(b)s(er)3350 -4839 y Fr([F)-8 b(unction])-3599 b Fi(long)54 b(asn1_get_length_ber)d -Fh(\()p Fg(const)31 b(unsigned)e(c)m(har)i(*)g Ff(ber)p -Fg(,)g(in)m(t)g Ff(ber_len)p Fg(,)565 4949 y(in)m(t)g(*)g -Ff(len)p Fh(\))390 5059 y Fg(b)s(er)7 b Fr(:)39 b(BER)31 -b(data)g(to)g(deco)s(de.)390 5199 y Fg(b)s(er)p 526 5199 -28 4 v 39 w(len)p Fr(:)41 b(Length)30 b(of)h(BER)f(data)h(to)g(deco)s -(de.)390 5340 y Fg(len)p Fr(:)41 b(Output)29 b(v)-5 b(ariable)31 -b(con)m(taining)h(the)f(length)f(of)h(the)g(BER)f(length)h(\014eld.)p -eop end +b(alue)30 b(plus)f Fl(len)g Fs(w)m(ould)390 3886 y(exceed)i +Fl(der_len)e Fs(.)150 4087 y Fk(asn1)p 396 4087 37 5 +v 55 w(get)p 616 4087 V 54 w(tag)p 839 4087 V 53 w(der)3350 +4285 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_get_tag_der)e +Fi(\()p Fh(const)34 b(unsigned)g(c)m(har)g(*)f Fg(der)p +Fh(,)h(in)m(t)f Fg(der_len)p Fh(,)565 4395 y(unsigned)i(c)m(har)f(*)f +Fg(cls)p Fh(,)g(in)m(t)h(*)f Fg(len)p Fh(,)h(unsigned)g(long)f(*)g +Fg(tag)p Fi(\))390 4505 y Ff(der)7 b Fs(:)40 b(DER)30 +b(data)h(to)g(deco)s(de.)390 4641 y Ff(der)p 523 4641 +28 4 v 40 w(len)p Fs(:)40 b(Length)31 b(of)f(DER)h(data)g(to)g(deco)s +(de.)390 4777 y Ff(cls)t Fs(:)41 b(Output)29 b(v)-5 b(ariable)31 +b(con)m(taining)h(deco)s(ded)e(class.)390 4913 y Ff(len)p +Fs(:)41 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h(the)f(length) +f(of)h(the)g(DER)f(T)-8 b(A)m(G)31 b(data.)390 5050 y +Ff(tag)8 b Fs(:)42 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h +(the)f(deco)s(ded)f(tag)h(\(ma)m(y)g(b)s(e)f Fl(NULL)f +Fs(\).)390 5186 y(Deco)s(de)i(the)g(class)g(and)f(T)-8 +b(A)m(G)31 b(from)f(DER)h(co)s(de.)390 5322 y Fe(Returns:)40 +b Fs(Returns)30 b Fl(ASN1_SUCCESS)d Fs(on)j(success,)h(or)f(an)h +(error.)p eop end %%Page: 18 21 -TeXDict begin 18 20 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(18)390 299 y(Extract)31 -b(a)g(length)f(\014eld)g(from)g(BER)g(data.)41 b(The)30 -b(di\013erence)h(to)g Fk(asn1_get_length_der\(\))24 b -Fr(is)390 408 y(that)31 b(this)f(function)g(will)h(return)e(a)i(length) -g(ev)m(en)g(if)f(the)h(v)-5 b(alue)31 b(has)f(inde\014nite)g(enco)s -(ding.)390 537 y Fe(Returns:)40 b Fr(Return)27 b(the)i(deco)s(ded)g -(length)g(v)-5 b(alue,)30 b(or)e(negativ)m(e)j(v)-5 b(alue)29 -b(when)f(the)h(v)-5 b(alue)29 b(w)m(as)g(to)s(o)390 646 -y(big.)390 774 y Fe(Since:)41 b Fr(2.0)150 960 y Fj(asn1)p -396 960 37 5 v 55 w(get)p 616 960 V 54 w(o)s(ctet)p 941 -960 V 53 w(der)3350 1144 y Fr([F)-8 b(unction])-3599 -b Fi(int)53 b(asn1_get_octet_der)e Fh(\()p Fg(const)31 -b(unsigned)f(c)m(har)g(*)h Ff(der)p Fg(,)h(in)m(t)f Ff(der_len)p -Fg(,)h(in)m(t)565 1254 y(*)f Ff(ret_len)p Fg(,)i(unsigned)c(c)m(har)i -(*)f Ff(str)p Fg(,)i(in)m(t)f Ff(str_size)p Fg(,)i(in)m(t)e(*)f -Ff(str_len)p Fh(\))390 1364 y Fg(der)7 b Fr(:)40 b(DER)30 -b(data)h(to)g(deco)s(de)g(con)m(taining)h(the)e(OCTET)f(SEQUENCE.)390 -1492 y Fg(der)p 523 1492 28 4 v 40 w(len)p Fr(:)40 b(The)30 -b(length)h(of)g(the)f Fk(der)g Fr(data)h(to)g(deco)s(de.)390 -1620 y Fg(ret)p 507 1620 V 40 w(len)p Fr(:)41 b(Output)29 -b(v)-5 b(ariable)32 b(con)m(taining)f(the)g(enco)s(ded)f(length)h(of)f -(the)h(DER)f(data.)390 1748 y Fg(str)7 b Fr(:)40 b(Pre-allo)s(cated)33 -b(output)d(bu\013er)f(to)i(put)f(deco)s(ded)g(OCTET)f(SEQUENCE)g(in.) -390 1876 y Fg(str)p 503 1876 V 40 w(size)5 b Fr(:)41 -b(Length)31 b(of)f(pre-allo)s(cated)j(output)d(bu\013er.)390 -2004 y Fg(str)p 503 2004 V 40 w(len)p Fr(:)57 b(Output)38 +TeXDict begin 18 20 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(18)150 299 y Fk(asn1)p +396 299 37 5 v 55 w(get)p 616 299 V 54 w(length)p 1005 +299 V 54 w(b)s(er)3350 513 y Fs([F)-8 b(unction])-3599 +b Fj(long)54 b(asn1_get_length_ber)d Fi(\()p Fh(const)34 +b(unsigned)g(c)m(har)g(*)f Fg(ber)p Fh(,)h(in)m(t)565 +623 y Fg(ber_len)p Fh(,)h(in)m(t)e(*)g Fg(len)p Fi(\))390 +733 y Ff(b)s(er)7 b Fs(:)39 b(BER)31 b(data)g(to)g(deco)s(de.)390 +885 y Ff(b)s(er)p 526 885 28 4 v 39 w(len)p Fs(:)41 b(Length)30 +b(of)h(BER)f(data)h(to)g(deco)s(de.)390 1037 y Ff(len)p +Fs(:)41 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h(the)f(length) +f(of)h(the)g(BER)f(length)h(\014eld.)390 1189 y(Extract)g(a)g(length)f +(\014eld)g(from)g(BER)g(data.)41 b(The)30 b(di\013erence)h(to)g +Fl(asn1_get_length_der\(\))24 b Fs(is)390 1299 y(that)31 +b(this)f(function)g(will)h(return)e(a)i(length)g(ev)m(en)g(if)f(the)h +(v)-5 b(alue)31 b(has)f(inde\014nite)g(enco)s(ding.)390 +1451 y Fe(Returns:)40 b Fs(Return)27 b(the)i(deco)s(ded)g(length)g(v)-5 +b(alue,)30 b(or)e(negativ)m(e)j(v)-5 b(alue)29 b(when)f(the)h(v)-5 +b(alue)29 b(w)m(as)g(to)s(o)390 1561 y(big.)390 1713 +y Fe(Since:)41 b Fs(2.0)150 1930 y Fk(asn1)p 396 1930 +37 5 v 55 w(get)p 616 1930 V 54 w(o)s(ctet)p 941 1930 +V 53 w(der)3350 2144 y Fs([F)-8 b(unction])-3599 b Fj(int)53 +b(asn1_get_octet_der)e Fi(\()p Fh(const)34 b(unsigned)h(c)m(har)f(*)f +Fg(der)p Fh(,)h(in)m(t)f Fg(der_len)p Fh(,)565 2254 y(in)m(t)g(*)g +Fg(ret_len)p Fh(,)i(unsigned)g(c)m(har)f(*)f Fg(str)p +Fh(,)h(in)m(t)f Fg(str_size)p Fh(,)i(in)m(t)e(*)g Fg(str_len)p +Fi(\))390 2364 y Ff(der)7 b Fs(:)40 b(DER)30 b(data)h(to)g(deco)s(de)g +(con)m(taining)h(the)e(OCTET)f(SEQUENCE.)390 2516 y Ff(der)p +523 2516 28 4 v 40 w(len)p Fs(:)40 b(The)30 b(length)h(of)g(the)f +Fl(der)g Fs(data)h(to)g(deco)s(de.)390 2668 y Ff(ret)p +507 2668 V 40 w(len)p Fs(:)41 b(Output)29 b(v)-5 b(ariable)32 +b(con)m(taining)f(the)g(enco)s(ded)f(length)h(of)f(the)h(DER)f(data.) +390 2820 y Ff(str)7 b Fs(:)40 b(Pre-allo)s(cated)33 b(output)d +(bu\013er)f(to)i(put)f(deco)s(ded)g(OCTET)f(SEQUENCE)g(in.)390 +2973 y Ff(str)p 503 2973 V 40 w(size)5 b Fs(:)41 b(Length)31 +b(of)f(pre-allo)s(cated)j(output)d(bu\013er.)390 3125 +y Ff(str)p 503 3125 V 40 w(len)p Fs(:)57 b(Output)38 b(v)-5 b(ariable)40 b(con)m(taining)g(the)f(length)g(of)g(the)g(con)m -(ten)m(ts)h(of)f(the)g(OCTET)e(SE-)390 2113 y(QUENCE.)390 -2241 y(Extract)g(an)f(OCTET)e(SEQUENCE)h(from)h(DER)g(data.)58 -b(Note)37 b(that)g(this)f(function)g(exp)s(ects)390 2351 +(ten)m(ts)h(of)f(the)g(OCTET)e(SE-)390 3234 y(QUENCE.)390 +3387 y(Extract)g(an)f(OCTET)e(SEQUENCE)h(from)h(DER)g(data.)58 +b(Note)37 b(that)g(this)f(function)g(exp)s(ects)390 3496 y(the)31 b(DER)f(data)h(past)g(the)f(tag)i(\014eld,)e(i.e.,)i(the)e -(length)h(and)f(con)m(ten)m(t)i(o)s(ctets.)390 2479 y -Fe(Returns:)40 b Fr(Returns)30 b Fk(ASN1_SUCCESS)d Fr(on)j(success,)h -(or)f(an)h(error.)150 2665 y Fj(asn1)p 396 2665 37 5 -v 55 w(get)p 616 2665 V 54 w(ob)7 b(ject)p 1002 2665 -V 54 w(id)p 1158 2665 V 54 w(der)3350 2849 y Fr([F)-8 -b(unction])-3599 b Fi(int)53 b(asn1_get_object_id_de)q(r)e -Fh(\()p Fg(const)32 b(unsigned)d(c)m(har)i(*)f Ff(der)p -Fg(,)i(in)m(t)565 2959 y Ff(der_len)p Fg(,)h(in)m(t)e(*)f -Ff(ret_len)p Fg(,)j(c)m(har)e(*)g Ff(str)p Fg(,)g(in)m(t)g -Ff(str_size)p Fh(\))390 3068 y Fg(der)7 b Fr(:)40 b(DER)30 +(length)h(and)f(con)m(ten)m(t)i(o)s(ctets.)390 3649 y +Fe(Returns:)40 b Fs(Returns)30 b Fl(ASN1_SUCCESS)d Fs(on)j(success,)h +(or)f(an)h(error.)150 3866 y Fk(asn1)p 396 3866 37 5 +v 55 w(get)p 616 3866 V 54 w(ob)7 b(ject)p 1002 3866 +V 54 w(id)p 1158 3866 V 54 w(der)3350 4080 y Fs([F)-8 +b(unction])-3599 b Fj(int)53 b(asn1_get_object_id_de)q(r)e +Fi(\()p Fh(const)34 b(unsigned)h(c)m(har)f(*)f Fg(der)p +Fh(,)h(in)m(t)565 4190 y Fg(der_len)p Fh(,)h(in)m(t)e(*)g +Fg(ret_len)p Fh(,)i(c)m(har)f(*)f Fg(str)p Fh(,)h(in)m(t)f +Fg(str_size)p Fi(\))390 4299 y Ff(der)7 b Fs(:)40 b(DER)30 b(data)h(to)g(deco)s(de)g(con)m(taining)h(the)e(OBJECT)g(IDENTIFIER)390 -3196 y Fg(der)p 523 3196 28 4 v 40 w(len)p Fr(:)40 b(Length)31 -b(of)f(DER)h(data)g(to)g(deco)s(de.)390 3324 y Fg(ret)p -507 3324 V 40 w(len)p Fr(:)41 b(Output)29 b(v)-5 b(ariable)32 +4451 y Ff(der)p 523 4451 28 4 v 40 w(len)p Fs(:)40 b(Length)31 +b(of)f(DER)h(data)g(to)g(deco)s(de.)390 4604 y Ff(ret)p +507 4604 V 40 w(len)p Fs(:)41 b(Output)29 b(v)-5 b(ariable)32 b(con)m(taining)f(the)g(length)g(of)f(the)h(DER)f(data.)390 -3452 y Fg(str)7 b Fr(:)40 b(Pre-allo)s(cated)33 b(output)d(bu\013er)f +4756 y Ff(str)7 b Fs(:)40 b(Pre-allo)s(cated)33 b(output)d(bu\013er)f (to)i(put)f(the)g(textual)i(ob)5 b(ject)31 b(id)f(in.)390 -3581 y Fg(str)p 503 3581 V 40 w(size)5 b Fr(:)41 b(Length)31 -b(of)f(pre-allo)s(cated)j(output)d(bu\013er.)390 3709 -y(Con)m(v)m(erts)h(a)g(DER)f(enco)s(ded)g(ob)5 b(ject)32 -b(iden)m(ti\014er)e(to)h(its)g(textual)h(form.)390 3837 -y Fe(Returns:)40 b Fk(ASN1_SUCCESS)27 b Fr(on)k(success,)g(or)f(an)g -(error.)150 4023 y Fj(asn1)p 396 4023 37 5 v 55 w(get)p -616 4023 V 54 w(bit)p 820 4023 V 54 w(der)3350 4207 y -Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_get_bit_der)e -Fh(\()p Fg(const)31 b(unsigned)e(c)m(har)i(*)g Ff(der)p -Fg(,)g(in)m(t)g Ff(der_len)p Fg(,)i(in)m(t)d(*)565 4316 -y Ff(ret_len)p Fg(,)j(unsigned)c(c)m(har)i(*)g Ff(str)p -Fg(,)g(in)m(t)g Ff(str_size)p Fg(,)i(in)m(t)e(*)g Ff(bit_len)p -Fh(\))390 4426 y Fg(der)7 b Fr(:)40 b(DER)30 b(data)h(to)g(deco)s(de)g -(con)m(taining)h(the)e(BIT)h(SEQUENCE.)390 4554 y Fg(der)p -523 4554 28 4 v 40 w(len)p Fr(:)40 b(Length)31 b(of)f(DER)h(data)g(to)g -(deco)s(de.)390 4682 y Fg(ret)p 507 4682 V 40 w(len)p -Fr(:)41 b(Output)29 b(v)-5 b(ariable)32 b(con)m(taining)f(the)g(length) -g(of)f(the)h(DER)f(data.)390 4810 y Fg(str)7 b Fr(:)40 -b(Pre-allo)s(cated)33 b(output)d(bu\013er)f(to)i(put)f(deco)s(ded)g -(BIT)g(SEQUENCE)f(in.)390 4938 y Fg(str)p 503 4938 V -40 w(size)5 b Fr(:)41 b(Length)31 b(of)f(pre-allo)s(cated)j(output)d -(bu\013er.)390 5066 y Fg(bit)p 507 5066 V 40 w(len)p -Fr(:)41 b(Output)29 b(v)-5 b(ariable)31 b(con)m(taining)h(the)f(size)g -(of)g(the)f(BIT)g(SEQUENCE.)390 5194 y(Extract)h(a)g(BIT)f(SEQUENCE)f -(from)h(DER)h(data.)390 5322 y Fe(Returns:)40 b Fk(ASN1_SUCCESS)27 -b Fr(on)k(success,)g(or)f(an)g(error.)p eop end +4908 y Ff(str)p 503 4908 V 40 w(size)5 b Fs(:)41 b(Length)31 +b(of)f(pre-allo)s(cated)j(output)d(bu\013er.)390 5060 +y(Con)m(v)m(erts)i(a)f(DER)h(enco)s(ded)e(ob)5 b(ject)32 +b(iden)m(ti\014er)f(to)h(its)g(textual)g(form.)42 b(This)31 +b(function)g(exp)s(ects)390 5170 y(the)g(DER)f(ob)5 b(ject)31 +b(iden)m(ti\014er)g(without)f(the)h(tag.)390 5322 y Fe(Returns:)40 +b Fl(ASN1_SUCCESS)27 b Fs(on)k(success,)g(or)f(an)g(error.)p +eop end %%Page: 19 22 -TeXDict begin 19 21 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(19)150 299 y Fj(asn1)p -396 299 37 5 v 55 w(der)p 625 299 V 54 w(deco)s(ding2)3350 -497 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_der_decoding2)e -Fh(\()p Fg(asn1)p 1564 497 28 4 v 41 w(no)s(de)29 b(*)i -Ff(element)p Fg(,)i(const)e(v)m(oid)g(*)f Ff(ider)p Fg(,)i(in)m(t)565 -607 y(*)f Ff(max_ider_len)p Fg(,)j(unsigned)29 b(in)m(t)i -Ff(flags)p Fg(,)h(c)m(har)f(*)g Ff(errorDescription)p -Fh(\))390 717 y Fg(elemen)m(t)r Fr(:)42 b(p)s(oin)m(ter)31 -b(to)g(an)f(ASN1)h(structure.)390 853 y Fg(ider)7 b Fr(:)40 -b(v)m(ector)32 b(that)f(con)m(tains)g(the)g(DER)g(enco)s(ding.)390 -989 y Fg(max)p 565 989 V 40 w(ider)p 757 989 V 40 w(len)p -Fr(:)37 b(p)s(oin)m(ter)22 b(to)i(an)e(in)m(teger)i(giving)f(the)g -(information)g(ab)s(out)f(the)h(maximal)g(n)m(um)m(b)s(er)390 -1099 y(of)29 b(b)m(ytes)g(o)s(ccupied)f(b)m(y)h(*)g Fk(ider)e -Fr(.)41 b(The)28 b(real)h(size)g(of)g(the)g(DER)g(enco)s(ding)f(is)h -(returned)f(through)390 1208 y(this)i(p)s(oin)m(ter.)390 -1345 y Fg(\015ags)t Fr(:)41 b(\015ags)30 b(con)m(trolling)j(the)d(b)s -(eha)m(viour)g(of)h(the)f(function.)390 1481 y Fg(errorDescription)p -Fr(:)41 b(n)m(ull-terminated)32 b(string)e(con)m(tains)h(details)h -(when)d(an)h(error)g(o)s(ccurred.)390 1617 y(Fill)38 -b(the)f(structure)g(*)h Fk(element)d Fr(with)h(v)-5 b(alues)38 +TeXDict begin 19 21 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(19)150 299 y Fk(asn1)p +396 299 37 5 v 55 w(get)p 616 299 V 54 w(bit)p 820 299 +V 54 w(der)3350 500 y Fs([F)-8 b(unction])-3599 b Fj(int)53 +b(asn1_get_bit_der)e Fi(\()p Fh(const)34 b(unsigned)g(c)m(har)g(*)f +Fg(der)p Fh(,)h(in)m(t)f Fg(der_len)p Fh(,)i(in)m(t)565 +609 y(*)e Fg(ret_len)p Fh(,)i(unsigned)g(c)m(har)f(*)f +Fg(str)p Fh(,)h(in)m(t)f Fg(str_size)p Fh(,)i(in)m(t)e(*)g +Fg(bit_len)p Fi(\))390 719 y Ff(der)7 b Fs(:)40 b(DER)30 +b(data)h(to)g(deco)s(de)g(con)m(taining)h(the)e(BIT)h(SEQUENCE.)390 +858 y Ff(der)p 523 858 28 4 v 40 w(len)p Fs(:)40 b(Length)31 +b(of)f(DER)h(data)g(to)g(deco)s(de.)390 996 y Ff(ret)p +507 996 V 40 w(len)p Fs(:)41 b(Output)29 b(v)-5 b(ariable)32 +b(con)m(taining)f(the)g(length)g(of)f(the)h(DER)f(data.)390 +1135 y Ff(str)7 b Fs(:)40 b(Pre-allo)s(cated)33 b(output)d(bu\013er)f +(to)i(put)f(deco)s(ded)g(BIT)g(SEQUENCE)f(in.)390 1274 +y Ff(str)p 503 1274 V 40 w(size)5 b Fs(:)41 b(Length)31 +b(of)f(pre-allo)s(cated)j(output)d(bu\013er.)390 1413 +y Ff(bit)p 507 1413 V 40 w(len)p Fs(:)41 b(Output)29 +b(v)-5 b(ariable)31 b(con)m(taining)h(the)f(size)g(of)g(the)f(BIT)g +(SEQUENCE.)390 1551 y(Extract)h(a)g(BIT)f(SEQUENCE)f(from)h(DER)h +(data.)390 1690 y Fe(Returns:)40 b Fl(ASN1_SUCCESS)27 +b Fs(on)k(success,)g(or)f(an)g(error.)150 1894 y Fk(asn1)p +396 1894 37 5 v 55 w(der)p 625 1894 V 54 w(deco)s(ding2)3350 +2095 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_der_decoding2)e +Fi(\()p Fh(asn1)p 1582 2095 30 5 v 45 w(no)s(de)33 b(*)g +Fg(element)p Fh(,)i(const)f(v)m(oid)f(*)g Fg(ider)p Fh(,)565 +2204 y(in)m(t)g(*)g Fg(max_ider_len)p Fh(,)k(unsigned)e(in)m(t)e +Fg(flags)p Fh(,)h(c)m(har)g(*)f Fg(errorDescription)p +Fi(\))390 2314 y Ff(elemen)m(t)r Fs(:)42 b(p)s(oin)m(ter)31 +b(to)g(an)f(ASN1)h(structure.)390 2452 y Ff(ider)7 b +Fs(:)40 b(v)m(ector)32 b(that)f(con)m(tains)g(the)g(DER)g(enco)s(ding.) +390 2591 y Ff(max)p 565 2591 28 4 v 40 w(ider)p 757 2591 +V 40 w(len)p Fs(:)37 b(p)s(oin)m(ter)22 b(to)i(an)e(in)m(teger)i +(giving)f(the)g(information)g(ab)s(out)f(the)h(maximal)g(n)m(um)m(b)s +(er)390 2701 y(of)29 b(b)m(ytes)g(o)s(ccupied)f(b)m(y)h(*)g +Fl(ider)e Fs(.)41 b(The)28 b(real)h(size)g(of)g(the)g(DER)g(enco)s +(ding)f(is)h(returned)f(through)390 2810 y(this)i(p)s(oin)m(ter.)390 +2949 y Ff(\015ags)t Fs(:)41 b(\015ags)30 b(con)m(trolling)j(the)d(b)s +(eha)m(viour)g(of)h(the)f(function.)390 3088 y Ff(errorDescription)p +Fs(:)41 b(n)m(ull-terminated)32 b(string)e(con)m(tains)h(details)h +(when)d(an)h(error)g(o)s(ccurred.)390 3226 y(Fill)38 +b(the)f(structure)g(*)h Fl(element)d Fs(with)h(v)-5 b(alues)38 b(of)f(a)h(DER)f(enco)s(ding)g(string.)61 b(The)36 b(structure)390 -1727 y(m)m(ust)30 b(just)g(b)s(e)g(created)h(with)f(function)g -Fk(asn1_create_element\(\))25 b Fr(.)390 1863 y(If)d -Fk(ASN1_DECODE_FLAG_ALLOW_P)o(ADD)o(ING)16 b Fr(\015ag)23 +3336 y(m)m(ust)30 b(just)g(b)s(e)g(created)h(with)f(function)g +Fl(asn1_create_element\(\))25 b Fs(.)390 3475 y(If)d +Fl(ASN1_DECODE_FLAG_ALLOW_P)o(ADD)o(ING)16 b Fs(\015ag)23 b(is)f(set)h(then)f(the)g(function)g(will)h(ignore)g(padding)390 -1973 y(after)31 b(the)h(deco)s(ded)e(DER)h(data.)43 b(Up)s(on)30 +3584 y(after)31 b(the)h(deco)s(ded)e(DER)h(data.)43 b(Up)s(on)30 b(a)i(successful)e(return)g(the)h(v)-5 b(alue)32 b(of)f(*)g -Fk(max_ider_len)390 2082 y Fr(will)g(b)s(e)e(set)i(to)g(the)g(n)m(um)m -(b)s(er)e(of)i(b)m(ytes)g(deco)s(ded.)390 2218 y(If)j -Fk(ASN1_DECODE_FLAG_STRICT_DE)o(R)29 b Fr(\015ag)35 b(is)g(set)h(then)e +Fl(max_ider_len)390 3694 y Fs(will)g(b)s(e)e(set)i(to)g(the)g(n)m(um)m +(b)s(er)e(of)i(b)m(ytes)g(deco)s(ded.)390 3833 y(If)j +Fl(ASN1_DECODE_FLAG_STRICT_DE)o(R)29 b Fs(\015ag)35 b(is)g(set)h(then)e (the)h(function)g(will)g(not)h(deco)s(de)f(an)m(y)390 -2328 y(BER-enco)s(ded)30 b(elemen)m(ts.)390 2464 y Fe(Returns:)39 -b Fk(ASN1_SUCCESS)25 b Fr(if)i(DER)h(enco)s(ding)g(OK,)f -Fk(ASN1_ELEMENT_NOT_FOUND)22 b Fr(if)28 b Fk(ELEMENT)390 -2574 y Fr(is)g Fk(NULL)e Fr(,)i(and)g Fk(ASN1_TAG_ERROR)23 -b Fr(or)28 b Fk(ASN1_DER_ERROR)c Fr(if)j(the)h(der)f(enco)s(ding)h(do)s -(esn't)f(matc)m(h)390 2684 y(the)k(structure)e(name)i(\(*)g -Fk(ELEMENT)d Fr(deleted\).)150 2885 y Fj(asn1)p 396 2885 -37 5 v 55 w(der)p 625 2885 V 54 w(deco)s(ding)3350 3083 -y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_der_decoding)e -Fh(\()p Fg(asn1)p 1512 3083 28 4 v 40 w(no)s(de)30 b(*)h -Ff(element)p Fg(,)i(const)d(v)m(oid)h(*)g Ff(ider)p Fg(,)h(in)m(t)565 -3193 y Ff(ider_len)p Fg(,)h(c)m(har)e(*)g Ff(errorDescription)p -Fh(\))390 3302 y Fg(elemen)m(t)r Fr(:)42 b(p)s(oin)m(ter)31 -b(to)g(an)f(ASN1)h(structure.)390 3439 y Fg(ider)7 b -Fr(:)40 b(v)m(ector)32 b(that)f(con)m(tains)g(the)g(DER)g(enco)s(ding.) -390 3575 y Fg(ider)p 548 3575 V 40 w(len)p Fr(:)41 b(n)m(um)m(b)s(er)29 -b(of)h(b)m(ytes)h(of)g(*)f Fk(ider)g Fr(:)40 b Fk(ider)29 -b Fr([0]..)42 b Fk(ider)30 b Fr([len-1].)390 3711 y Fg -(errorDescription)p Fr(:)41 b(n)m(ull-terminated)32 b(string)e(con)m -(tains)h(details)h(when)d(an)h(error)g(o)s(ccurred.)390 -3847 y(Fill)38 b(the)f(structure)g(*)h Fk(element)d Fr(with)h(v)-5 -b(alues)38 b(of)f(a)h(DER)f(enco)s(ding)g(string.)61 -b(The)36 b(structure)390 3957 y(m)m(ust)30 b(just)g(b)s(e)g(created)h -(with)f(function)g Fk(asn1_create_element\(\))25 b Fr(.)390 -4093 y(Note)32 b(that)f(the)f(*)h Fk(element)d Fr(v)-5 -b(ariable)32 b(is)e(pro)m(vided)g(as)h(a)f(p)s(oin)m(ter)h(for)f -(historical)i(reasons.)390 4229 y Fe(Returns:)39 b Fk(ASN1_SUCCESS)25 -b Fr(if)i(DER)h(enco)s(ding)g(OK,)f Fk(ASN1_ELEMENT_NOT_FOUND)22 -b Fr(if)28 b Fk(ELEMENT)390 4339 y Fr(is)g Fk(NULL)e -Fr(,)i(and)g Fk(ASN1_TAG_ERROR)23 b Fr(or)28 b Fk(ASN1_DER_ERROR)c -Fr(if)j(the)h(der)f(enco)s(ding)h(do)s(esn't)f(matc)m(h)390 -4449 y(the)k(structure)e(name)i(\(*)g Fk(ELEMENT)d Fr(deleted\).)150 -4650 y Fj(asn1)p 396 4650 37 5 v 55 w(der)p 625 4650 -V 54 w(deco)s(ding)p 1153 4650 V 55 w(elemen)m(t)3350 -4848 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_der_decoding_ele)q -(ment)f Fh(\()p Fg(asn1)p 1930 4848 28 4 v 41 w(no)s(de)30 -b(*)g Ff(structure)p Fg(,)k(const)d(c)m(har)565 4958 -y(*)g Ff(elementName)p Fg(,)j(const)d(v)m(oid)g(*)f Ff(ider)p -Fg(,)i(in)m(t)f Ff(len)p Fg(,)g(c)m(har)g(*)g Ff(errorDescription)p -Fh(\))390 5067 y Fg(structure)5 b Fr(:)40 b(p)s(oin)m(ter)31 -b(to)g(an)f(ASN1)h(structure)390 5204 y Fg(elemen)m(tName)5 -b Fr(:)43 b(name)31 b(of)f(the)h(elemen)m(t)g(to)h(\014ll)390 -5340 y Fg(ider)7 b Fr(:)40 b(v)m(ector)32 b(that)f(con)m(tains)g(the)g -(DER)g(enco)s(ding)f(of)g(the)h(whole)g(structure.)p +3942 y(BER-enco)s(ded)30 b(elemen)m(ts.)390 4081 y Fe(Returns:)39 +b Fl(ASN1_SUCCESS)25 b Fs(if)i(DER)h(enco)s(ding)g(OK,)f +Fl(ASN1_ELEMENT_NOT_FOUND)22 b Fs(if)28 b Fl(ELEMENT)390 +4191 y Fs(is)g Fl(NULL)e Fs(,)i(and)g Fl(ASN1_TAG_ERROR)23 +b Fs(or)28 b Fl(ASN1_DER_ERROR)c Fs(if)j(the)h(der)f(enco)s(ding)h(do)s +(esn't)f(matc)m(h)390 4300 y(the)k(structure)e(name)i(\(*)g +Fl(ELEMENT)d Fs(deleted\).)150 4504 y Fk(asn1)p 396 4504 +37 5 v 55 w(der)p 625 4504 V 54 w(deco)s(ding)3350 4705 +y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_der_decoding)e +Fi(\()p Fh(asn1)p 1530 4705 30 5 v 44 w(no)s(de)34 b(*)f +Fg(element)p Fh(,)i(const)f(v)m(oid)f(*)g Fg(ider)p Fh(,)565 +4814 y(in)m(t)g Fg(ider_len)p Fh(,)j(c)m(har)e(*)f Fg(errorDescription) +p Fi(\))390 4924 y Ff(elemen)m(t)r Fs(:)42 b(p)s(oin)m(ter)31 +b(to)g(an)f(ASN1)h(structure.)390 5063 y Ff(ider)7 b +Fs(:)40 b(v)m(ector)32 b(that)f(con)m(tains)g(the)g(DER)g(enco)s(ding.) +390 5201 y Ff(ider)p 548 5201 28 4 v 40 w(len)p Fs(:)41 +b(n)m(um)m(b)s(er)29 b(of)h(b)m(ytes)h(of)g(*)f Fl(ider)g +Fs(:)40 b Fl(ider)29 b Fs([0]..)42 b Fl(ider)30 b Fs([len-1].)390 +5340 y Ff(errorDescription)p Fs(:)41 b(n)m(ull-terminated)32 +b(string)e(con)m(tains)h(details)h(when)d(an)h(error)g(o)s(ccurred.)p eop end %%Page: 20 23 -TeXDict begin 20 22 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(20)390 299 y Fg(len)p -Fr(:)41 b(n)m(um)m(b)s(er)29 b(of)h(b)m(ytes)h(of)g(*der:)40 -b(der[0]..der[len-1])390 435 y Fg(errorDescription)p -Fr(:)h(n)m(ull-terminated)32 b(string)e(con)m(tains)h(details)h(when)d -(an)h(error)g(o)s(ccurred.)390 572 y(Fill)41 b(the)g(elemen)m(t)g -(named)f Fk(ELEMENTNAME)d Fr(with)j(v)-5 b(alues)40 b(of)h(a)f(DER)g -(enco)s(ding)g(string.)70 b(The)390 682 y(structure)36 -b(m)m(ust)h(just)f(b)s(e)g(created)i(with)e(function)h -Fk(asn1_create_element\(\))31 b Fr(.)60 b(The)36 b(DER)390 -791 y(v)m(ector)d(m)m(ust)e(con)m(tain)h(the)f(enco)s(ding)g(string)g -(of)g(the)h(whole)f Fk(STRUCTURE)d Fr(.)43 b(If)31 b(an)g(error)f(o)s -(ccurs)390 901 y(during)f(the)i(deco)s(ding)f(pro)s(cedure,)f(the)i(*)g -Fk(STRUCTURE)d Fr(is)i(deleted)h(and)f(set)h(equal)g(to)g -Fk(NULL)e Fr(.)390 1037 y(This)h(function)h(is)h(deprecated)f(and)g(ma) -m(y)h(just)f(b)s(e)f(an)h(alias)i(to)f(asn1)p 2820 1037 -28 4 v 40 w(der)p 2987 1037 V 40 w(deco)s(ding)f(in)g(future)390 -1147 y(v)m(ersions.)41 b(Use)31 b Fk(asn1_der_decoding\(\))25 -b Fr(instead.)390 1284 y Fe(Returns:)63 b Fk(ASN1_SUCCESS)39 -b Fr(if)j(DER)g(enco)s(ding)g(OK,)f Fk(ASN1_ELEMENT_NOT_FOUND)36 -b Fr(if)42 b(ELE-)390 1393 y(MENT)24 b(is)h Fk(NULL)e -Fr(or)h Fk(elementName)d Fr(==)j(NULL,)g(and)g Fk(ASN1_TAG_ERROR)d -Fr(or)j Fk(ASN1_DER_ERROR)390 1503 y Fr(if)30 b(the)h(der)f(enco)s -(ding)g(do)s(esn't)g(matc)m(h)h(the)g(structure)f Fk(structure)e -Fr(\(*ELEMENT)i(deleted\).)150 1704 y Fj(asn1)p 396 1704 -37 5 v 55 w(der)p 625 1704 V 54 w(deco)s(ding)p 1153 -1704 V 55 w(startEnd)3350 1903 y Fr([F)-8 b(unction])-3599 -b Fi(int)53 b(asn1_der_decoding_sta)q(rtEn)q(d)f Fh(\()p -Fg(asn1)p 1983 1903 28 4 v 40 w(no)s(de)30 b Ff(element)p -Fg(,)j(const)d(v)m(oid)h(*)565 2013 y Ff(ider)p Fg(,)h(in)m(t)f -Ff(ider_len)p Fg(,)i(const)e(c)m(har)f(*)h Ff(name_element)p -Fg(,)j(in)m(t)d(*)g Ff(start)p Fg(,)h(in)m(t)f(*)g Ff(end)p -Fh(\))390 2122 y Fg(elemen)m(t)r Fr(:)42 b(p)s(oin)m(ter)31 -b(to)g(an)f(ASN1)h(elemen)m(t)390 2259 y Fg(ider)7 b -Fr(:)40 b(v)m(ector)32 b(that)f(con)m(tains)g(the)g(DER)g(enco)s(ding.) -390 2395 y Fg(ider)p 548 2395 V 40 w(len)p Fr(:)41 b(n)m(um)m(b)s(er)29 -b(of)h(b)m(ytes)h(of)g(*)f Fk(ider)g Fr(:)40 b Fk(ider)29 -b Fr([0]..)42 b Fk(ider)30 b Fr([len-1])390 2532 y Fg(name)p -608 2532 V 40 w(elemen)m(t)r Fr(:)42 b(an)31 b(elemen)m(t)g(of)g(NAME)g -(structure.)390 2669 y Fg(start)r Fr(:)41 b(the)31 b(p)s(osition)f(of)h -(the)f(\014rst)g(b)m(yte)h(of)g(NAME)p 2189 2669 V 40 -w(ELEMENT)f(deco)s(ding)g(\()h Fk(ider)e Fr([*start]\))390 -2805 y Fg(end)t Fr(:)40 b(the)30 b(p)s(osition)h(of)f(the)h(last)g(b)m -(yte)g(of)g(NAME)p 2129 2805 V 40 w(ELEMENT)f(deco)s(ding)g(\()h -Fk(ider)e Fr([*end]\))390 2942 y(Find)45 b(the)h(start)g(and)f(end)g(p) -s(oin)m(t)g(of)h(an)f(elemen)m(t)i(in)e(a)h(DER)g(enco)s(ding)f -(string.)87 b(I)45 b(mean)390 3051 y(that)35 b(if)f(y)m(ou)h(ha)m(v)m -(e)h(a)e(der)g(enco)s(ding)g(and)g(y)m(ou)h(ha)m(v)m(e)g(already)g -(used)f(the)g(function)g Fk(asn1_der_)390 3161 y(decoding\(\))22 -b Fr(to)j(\014ll)g(a)g(structure,)h(it)f(ma)m(y)h(happ)s(en)d(that)i(y) -m(ou)g(w)m(an)m(t)h(to)f(\014nd)e(the)i(piece)h(of)f(string)390 -3270 y(concerning)31 b(an)f(elemen)m(t)i(of)e(the)h(structure.)390 -3407 y(One)f(example)h(is)f(the)h(sequence)g Fk(")p Fr -(tbsCerti\014cate)p Fk(")g Fr(inside)f(an)g(X509)i(certi\014cate.)390 -3544 y(Note)38 b(that)g(since)f(libtasn1)g(3.7)h(the)f -Fk(ider)f Fr(and)g Fk(ider_len)f Fr(parameters)i(can)g(b)s(e)f -(omitted,)k(if)390 3653 y(the)31 b(elemen)m(t)g(is)g(already)g(deco)s -(ded)f(using)g Fk(asn1_der_decoding\(\))25 b Fr(.)390 -3790 y Fe(Returns:)63 b Fk(ASN1_SUCCESS)39 b Fr(if)j(DER)g(enco)s(ding) -g(OK,)f Fk(ASN1_ELEMENT_NOT_FOUND)36 b Fr(if)42 b(ELE-)390 -3899 y(MENT)37 b(is)g Fk(asn1_node)e Fr(EMPTY)h(or)h -Fk(name_element)d Fr(is)j(not)g(a)h(v)-5 b(alid)37 b(elemen)m(t,)j -Fk(ASN1_TAG_)390 4009 y(ERROR)j Fr(or)h Fk(ASN1_DER_ERROR)d -Fr(if)j(the)h(der)f(enco)s(ding)g(do)s(esn't)g(matc)m(h)i(the)e -(structure)g(ELE-)390 4119 y(MENT.)150 4320 y Fj(asn1)p -396 4320 37 5 v 55 w(expand)p 836 4320 V 54 w(an)m(y)p -1080 4320 V 53 w(de\014ned)p 1517 4320 V 55 w(b)m(y)3350 -4519 y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_expand_any_defin)q -(ed_b)q(y)f Fh(\()p Fg(asn1)p 1983 4519 28 4 v 40 w(no)s(de)30 -b Ff(definitions)p Fg(,)565 4628 y(asn1)p 748 4628 V -40 w(no)s(de)g(*)h Ff(element)p Fh(\))390 4738 y Fg(de\014nitions)t -Fr(:)40 b(ASN1)31 b(de\014nitions)390 4875 y Fg(elemen)m(t)r -Fr(:)42 b(p)s(oin)m(ter)31 b(to)g(an)f(ASN1)h(structure)390 -5011 y(Expands)36 b(ev)m(ery)j Fk(")p Fr(ANY)f(DEFINED)g(BY)p -Fk(")g Fr(elemen)m(t)h(of)f(a)g(structure)g(created)g(from)g(a)g(DER) -390 5121 y(deco)s(ding)c(pro)s(cess)g(\(asn1)p 1314 5121 -V 41 w(der)p 1482 5121 V 40 w(deco)s(ding)g(function\).)53 -b(The)34 b(elemen)m(t)i(ANY)f(m)m(ust)f(b)s(e)g(de\014ned)390 -5230 y(b)m(y)26 b(an)f(OBJECT)g(IDENTIFIER.)h(The)f(t)m(yp)s(e)h(used)f -(to)i(expand)e(the)h(elemen)m(t)h(ANY)g(is)f(the)g(\014rst)390 -5340 y(one)31 b(follo)m(wing)h(the)e(de\014nition)g(of)h(the)f(actual)i -(v)-5 b(alue)31 b(of)f(the)h(OBJECT)e(IDENTIFIER.)p eop +TeXDict begin 20 22 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(20)390 299 y(Fill)38 +b(the)f(structure)g(*)h Fl(element)d Fs(with)h(v)-5 b(alues)38 +b(of)f(a)h(DER)f(enco)s(ding)g(string.)61 b(The)36 b(structure)390 +408 y(m)m(ust)30 b(just)g(b)s(e)g(created)h(with)f(function)g +Fl(asn1_create_element\(\))25 b Fs(.)390 543 y(Note)32 +b(that)f(the)f(*)h Fl(element)d Fs(v)-5 b(ariable)32 +b(is)e(pro)m(vided)g(as)h(a)f(p)s(oin)m(ter)h(for)f(historical)i +(reasons.)390 677 y Fe(Returns:)39 b Fl(ASN1_SUCCESS)25 +b Fs(if)i(DER)h(enco)s(ding)g(OK,)f Fl(ASN1_ELEMENT_NOT_FOUND)22 +b Fs(if)28 b Fl(ELEMENT)390 786 y Fs(is)g Fl(NULL)e Fs(,)i(and)g +Fl(ASN1_TAG_ERROR)23 b Fs(or)28 b Fl(ASN1_DER_ERROR)c +Fs(if)j(the)h(der)f(enco)s(ding)h(do)s(esn't)f(matc)m(h)390 +896 y(the)k(structure)e(name)i(\(*)g Fl(ELEMENT)d Fs(deleted\).)150 +1094 y Fk(asn1)p 396 1094 37 5 v 55 w(der)p 625 1094 +V 54 w(deco)s(ding)p 1153 1094 V 55 w(elemen)m(t)3350 +1290 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_der_decoding_ele)q +(ment)f Fi(\()p Fh(asn1)p 1948 1290 30 5 v 45 w(no)s(de)33 +b(*)h Fg(structure)p Fh(,)h(const)565 1400 y(c)m(har)f(*)f +Fg(elementName)p Fh(,)j(const)e(v)m(oid)f(*)g Fg(ider)p +Fh(,)h(in)m(t)f Fg(len)p Fh(,)h(c)m(har)g(*)565 1509 +y Fg(errorDescription)p Fi(\))390 1619 y Ff(structure)5 +b Fs(:)40 b(p)s(oin)m(ter)31 b(to)g(an)f(ASN1)h(structure)390 +1753 y Ff(elemen)m(tName)5 b Fs(:)43 b(name)31 b(of)f(the)h(elemen)m(t) +g(to)h(\014ll)390 1887 y Ff(ider)7 b Fs(:)40 b(v)m(ector)32 +b(that)f(con)m(tains)g(the)g(DER)g(enco)s(ding)f(of)g(the)h(whole)g +(structure.)390 2021 y Ff(len)p Fs(:)41 b(n)m(um)m(b)s(er)29 +b(of)h(b)m(ytes)h(of)g(*der:)40 b(der[0]..der[len-1])390 +2155 y Ff(errorDescription)p Fs(:)h(n)m(ull-terminated)32 +b(string)e(con)m(tains)h(details)h(when)d(an)h(error)g(o)s(ccurred.)390 +2290 y(Fill)41 b(the)g(elemen)m(t)g(named)f Fl(ELEMENTNAME)d +Fs(with)j(v)-5 b(alues)40 b(of)h(a)f(DER)g(enco)s(ding)g(string.)70 +b(The)390 2399 y(structure)36 b(m)m(ust)h(just)f(b)s(e)g(created)i +(with)e(function)h Fl(asn1_create_element\(\))31 b Fs(.)60 +b(The)36 b(DER)390 2509 y(v)m(ector)d(m)m(ust)e(con)m(tain)h(the)f +(enco)s(ding)g(string)g(of)g(the)h(whole)f Fl(STRUCTURE)d +Fs(.)43 b(If)31 b(an)g(error)f(o)s(ccurs)390 2618 y(during)f(the)i +(deco)s(ding)f(pro)s(cedure,)f(the)i(*)g Fl(STRUCTURE)d +Fs(is)i(deleted)h(and)f(set)h(equal)g(to)g Fl(NULL)e +Fs(.)390 2752 y(This)h(function)h(is)h(deprecated)f(and)g(ma)m(y)h +(just)f(b)s(e)f(an)h(alias)i(to)f(asn1)p 2820 2752 28 +4 v 40 w(der)p 2987 2752 V 40 w(deco)s(ding)f(in)g(future)390 +2862 y(v)m(ersions.)41 b(Use)31 b Fl(asn1_der_decoding\(\))25 +b Fs(instead.)390 2996 y Fe(Returns:)63 b Fl(ASN1_SUCCESS)39 +b Fs(if)j(DER)g(enco)s(ding)g(OK,)f Fl(ASN1_ELEMENT_NOT_FOUND)36 +b Fs(if)42 b(ELE-)390 3106 y(MENT)24 b(is)h Fl(NULL)e +Fs(or)h Fl(elementName)d Fs(==)j(NULL,)g(and)g Fl(ASN1_TAG_ERROR)d +Fs(or)j Fl(ASN1_DER_ERROR)390 3215 y Fs(if)30 b(the)h(der)f(enco)s +(ding)g(do)s(esn't)g(matc)m(h)h(the)g(structure)f Fl(structure)e +Fs(\(*ELEMENT)i(deleted\).)150 3414 y Fk(asn1)p 396 3414 +37 5 v 55 w(der)p 625 3414 V 54 w(deco)s(ding)p 1153 +3414 V 55 w(startEnd)3350 3610 y Fs([F)-8 b(unction])-3599 +b Fj(int)53 b(asn1_der_decoding_sta)q(rtEn)q(d)f Fi(\()p +Fh(asn1)p 2001 3610 30 5 v 44 w(no)s(de)34 b Fg(element)p +Fh(,)h(const)e(v)m(oid)565 3719 y(*)d Fg(ider)p Fh(,)i(in)m(t)e +Fg(ider_len)p Fh(,)j(const)e(c)m(har)g(*)f Fg(name_element)p +Fh(,)k(in)m(t)c(*)g Fg(start)p Fh(,)i(in)m(t)f(*)f Fg(end)p +Fi(\))390 3829 y Ff(elemen)m(t)r Fs(:)42 b(p)s(oin)m(ter)31 +b(to)g(an)f(ASN1)h(elemen)m(t)390 3963 y Ff(ider)7 b +Fs(:)40 b(v)m(ector)32 b(that)f(con)m(tains)g(the)g(DER)g(enco)s(ding.) +390 4097 y Ff(ider)p 548 4097 28 4 v 40 w(len)p Fs(:)41 +b(n)m(um)m(b)s(er)29 b(of)h(b)m(ytes)h(of)g(*)f Fl(ider)g +Fs(:)40 b Fl(ider)29 b Fs([0]..)42 b Fl(ider)30 b Fs([len-1])390 +4231 y Ff(name)p 608 4231 V 40 w(elemen)m(t)r Fs(:)42 +b(an)31 b(elemen)m(t)g(of)g(NAME)g(structure.)390 4365 +y Ff(start)r Fs(:)41 b(the)31 b(p)s(osition)f(of)h(the)f(\014rst)g(b)m +(yte)h(of)g(NAME)p 2189 4365 V 40 w(ELEMENT)f(deco)s(ding)g(\()h +Fl(ider)e Fs([*start]\))390 4499 y Ff(end)t Fs(:)40 b(the)30 +b(p)s(osition)h(of)f(the)h(last)g(b)m(yte)g(of)g(NAME)p +2129 4499 V 40 w(ELEMENT)f(deco)s(ding)g(\()h Fl(ider)e +Fs([*end]\))390 4633 y(Find)45 b(the)h(start)g(and)f(end)g(p)s(oin)m(t) +g(of)h(an)f(elemen)m(t)i(in)e(a)h(DER)g(enco)s(ding)f(string.)87 +b(I)45 b(mean)390 4743 y(that)35 b(if)f(y)m(ou)h(ha)m(v)m(e)h(a)e(der)g +(enco)s(ding)g(and)g(y)m(ou)h(ha)m(v)m(e)g(already)g(used)f(the)g +(function)g Fl(asn1_der_)390 4853 y(decoding\(\))22 b +Fs(to)j(\014ll)g(a)g(structure,)h(it)f(ma)m(y)h(happ)s(en)d(that)i(y)m +(ou)g(w)m(an)m(t)h(to)f(\014nd)e(the)i(piece)h(of)f(string)390 +4962 y(concerning)31 b(an)f(elemen)m(t)i(of)e(the)h(structure.)390 +5096 y(One)f(example)h(is)f(the)h(sequence)g Fl(")p Fs +(tbsCerti\014cate)p Fl(")g Fs(inside)f(an)g(X509)i(certi\014cate.)390 +5230 y(Note)38 b(that)g(since)f(libtasn1)g(3.7)h(the)f +Fl(ider)f Fs(and)g Fl(ider_len)f Fs(parameters)i(can)g(b)s(e)f +(omitted,)k(if)390 5340 y(the)31 b(elemen)m(t)g(is)g(already)g(deco)s +(ded)f(using)g Fl(asn1_der_decoding\(\))25 b Fs(.)p eop end %%Page: 21 24 -TeXDict begin 21 23 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(21)390 299 y Fe(Returns:)55 -b Fk(ASN1_SUCCESS)35 b Fr(if)j(Substitution)f(OK,)g Fk -(ASN1_ERROR_TYPE_ANY)c Fr(if)k(some)i Fk(")p Fr(ANY)390 -408 y(DEFINED)34 b(BY)p Fk(")f Fr(elemen)m(t)i(couldn't)e(b)s(e)g -(expanded)f(due)g(to)i(a)f(problem)g(in)g(OBJECT)p 3504 -408 28 4 v 39 w(ID)g(-)p Fk(>)390 518 y Fr(TYPE)d(asso)s(ciation,)i(or) -f(other)f(error)g(co)s(des)h(dep)s(ending)e(on)h(DER)g(deco)s(ding.)150 -715 y Fj(asn1)p 396 715 37 5 v 55 w(expand)p 836 715 -V 54 w(o)s(ctet)p 1161 715 V 53 w(string)3350 910 y Fr([F)-8 -b(unction])-3599 b Fi(int)53 b(asn1_expand_octet_str)q(ing)f -Fh(\()p Fg(asn1)p 1878 910 28 4 v 41 w(no)s(de)29 b Ff(definitions)p -Fg(,)34 b(asn1)p 2946 910 V 40 w(no)s(de)565 1020 y(*)d -Ff(element)p Fg(,)i(const)d(c)m(har)h(*)g Ff(octetName)p -Fg(,)i(const)e(c)m(har)g(*)g Ff(objectName)p Fh(\))390 -1129 y Fg(de\014nitions)t Fr(:)40 b(ASN1)31 b(de\014nitions)390 -1263 y Fg(elemen)m(t)r Fr(:)42 b(p)s(oin)m(ter)31 b(to)g(an)f(ASN1)h -(structure)390 1396 y Fg(o)s(ctetName)5 b Fr(:)43 b(name)30 -b(of)h(the)g(OCTECT)d(STRING)i(\014eld)g(to)h(expand.)390 -1530 y Fg(ob)5 b(jectName)g Fr(:)45 b(name)31 b(of)h(the)g(OBJECT)e -(IDENTIFIER)h(\014eld)g(to)i(use)e(to)h(de\014ne)f(the)g(t)m(yp)s(e)h -(for)390 1639 y(expansion.)390 1773 y(Expands)23 b(an)h -Fk(")p Fr(OCTET)e(STRING)p Fk(")i Fr(elemen)m(t)h(of)g(a)f(structure)g -(created)h(from)f(a)h(DER)f(deco)s(ding)390 1882 y(pro)s(cess)39 -b(\(the)h Fk(asn1_der_decoding\(\))34 b Fr(function\).)68 -b(The)39 b(t)m(yp)s(e)h(used)f(for)g(expansion)g(is)h(the)390 -1992 y(\014rst)c(one)h(follo)m(wing)h(the)f(de\014nition)g(of)f(the)h -(actual)i(v)-5 b(alue)37 b(of)g(the)g(OBJECT)e(IDENTIFIER)390 -2101 y(indicated)c(b)m(y)f(OBJECTNAME.)390 2235 y Fe(Returns:)36 -b Fk(ASN1_SUCCESS)18 b Fr(if)j(substitution)g(OK,)g Fk -(ASN1_ELEMENT_NOT_FOUND)15 b Fr(if)22 b Fk(objectName)390 -2345 y Fr(or)j Fk(octetName)e Fr(are)j(not)f(correct,)j -Fk(ASN1_VALUE_NOT_VALID)20 b Fr(if)25 b(it)h(w)m(asn't)g(p)s(ossible)f -(to)h(\014nd)e(the)390 2454 y(t)m(yp)s(e)31 b(to)g(use)f(for)g +TeXDict begin 21 23 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(21)390 299 y Fe(Returns:)63 +b Fl(ASN1_SUCCESS)39 b Fs(if)j(DER)g(enco)s(ding)g(OK,)f +Fl(ASN1_ELEMENT_NOT_FOUND)36 b Fs(if)42 b(ELE-)390 408 +y(MENT)37 b(is)g Fl(asn1_node)e Fs(EMPTY)h(or)h Fl(name_element)d +Fs(is)j(not)g(a)h(v)-5 b(alid)37 b(elemen)m(t,)j Fl(ASN1_TAG_)390 +518 y(ERROR)j Fs(or)h Fl(ASN1_DER_ERROR)d Fs(if)j(the)h(der)f(enco)s +(ding)g(do)s(esn't)g(matc)m(h)i(the)e(structure)g(ELE-)390 +628 y(MENT.)150 831 y Fk(asn1)p 396 831 37 5 v 55 w(expand)p +836 831 V 54 w(an)m(y)p 1080 831 V 53 w(de\014ned)p 1517 +831 V 55 w(b)m(y)3350 1032 y Fs([F)-8 b(unction])-3599 +b Fj(int)53 b(asn1_expand_any_defin)q(ed_b)q(y)f Fi(\()p +Fh(asn1)p 2001 1032 30 5 v 44 w(no)s(de)34 b Fg(definitions)p +Fh(,)565 1142 y(asn1)p 766 1142 V 44 w(no)s(de)g(*)f +Fg(element)p Fi(\))390 1251 y Ff(de\014nitions)t Fs(:)40 +b(ASN1)31 b(de\014nitions)390 1390 y Ff(elemen)m(t)r +Fs(:)42 b(p)s(oin)m(ter)31 b(to)g(an)f(ASN1)h(structure)390 +1529 y(Expands)36 b(ev)m(ery)j Fl(")p Fs(ANY)f(DEFINED)g(BY)p +Fl(")g Fs(elemen)m(t)h(of)f(a)g(structure)g(created)g(from)g(a)g(DER) +390 1638 y(deco)s(ding)c(pro)s(cess)g(\(asn1)p 1314 1638 +28 4 v 41 w(der)p 1482 1638 V 40 w(deco)s(ding)g(function\).)53 +b(The)34 b(elemen)m(t)i(ANY)f(m)m(ust)f(b)s(e)g(de\014ned)390 +1748 y(b)m(y)26 b(an)f(OBJECT)g(IDENTIFIER.)h(The)f(t)m(yp)s(e)h(used)f +(to)i(expand)e(the)h(elemen)m(t)h(ANY)g(is)f(the)g(\014rst)390 +1858 y(one)31 b(follo)m(wing)h(the)e(de\014nition)g(of)h(the)f(actual)i +(v)-5 b(alue)31 b(of)f(the)h(OBJECT)e(IDENTIFIER.)390 +1996 y Fe(Returns:)55 b Fl(ASN1_SUCCESS)35 b Fs(if)j(Substitution)f +(OK,)g Fl(ASN1_ERROR_TYPE_ANY)c Fs(if)k(some)i Fl(")p +Fs(ANY)390 2106 y(DEFINED)34 b(BY)p Fl(")f Fs(elemen)m(t)i(couldn't)e +(b)s(e)g(expanded)f(due)g(to)i(a)f(problem)g(in)g(OBJECT)p +3504 2106 V 39 w(ID)g(-)p Fl(>)390 2216 y Fs(TYPE)d(asso)s(ciation,)i +(or)f(other)f(error)g(co)s(des)h(dep)s(ending)e(on)h(DER)g(deco)s +(ding.)150 2419 y Fk(asn1)p 396 2419 37 5 v 55 w(expand)p +836 2419 V 54 w(o)s(ctet)p 1161 2419 V 53 w(string)3350 +2620 y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_expand_octet_str)q +(ing)f Fi(\()p Fh(asn1)p 1896 2620 30 5 v 44 w(no)s(de)34 +b Fg(definitions)p Fh(,)565 2730 y(asn1)p 766 2730 V +44 w(no)s(de)e(*)f Fg(element)p Fh(,)i(const)f(c)m(har)g(*)f +Fg(octetName)p Fh(,)j(const)e(c)m(har)g(*)f Fg(objectName)p +Fi(\))390 2839 y Ff(de\014nitions)t Fs(:)40 b(ASN1)31 +b(de\014nitions)390 2978 y Ff(elemen)m(t)r Fs(:)42 b(p)s(oin)m(ter)31 +b(to)g(an)f(ASN1)h(structure)390 3117 y Ff(o)s(ctetName)5 +b Fs(:)43 b(name)30 b(of)h(the)g(OCTECT)d(STRING)i(\014eld)g(to)h +(expand.)390 3255 y Ff(ob)5 b(jectName)g Fs(:)45 b(name)31 +b(of)h(the)g(OBJECT)e(IDENTIFIER)h(\014eld)g(to)i(use)e(to)h(de\014ne)f +(the)g(t)m(yp)s(e)h(for)390 3365 y(expansion.)390 3504 +y(Expands)23 b(an)h Fl(")p Fs(OCTET)e(STRING)p Fl(")i +Fs(elemen)m(t)h(of)g(a)f(structure)g(created)h(from)f(a)h(DER)f(deco)s +(ding)390 3613 y(pro)s(cess)39 b(\(the)h Fl(asn1_der_decoding\(\))34 +b Fs(function\).)68 b(The)39 b(t)m(yp)s(e)h(used)f(for)g(expansion)g +(is)h(the)390 3723 y(\014rst)c(one)h(follo)m(wing)h(the)f(de\014nition) +g(of)f(the)h(actual)i(v)-5 b(alue)37 b(of)g(the)g(OBJECT)e(IDENTIFIER) +390 3833 y(indicated)c(b)m(y)f(OBJECTNAME.)390 3971 y +Fe(Returns:)36 b Fl(ASN1_SUCCESS)18 b Fs(if)j(substitution)g(OK,)g +Fl(ASN1_ELEMENT_NOT_FOUND)15 b Fs(if)22 b Fl(objectName)390 +4081 y Fs(or)j Fl(octetName)e Fs(are)j(not)f(correct,)j +Fl(ASN1_VALUE_NOT_VALID)20 b Fs(if)25 b(it)h(w)m(asn't)g(p)s(ossible)f +(to)h(\014nd)e(the)390 4190 y(t)m(yp)s(e)31 b(to)g(use)f(for)g (expansion,)g(or)h(other)f(errors)g(dep)s(ending)f(on)h(DER)h(deco)s -(ding.)150 2651 y Fj(asn1)p 396 2651 37 5 v 55 w(deco)s(de)p -818 2651 V 54 w(simple)p 1214 2651 V 55 w(der)3350 2846 -y Fr([F)-8 b(unction])-3599 b Fi(int)53 b(asn1_decode_simple_de)q(r)e -Fh(\()p Fg(unsigned)30 b(in)m(t)h Ff(etype)p Fg(,)h(const)f(unsigned) -565 2956 y(c)m(har)f(*)g Ff(der)p Fg(,)h(unsigned)d(in)m(t)j -Ff(_der_len)p Fg(,)h(const)e(unsigned)f(c)m(har)h(**)g -Ff(str)p Fg(,)h(unsigned)d(in)m(t)j(*)565 3065 y Ff(str_len)p -Fh(\))390 3175 y Fg(et)m(yp)s(e)5 b Fr(:)41 b(The)30 +(ding.)150 4394 y Fk(asn1)p 396 4394 37 5 v 55 w(deco)s(de)p +818 4394 V 54 w(simple)p 1214 4394 V 55 w(der)3350 4595 +y Fs([F)-8 b(unction])-3599 b Fj(int)53 b(asn1_decode_simple_de)q(r)e +Fi(\()p Fh(unsigned)35 b(in)m(t)f Fg(etype)p Fh(,)g(const)g(unsigned) +565 4705 y(c)m(har)f(*)f Fg(der)p Fh(,)h(unsigned)h(in)m(t)e +Fg(_der_len)p Fh(,)i(const)f(unsigned)h(c)m(har)f(**)f +Fg(str)p Fh(,)h(unsigned)565 4814 y(in)m(t)g(*)g Fg(str_len)p +Fi(\))390 4924 y Ff(et)m(yp)s(e)5 b Fs(:)41 b(The)30 b(t)m(yp)s(e)h(of)f(the)h(string)f(to)h(b)s(e)f(enco)s(ded)g(\(ASN1)p -2444 3175 28 4 v 41 w(ETYPE)p 2805 3175 V 39 w(\))390 -3308 y Fg(der)7 b Fr(:)40 b(the)30 b(enco)s(ded)g(string)p -396 3442 V 430 3442 a Fg(der)p 563 3442 V 40 w(len)p -Fr(:)40 b(the)31 b(b)m(ytes)g(of)f(the)h(enco)s(ded)f(string)390 -3575 y Fg(str)7 b Fr(:)40 b(a)31 b(p)s(oin)m(ter)f(to)h(the)g(data)390 -3709 y Fg(str)p 503 3709 V 40 w(len)p Fr(:)41 b(the)30 -b(length)h(of)g(the)f(data)390 3842 y(Deco)s(des)35 b(a)f(simple)g(DER) -g(enco)s(ded)f(t)m(yp)s(e)h(\(e.g.)52 b(a)35 b(string,)f(whic)m(h)g(is) -g(not)g(constructed\).)51 b(The)390 3952 y(output)30 -b(is)g(a)h(p)s(oin)m(ter)g(inside)f(the)g Fk(der)g Fr(.)390 -4085 y Fe(Returns:)40 b Fk(ASN1_SUCCESS)27 b Fr(if)k(successful)f(or)g -(an)g(error)g(v)-5 b(alue.)150 4283 y Fj(asn1)p 396 4283 -37 5 v 55 w(deco)s(de)p 818 4283 V 54 w(simple)p 1214 -4283 V 55 w(b)s(er)3350 4477 y Fr([F)d(unction])-3599 -b Fi(int)53 b(asn1_decode_simple_be)q(r)e Fh(\()p Fg(unsigned)30 -b(in)m(t)h Ff(etype)p Fg(,)h(const)f(unsigned)565 4587 -y(c)m(har)g(*)g Ff(der)p Fg(,)g(unsigned)e(in)m(t)i Ff(_der_len)p -Fg(,)i(unsigned)d(c)m(har)g(**)h Ff(str)p Fg(,)h(unsigned)d(in)m(t)i(*) -565 4696 y Ff(str_len)p Fg(,)i(unsigned)c(in)m(t)i(*)g -Ff(ber_len)p Fh(\))390 4806 y Fg(et)m(yp)s(e)5 b Fr(:)41 -b(The)30 b(t)m(yp)s(e)h(of)f(the)h(string)f(to)h(b)s(e)f(enco)s(ded)g -(\(ASN1)p 2444 4806 28 4 v 41 w(ETYPE)p 2805 4806 V 39 -w(\))390 4940 y Fg(der)7 b Fr(:)40 b(the)30 b(enco)s(ded)g(string)p -396 5073 V 430 5073 a Fg(der)p 563 5073 V 40 w(len)p -Fr(:)40 b(the)31 b(b)m(ytes)g(of)f(the)h(enco)s(ded)f(string)390 -5206 y Fg(str)7 b Fr(:)40 b(a)31 b(p)s(oin)m(ter)f(to)h(the)g(data)390 -5340 y Fg(str)p 503 5340 V 40 w(len)p Fr(:)41 b(the)30 -b(length)h(of)g(the)f(data)p eop end +2444 4924 28 4 v 41 w(ETYPE)p 2805 4924 V 39 w(\))390 +5062 y Ff(der)7 b Fs(:)40 b(the)30 b(enco)s(ded)g(string)p +396 5201 V 430 5201 a Ff(der)p 563 5201 V 40 w(len)p +Fs(:)40 b(the)31 b(b)m(ytes)g(of)f(the)h(enco)s(ded)f(string)390 +5340 y Ff(str)7 b Fs(:)40 b(a)31 b(p)s(oin)m(ter)f(to)h(the)g(data)p +eop end %%Page: 22 25 -TeXDict begin 22 24 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(22)390 299 y Fg(b)s(er)p -526 299 28 4 v 39 w(len)p Fr(:)41 b(the)30 b(total)j(length)d(o)s -(ccupied)h(b)m(y)f(BER)g(\(ma)m(y)i(b)s(e)d Fk(NULL)h -Fr(\))390 435 y(Deco)s(des)37 b(a)g(BER)g(enco)s(ded)f(t)m(yp)s(e.)60 +TeXDict begin 22 24 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(22)390 299 y Ff(str)p +503 299 28 4 v 40 w(len)p Fs(:)41 b(the)30 b(length)h(of)g(the)f(data) +390 463 y(Deco)s(des)35 b(a)f(simple)g(DER)g(enco)s(ded)f(t)m(yp)s(e)h +(\(e.g.)52 b(a)35 b(string,)f(whic)m(h)g(is)g(not)g(constructed\).)51 +b(The)390 573 y(output)30 b(is)g(a)h(p)s(oin)m(ter)g(inside)f(the)g +Fl(der)g Fs(.)390 737 y Fe(Returns:)40 b Fl(ASN1_SUCCESS)27 +b Fs(if)k(successful)f(or)g(an)g(error)g(v)-5 b(alue.)150 +966 y Fk(asn1)p 396 966 37 5 v 55 w(deco)s(de)p 818 966 +V 54 w(simple)p 1214 966 V 55 w(b)s(er)3350 1192 y Fs([F)d(unction]) +-3599 b Fj(int)53 b(asn1_decode_simple_be)q(r)e Fi(\()p +Fh(unsigned)35 b(in)m(t)f Fg(etype)p Fh(,)g(const)g(unsigned)565 +1302 y(c)m(har)g(*)f Fg(der)p Fh(,)h(unsigned)g(in)m(t)g +Fg(_der_len)p Fh(,)h(unsigned)g(c)m(har)f(**)e Fg(str)p +Fh(,)i(unsigned)h(in)m(t)e(*)565 1411 y Fg(str_len)p +Fh(,)i(unsigned)g(in)m(t)e(*)g Fg(ber_len)p Fi(\))390 +1521 y Ff(et)m(yp)s(e)5 b Fs(:)41 b(The)30 b(t)m(yp)s(e)h(of)f(the)h +(string)f(to)h(b)s(e)f(enco)s(ded)g(\(ASN1)p 2444 1521 +28 4 v 41 w(ETYPE)p 2805 1521 V 39 w(\))390 1685 y Ff(der)7 +b Fs(:)40 b(the)30 b(enco)s(ded)g(string)p 396 1849 V +430 1849 a Ff(der)p 563 1849 V 40 w(len)p Fs(:)40 b(the)31 +b(b)m(ytes)g(of)f(the)h(enco)s(ded)f(string)390 2014 +y Ff(str)7 b Fs(:)40 b(a)31 b(p)s(oin)m(ter)f(to)h(the)g(data)390 +2178 y Ff(str)p 503 2178 V 40 w(len)p Fs(:)41 b(the)30 +b(length)h(of)g(the)f(data)390 2342 y Ff(b)s(er)p 526 +2342 V 39 w(len)p Fs(:)41 b(the)30 b(total)j(length)d(o)s(ccupied)h(b)m +(y)f(BER)g(\(ma)m(y)i(b)s(e)d Fl(NULL)h Fs(\))390 2506 +y(Deco)s(des)37 b(a)g(BER)g(enco)s(ded)f(t)m(yp)s(e.)60 b(The)36 b(output)g(is)g(an)h(allo)s(cated)h(v)-5 b(alue)37 -b(of)g(the)g(data.)60 b(This)390 545 y(deco)s(des)30 +b(of)g(the)g(data.)60 b(This)390 2616 y(deco)s(des)30 b(BER)h(STRINGS)e(only)-8 b(.)41 b(Other)30 b(t)m(yp)s(es)h(are)f(deco) -s(ded)g(as)h(DER.)390 681 y Fe(Returns:)40 b Fk(ASN1_SUCCESS)27 -b Fr(if)k(successful)f(or)g(an)g(error)g(v)-5 b(alue.)150 -917 y Fq(4.4)68 b(Error)45 b(handling)g(functions)150 -1141 y Fj(asn1)p 396 1141 37 5 v 55 w(p)s(error)3350 -1339 y Fr([F)-8 b(unction])-3599 b Fi(void)54 b(asn1_perror)48 -b Fh(\()p Fg(in)m(t)32 b Ff(error)p Fh(\))390 1449 y -Fg(error)7 b Fr(:)40 b(is)30 b(an)h(error)f(returned)f(b)m(y)h(a)h -(libtasn1)g(function.)390 1585 y(Prin)m(ts)26 b(a)g(string)h(to)f +s(ded)g(as)h(DER.)390 2780 y Fe(Returns:)40 b Fl(ASN1_SUCCESS)27 +b Fs(if)k(successful)f(or)g(an)g(error)g(v)-5 b(alue.)150 +3065 y Fr(4.4)68 b(Error)45 b(handling)g(functions)150 +3289 y Fk(asn1)p 396 3289 37 5 v 55 w(p)s(error)3350 +3516 y Fs([F)-8 b(unction])-3599 b Fj(void)54 b(asn1_perror)48 +b Fi(\()p Fh(in)m(t)34 b Fg(error)p Fi(\))390 3625 y +Ff(error)7 b Fs(:)40 b(is)30 b(an)h(error)f(returned)f(b)m(y)h(a)h +(libtasn1)g(function.)390 3790 y(Prin)m(ts)26 b(a)g(string)h(to)f (stderr)g(with)g(a)g(description)g(of)h(an)f(error.)38 -b(This)26 b(function)g(is)g(lik)m(e)h Fk(perror\(\))390 -1695 y Fr(.)41 b(The)30 b(only)g(di\013erence)h(is)f(that)h(it)g +b(This)26 b(function)g(is)g(lik)m(e)h Fl(perror\(\))390 +3899 y Fs(.)41 b(The)30 b(only)g(di\013erence)h(is)f(that)h(it)g (accepts)h(an)e(error)g(returned)f(b)m(y)i(a)f(libtasn1)h(function.)390 -1831 y Fe(Since:)41 b Fr(1.6)150 2033 y Fj(asn1)p 396 -2033 V 55 w(strerror)3350 2231 y Fr([F)-8 b(unction])-3599 -b Fi(const)54 b(char)f(*)g(asn1_strerror)c Fh(\()p Fg(in)m(t)32 -b Ff(error)p Fh(\))390 2341 y Fg(error)7 b Fr(:)40 b(is)30 +4063 y Fe(Since:)41 b Fs(1.6)150 4292 y Fk(asn1)p 396 +4292 V 55 w(strerror)3350 4519 y Fs([F)-8 b(unction])-3599 +b Fj(const)54 b(char)f(*)g(asn1_strerror)c Fi(\()p Fh(in)m(t)34 +b Fg(error)p Fi(\))390 4628 y Ff(error)7 b Fs(:)40 b(is)30 b(an)h(error)f(returned)f(b)m(y)h(a)h(libtasn1)g(function.)390 -2477 y(Returns)i(a)h(string)g(with)f(a)h(description)g(of)g(an)g +4792 y(Returns)i(a)h(string)g(with)f(a)h(description)g(of)g(an)g (error.)50 b(This)33 b(function)h(is)g(similar)g(to)g(strerror.)390 -2587 y(The)c(only)h(di\013erence)g(is)g(that)g(it)g(accepts)h(an)e +4902 y(The)c(only)h(di\013erence)g(is)g(that)g(it)g(accepts)h(an)e (error)g(\(n)m(um)m(b)s(er\))g(returned)g(b)m(y)g(a)h(libtasn1)h(func-) -390 2696 y(tion.)390 2833 y Fe(Returns:)40 b Fr(P)m(oin)m(ter)32 +390 5012 y(tion.)390 5176 y Fe(Returns:)40 b Fs(P)m(oin)m(ter)32 b(to)f(static)h(zero-terminated)g(string)f(describing)f(error)g(co)s -(de.)390 2969 y Fe(Since:)41 b Fr(1.6)150 3205 y Fq(4.5)68 -b(Auxilliary)46 b(functions)150 3429 y Fj(asn1)p 396 -3429 V 55 w(\014nd)p 655 3429 V 54 w(no)s(de)3350 3627 -y Fr([F)-8 b(unction])-3599 b Fi(asn1_node)55 b(asn1_find_node)50 -b Fh(\()p Fg(asn1)p 1669 3627 28 4 v 40 w(no)s(de)30 -b Ff(pointer)p Fg(,)j(const)e(c)m(har)f(*)h Ff(name)p -Fh(\))390 3737 y Fg(p)s(oin)m(ter)7 b Fr(:)40 b(NODE)p -1021 3737 V 40 w(ASN)31 b(elemen)m(t)g(p)s(oin)m(ter.)390 -3873 y Fg(name)5 b Fr(:)41 b(n)m(ull)30 b(terminated)h(string)f(with)g -(the)h(elemen)m(t's)h(name)e(to)i(\014nd.)390 4010 y(Searc)m(hes)g(for) -g(an)g(elemen)m(t)h(called)g Fk(name)e Fr(starting)h(from)f -Fk(pointer)f Fr(.)45 b(The)31 b(name)h(is)g(comp)s(osed)390 -4119 y(b)m(y)39 b(di\013eren)m(ts)g(iden)m(ti\014ers)g(separated)g(b)m -(y)f(dots.)66 b(When)39 b(*)g Fk(pointer)e Fr(has)h(a)i(name,)h(the)e -(\014rst)390 4229 y(iden)m(ti\014er)26 b(m)m(ust)g(b)s(e)g(the)g(name)g -(of)g(*)h Fk(pointer)d Fr(,)j(otherwise)g(it)f(m)m(ust)g(b)s(e)g(the)g -(name)g(of)g(one)h(c)m(hild)390 4339 y(of)k(*)f Fk(pointer)f -Fr(.)390 4475 y Fe(Returns:)40 b Fr(the)31 b(searc)m(h)g(result,)f(or)h -Fk(NULL)e Fr(if)h(not)h(found.)150 4676 y Fj(asn1)p 396 -4676 37 5 v 55 w(c)m(hec)m(k)p 744 4676 V 52 w(v)m(ersion)3350 -4875 y Fr([F)-8 b(unction])-3599 b Fi(const)54 b(char)f(*)g -(asn1_check_version)e Fh(\()p Fg(const)31 b(c)m(har)g(*)g -Ff(req_version)p Fh(\))390 4984 y Fg(req)p 520 4984 28 -4 v 40 w(v)m(ersion)p Fr(:)41 b(Required)30 b(v)m(ersion)h(n)m(um)m(b)s -(er,)e(or)i Fk(NULL)e Fr(.)390 5121 y(Chec)m(k)e(that)h(the)f(v)m -(ersion)g(of)g(the)g(library)g(is)g(at)g(minim)m(um)g(the)g(requested)f -(one)i(and)e(return)g(the)390 5230 y(v)m(ersion)j(string;)g(return)d -Fk(NULL)h Fr(if)h(the)h(condition)f(is)g(not)h(satis\014ed.)40 -b(If)27 b(a)i Fk(NULL)e Fr(is)h(passed)f(to)i(this)390 -5340 y(function,)h(no)h(c)m(hec)m(k)h(is)e(done,)g(but)g(the)h(v)m -(ersion)f(string)h(is)f(simply)g(returned.)p eop end +(de.)390 5340 y Fe(Since:)41 b Fs(1.6)p eop end %%Page: 23 26 -TeXDict begin 23 25 bop 150 -116 a Fr(Chapter)30 b(4:)41 -b(F)-8 b(unction)31 b(reference)2313 b(23)390 299 y(See)31 -b Fk(ASN1_VERSION)c Fr(for)j(a)h(suitable)f Fk(req_version)e -Fr(string.)390 433 y Fe(Returns:)43 b Fr(V)-8 b(ersion)32 -b(string)g(of)g(run-time)f(library)-8 b(,)33 b(or)e Fk(NULL)g -Fr(if)h(the)g(run-time)f(library)g(do)s(es)h(not)390 -543 y(meet)f(the)g(required)e(v)m(ersion)i(n)m(um)m(b)s(er.)p +TeXDict begin 23 25 bop 150 -116 a Fs(Chapter)30 b(4:)41 +b(F)-8 b(unction)31 b(reference)2313 b(23)150 299 y Fr(4.5)68 +b(Auxilliary)46 b(functions)150 523 y Fk(asn1)p 396 523 +37 5 v 55 w(\014nd)p 655 523 V 54 w(no)s(de)3350 720 +y Fs([F)-8 b(unction])-3599 b Fj(asn1_node)55 b(asn1_find_node)50 +b Fi(\()p Fh(asn1)p 1687 720 30 5 v 44 w(no)s(de)34 b +Fg(pointer)p Fh(,)h(const)f(c)m(har)g(*)f Fg(name)p Fi(\))390 +829 y Ff(p)s(oin)m(ter)7 b Fs(:)40 b(NODE)p 1021 829 +28 4 v 40 w(ASN)31 b(elemen)m(t)g(p)s(oin)m(ter.)390 +964 y Ff(name)5 b Fs(:)41 b(n)m(ull)30 b(terminated)h(string)f(with)g +(the)h(elemen)m(t's)h(name)e(to)i(\014nd.)390 1098 y(Searc)m(hes)g(for) +g(an)g(elemen)m(t)h(called)g Fl(name)e Fs(starting)h(from)f +Fl(pointer)f Fs(.)45 b(The)31 b(name)h(is)g(comp)s(osed)390 +1208 y(b)m(y)41 b(di\013eren)m(t)h(iden)m(ti\014ers)f(separated)g(b)m +(y)g(dots.)73 b(When)41 b(*)h Fl(pointer)d Fs(has)i(a)g(name,)j(the)e +(\014rst)390 1318 y(iden)m(ti\014er)26 b(m)m(ust)g(b)s(e)g(the)g(name)g +(of)g(*)h Fl(pointer)d Fs(,)j(otherwise)g(it)f(m)m(ust)g(b)s(e)g(the)g +(name)g(of)g(one)h(c)m(hild)390 1427 y(of)k(*)f Fl(pointer)f +Fs(.)390 1562 y Fe(Returns:)40 b Fs(the)31 b(searc)m(h)g(result,)f(or)h +Fl(NULL)e Fs(if)h(not)h(found.)150 1761 y Fk(asn1)p 396 +1761 37 5 v 55 w(c)m(hec)m(k)p 744 1761 V 52 w(v)m(ersion)3350 +1958 y Fs([F)-8 b(unction])-3599 b Fj(const)54 b(char)f(*)g +(asn1_check_version)e Fi(\()p Fh(const)34 b(c)m(har)g(*)f +Fg(req_version)p Fi(\))390 2067 y Ff(req)p 520 2067 28 +4 v 40 w(v)m(ersion)p Fs(:)41 b(Required)30 b(v)m(ersion)h(n)m(um)m(b)s +(er,)e(or)i Fl(NULL)e Fs(.)390 2202 y(Chec)m(k)e(that)h(the)f(v)m +(ersion)g(of)g(the)g(library)g(is)g(at)g(minim)m(um)g(the)g(requested)f +(one)i(and)e(return)g(the)390 2311 y(v)m(ersion)j(string;)g(return)d +Fl(NULL)h Fs(if)h(the)h(condition)f(is)g(not)h(satis\014ed.)40 +b(If)27 b(a)i Fl(NULL)e Fs(is)h(passed)f(to)i(this)390 +2421 y(function,)h(no)h(c)m(hec)m(k)h(is)e(done,)g(but)g(the)h(v)m +(ersion)f(string)h(is)f(simply)g(returned.)390 2555 y(See)h +Fl(ASN1_VERSION)c Fs(for)j(a)h(suitable)f Fl(req_version)e +Fs(string.)390 2690 y Fe(Returns:)43 b Fs(V)-8 b(ersion)32 +b(string)g(of)g(run-time)f(library)-8 b(,)33 b(or)e Fl(NULL)g +Fs(if)h(the)g(run-time)f(library)g(do)s(es)h(not)390 +2800 y(meet)f(the)g(required)e(v)m(ersion)i(n)m(um)m(b)s(er.)p eop end %%Page: 24 27 -TeXDict begin 24 26 bop 150 -116 a Fr(App)s(endix)29 -b(A:)h(Cop)m(ying)h(Information)2140 b(24)150 299 y Fn(App)t(endix)52 -b(A)81 b(Cop)l(ying)52 b(Information)150 608 y Fq(A.1)67 +TeXDict begin 24 26 bop 3659 -116 a Fs(24)150 299 y Fo(App)t(endix)52 +b(A)81 b(Cop)l(ying)52 b(Information)150 613 y Fr(A.1)67 b(GNU)45 b(F)-11 b(ree)45 b(Do)t(cumen)l(tation)h(License)1359 -767 y Fr(V)-8 b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 -898 y(Cop)m(yrigh)m(t)842 895 y(c)817 898 y Fo(\015)e -Fr(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31 -b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 1007 -y Fk(http://fsf.org/)390 1227 y Fr(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f +772 y Fs(V)-8 b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 +902 y(Cop)m(yrigh)m(t)842 899 y(c)817 902 y Fp(\015)e +Fs(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31 +b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 1012 +y Fl(http://fsf.org/)390 1231 y Fs(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f (to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390 -1336 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f -(is)f(not)h(allo)m(w)m(ed.)199 1467 y(0.)61 b(PREAMBLE)330 -1597 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g +1341 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f +(is)f(not)h(allo)m(w)m(ed.)199 1471 y(0.)61 b(PREAMBLE)330 +1601 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g (a)g(man)m(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330 -1707 y(useful)29 b(do)s(cumen)m(t)h Fg(free)36 b Fr(in)29 +1710 y(useful)29 b(do)s(cumen)m(t)h Ff(free)36 b Fs(in)29 b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j -(the)e(e\013ectiv)m(e)j(freedom)330 1817 y(to)f(cop)m(y)g(and)f +(the)e(e\013ectiv)m(e)j(freedom)330 1820 y(to)f(cop)m(y)g(and)f (redistribute)g(it,)h(with)g(or)f(without)g(mo)s(difying)g(it,)i -(either)f(commercially)h(or)e(non-)330 1926 y(commercially)-8 +(either)f(commercially)h(or)e(non-)330 1929 y(commercially)-8 b(.)56 b(Secondarily)-8 b(,)36 b(this)f(License)g(preserv)m(es)g(for)f -(the)h(author)f(and)g(publisher)f(a)i(w)m(a)m(y)330 2036 +(the)h(author)f(and)g(publisher)f(a)i(w)m(a)m(y)330 2039 y(to)i(get)g(credit)g(for)f(their)g(w)m(ork,)i(while)e(not)g(b)s(eing)g (considered)g(resp)s(onsible)f(for)h(mo)s(di\014cations)330 -2145 y(made)30 b(b)m(y)h(others.)330 2276 y(This)22 b(License)i(is)f(a) +2149 y(made)30 b(b)m(y)h(others.)330 2279 y(This)22 b(License)i(is)f(a) h(kind)e(of)i(\\cop)m(yleft",)j(whic)m(h)c(means)g(that)h(deriv)-5 b(ativ)m(e)24 b(w)m(orks)f(of)h(the)f(do)s(cumen)m(t)330 -2385 y(m)m(ust)34 b(themselv)m(es)h(b)s(e)e(free)h(in)g(the)g(same)g +2388 y(m)m(ust)34 b(themselv)m(es)h(b)s(e)e(free)h(in)g(the)g(same)g (sense.)51 b(It)34 b(complemen)m(ts)h(the)f(GNU)g(General)h(Public)330 -2495 y(License,)c(whic)m(h)f(is)h(a)f(cop)m(yleft)i(license)g(designed) -e(for)g(free)h(soft)m(w)m(are.)330 2626 y(W)-8 b(e)31 +2498 y(License,)c(whic)m(h)f(is)h(a)f(cop)m(yleft)i(license)g(designed) +e(for)g(free)h(soft)m(w)m(are.)330 2628 y(W)-8 b(e)31 b(ha)m(v)m(e)f(designed)g(this)f(License)h(in)f(order)g(to)i(use)e(it)h (for)f(man)m(uals)h(for)f(free)h(soft)m(w)m(are,)h(b)s(ecause)330 -2735 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:) +2738 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:) 65 b(a)42 b(free)h(program)f(should)f(come)i(with)f(man)m(uals)330 -2845 y(pro)m(viding)29 b(the)g(same)g(freedoms)f(that)i(the)f(soft)m(w) +2847 y(pro)m(viding)29 b(the)g(same)g(freedoms)f(that)i(the)f(soft)m(w) m(are)h(do)s(es.)40 b(But)29 b(this)f(License)i(is)f(not)g(limited)g -(to)330 2954 y(soft)m(w)m(are)j(man)m(uals;)f(it)g(can)g(b)s(e)f(used)g +(to)330 2957 y(soft)m(w)m(are)j(man)m(uals;)f(it)g(can)g(b)s(e)f(used)g (for)g(an)m(y)h(textual)h(w)m(ork,)f(regardless)g(of)g(sub)5 -b(ject)30 b(matter)i(or)330 3064 y(whether)f(it)h(is)f(published)f(as)i +b(ject)30 b(matter)i(or)330 3066 y(whether)f(it)h(is)f(published)f(as)i (a)f(prin)m(ted)g(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)h -(License)g(principally)f(for)330 3174 y(w)m(orks)f(whose)h(purp)s(ose)d -(is)j(instruction)f(or)g(reference.)199 3304 y(1.)61 -b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3435 y(This)39 +(License)g(principally)f(for)330 3176 y(w)m(orks)f(whose)h(purp)s(ose)d +(is)j(instruction)f(or)g(reference.)199 3306 y(1.)61 +b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3436 y(This)39 b(License)i(applies)f(to)g(an)m(y)h(man)m(ual)f(or)g(other)g(w)m(ork,)i -(in)e(an)m(y)g(medium,)i(that)e(con)m(tains)i(a)330 3544 +(in)e(an)m(y)g(medium,)i(that)e(con)m(tains)i(a)330 3546 y(notice)h(placed)f(b)m(y)f(the)h(cop)m(yrigh)m(t)h(holder)e(sa)m(ying) h(it)g(can)g(b)s(e)f(distributed)f(under)g(the)i(terms)330 -3654 y(of)c(this)f(License.)62 b(Suc)m(h)37 b(a)h(notice)h(gran)m(ts)f +3655 y(of)c(this)f(License.)62 b(Suc)m(h)37 b(a)h(notice)h(gran)m(ts)f (a)g(w)m(orld-wide,)h(ro)m(y)m(alt)m(y-free)i(license,)f(unlimited)d -(in)330 3764 y(duration,)49 b(to)d(use)f(that)g(w)m(ork)h(under)d(the)j +(in)330 3765 y(duration,)49 b(to)d(use)f(that)g(w)m(ork)h(under)d(the)j (conditions)f(stated)h(herein.)85 b(The)45 b(\\Do)s(cumen)m(t",)330 -3873 y(b)s(elo)m(w,)29 b(refers)f(to)h(an)m(y)g(suc)m(h)f(man)m(ual)h +3874 y(b)s(elo)m(w,)29 b(refers)f(to)h(an)m(y)g(suc)m(h)f(man)m(ual)h (or)f(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)g(is)g -(a)h(licensee,)i(and)330 3983 y(is)25 b(addressed)f(as)h(\\y)m(ou".)40 +(a)h(licensee,)i(and)330 3984 y(is)25 b(addressed)f(as)h(\\y)m(ou".)40 b(Y)-8 b(ou)26 b(accept)g(the)f(license)h(if)f(y)m(ou)h(cop)m(y)-8 b(,)27 b(mo)s(dify)d(or)h(distribute)g(the)g(w)m(ork)330 -4092 y(in)30 b(a)h(w)m(a)m(y)g(requiring)f(p)s(ermission)f(under)g(cop) -m(yrigh)m(t)j(la)m(w.)330 4223 y(A)i(\\Mo)s(di\014ed)f(V)-8 +4094 y(in)30 b(a)h(w)m(a)m(y)g(requiring)f(p)s(ermission)f(under)g(cop) +m(yrigh)m(t)j(la)m(w.)330 4224 y(A)i(\\Mo)s(di\014ed)f(V)-8 b(ersion")35 b(of)f(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f (con)m(taining)j(the)e(Do)s(cumen)m(t)g(or)330 4333 y(a)k(p)s(ortion)f (of)h(it,)i(either)e(copied)g(v)m(erbatim,)i(or)d(with)h(mo)s -(di\014cations)f(and/or)h(translated)g(in)m(to)330 4442 +(di\014cations)f(and/or)h(translated)g(in)m(to)330 4443 y(another)31 b(language.)330 4573 y(A)26 b(\\Secondary)g(Section")h(is) f(a)h(named)e(app)s(endix)f(or)i(a)h(fron)m(t-matter)g(section)g(of)f (the)g(Do)s(cumen)m(t)330 4682 y(that)c(deals)g(exclusiv)m(ely)h(with)e @@ -7661,7 +7673,7 @@ b(or)g(with)g(related)330 5230 y(matters,)38 b(or)d(of)h(legal,)i (commercial,)h(philosophical,)f(ethical)f(or)e(p)s(olitical)i(p)s (osition)f(regarding)330 5340 y(them.)p eop end %%Page: 25 28 -TeXDict begin 25 27 bop 150 -116 a Fr(App)s(endix)29 +TeXDict begin 25 27 bop 150 -116 a Fs(App)s(endix)29 b(A:)h(Cop)m(ying)h(Information)2140 b(25)330 299 y(The)25 b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g (Sections)g(whose)f(titles)i(are)f(designated,)i(as)330 @@ -7757,7 +7769,7 @@ b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g(and)f(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h(this)f(License.)p eop end %%Page: 26 29 -TeXDict begin 26 28 bop 150 -116 a Fr(App)s(endix)29 +TeXDict begin 26 28 bop 150 -116 a Fs(App)s(endix)29 b(A:)h(Cop)m(ying)h(Information)2140 b(26)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330 445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h(the)g(Do)s(cumen)m(t)h(in)f(an) @@ -7846,7 +7858,7 @@ b(\014lling)f(the)g(role)h(of)f(the)g(Do)s(cumen)m(t,)h(th)m(us)f b(addition,)h(y)m(ou)f(m)m(ust)h(do)f(these)h(things)f(in)g(the)h(Mo)s (di\014ed)e(V)-8 b(ersion:)p eop end %%Page: 27 30 -TeXDict begin 27 29 bop 150 -116 a Fr(App)s(endix)29 +TeXDict begin 27 29 bop 150 -116 a Fs(App)s(endix)29 b(A:)h(Cop)m(ying)h(Information)2140 b(27)357 299 y(A.)60 b(Use)33 b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m (ers,)i(if)e(an)m(y\))g(a)g(title)h(distinct)f(from)g(that)g(of)g(the) @@ -7929,7 +7941,7 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)g (Sections)g(and)f(con)m(tain)j(no)d(material)j(copied)e(from)f(the)h (Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop end %%Page: 28 31 -TeXDict begin 28 30 bop 150 -116 a Fr(App)s(endix)29 +TeXDict begin 28 30 bop 150 -116 a Fs(App)s(endix)29 b(A:)h(Cop)m(ying)h(Information)2140 b(28)330 299 y(y)m(our)32 b(option)h(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e (in)m(v)-5 b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)330 @@ -8019,7 +8031,7 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h (other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330 5340 y(that)d(do)s(cumen)m(t.)p eop end %%Page: 29 32 -TeXDict begin 29 31 bop 150 -116 a Fr(App)s(endix)29 +TeXDict begin 29 31 bop 150 -116 a Fs(App)s(endix)29 b(A:)h(Cop)m(ying)h(Information)2140 b(29)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 @@ -8107,7 +8119,7 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g (the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f (an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end %%Page: 30 33 -TeXDict begin 30 32 bop 150 -116 a Fr(App)s(endix)29 +TeXDict begin 30 32 bop 150 -116 a Fs(App)s(endix)29 b(A:)h(Cop)m(ying)h(Information)2140 b(30)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 b(oundation)43 @@ -8116,8 +8128,8 @@ b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g(the)g(GNU)g(F) g(time.)46 b(Suc)m(h)31 b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h (in)g(spirit)330 653 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)m (y)h(di\013er)f(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i -(concerns.)330 762 y(See)c Fk(http://www.gnu.org/copy)o(left)o(/)p -Fr(.)330 897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m +(concerns.)330 762 y(See)c Fl(http://www.gnu.org/copy)o(left)o(/)p +Fs(.)330 897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m (en)g(a)g(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 b(If)29 b(the)g(Do)s(cumen)m(t)330 1006 y(sp)s(eci\014es)45 b(that)h(a)g(particular)f(n)m(um)m(b)s(ered)f(v)m(ersion)i(of)f(this)g @@ -8173,10 +8185,10 @@ g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g (time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is) 330 4005 y(eligible)h(for)e(relicensing.)p eop end %%Page: 31 34 -TeXDict begin 31 33 bop 150 -116 a Fr(App)s(endix)29 -b(A:)h(Cop)m(ying)h(Information)2140 b(31)150 299 y Fq(ADDENDUM:)45 +TeXDict begin 31 33 bop 150 -116 a Fs(App)s(endix)29 +b(A:)h(Cop)m(ying)h(Information)2140 b(31)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f(for)g(y)l(our)g(do)t(cumen)l(ts) -150 458 y Fr(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m +150 458 y Fs(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m (t)g(y)m(ou)f(ha)m(v)m(e)i(written,)g(include)f(a)f(cop)m(y)i(of)f(the) f(License)h(in)g(the)150 568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g (follo)m(wing)i(cop)m(yrigh)m(t)g(and)e(license)h(notices)g(just)f @@ -8190,7 +8202,7 @@ y(Permission)i(is)e(granted)g(to)g(copy,)h(distribute)g(and/or)g (no)f(Front-Cover)h(Texts,)g(and)f(no)f(Back-Cover)468 1116 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f(license)i(is)f(included)h (in)f(the)g(section)g(entitled)h(``GNU)468 1203 y(Free)g(Documentation) -h(License''.)275 1337 y Fr(If)d(y)m(ou)h(ha)m(v)m(e)h(In)m(v)-5 +h(License''.)275 1337 y Fs(If)d(y)m(ou)h(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8 b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts,)43 b(replace)e(the)150 1447 y(\\with)6 b(.)22 b(.)g(.)12 @@ -8198,7 +8210,7 @@ b(T)-8 b(exts.")31 b(line)g(with)f(this:)547 1559 y Fd(with)40 b(the)g(Invariant)h(Sections)g(being)g Fc(list)f(their)g(titles)p Fd(,)h(with)547 1646 y(the)f(Front-Cover)i(Texts)e(being)g Fc(list)p Fd(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547 -1733 y(being)f Fc(list)p Fd(.)275 1868 y Fr(If)34 b(y)m(ou)i(ha)m(v)m +1733 y(being)f Fc(list)p Fd(.)275 1868 y Fs(If)34 b(y)m(ou)i(ha)m(v)m (e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f(Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g(of)g(the)150 1978 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)i(to)e @@ -8210,135 +8222,140 @@ b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g(of)g(the)150 b(Public)f(License,)i(to)f(p)s(ermit)e(their)i(use)f(in)g(free)g(soft)m (w)m(are.)p eop end %%Page: 32 35 -TeXDict begin 32 34 bop 150 -116 a Fr(Concept)31 b(Index)2927 -b(32)150 299 y Fn(Concept)52 b(Index)150 638 y Fq(A)150 -757 y Fb(ASN.1)25 b(sc)n(hema)14 b Fa(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(2)150 846 y(asn1Co)r(ding)27 -b(program)10 b Fa(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 -b Fb(5)150 935 y(asn1Deco)r(ding)27 b(program)8 b Fa(:)14 -b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(6)150 1023 y(asn1P)n(arser)27 -b(program)7 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 -b Fb(5)150 1281 y Fq(F)150 1400 y Fb(FDL,)26 b(GNU)f(F)-6 -b(ree)25 b(Do)r(cumen)n(tation)h(License)20 b Fa(:)13 -b(:)g(:)g(:)g(:)h(:)f(:)45 b Fb(22)150 1489 y(F)-6 b(uture)25 -b(dev)n(elopmen)n(ts)9 b Fa(:)k(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 -b Fb(4)150 1746 y Fq(H)150 1866 y Fb(Header)26 b(\014le)f(libtasn1.h)18 -b Fa(:)d(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)45 b Fb(4)2025 -638 y Fq(M)2025 760 y Fb(Main)26 b(t)n(yp)r(e)f(asn1)p -2550 760 24 4 v 34 w(no)r(de)19 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)46 b Fb(4)2025 1023 y Fq(P)2025 1145 y Fb(P)n(orting)12 -b Fa(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(1)2025 1408 y Fq(S)2025 -1530 y Fb(Supp)r(orted)24 b(ASN.1)h(t)n(yp)r(es,)h(list)g(of)14 -b Fa(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)41 b Fb(2)2025 1793 y Fq(T)2025 1915 y Fb(threads)13 -b Fa(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)40 b Fb(1)p eop end +TeXDict begin 32 34 bop 3659 -116 a Fs(32)150 299 y Fo(Concept)52 +b(Index)146 638 y Fr(A)150 759 y Fb(asn1Co)r(ding)27 +b(program)16 b Fa(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 +b Fb(5)150 848 y(asn1Deco)r(ding)c(program)14 b Fa(:)g(:)f(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)29 b Fb(6)150 936 y(asn1P)n(arser)e(program)13 +b Fa(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b +Fb(5)150 1025 y(ASN.1)e(sc)n(hema)c Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(2)146 1293 +y Fr(F)150 1414 y Fb(FDL,)26 b(GNU)f(F)-6 b(ree)25 b(Do)r(cumen)n +(tation)h(License)8 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)22 +b Fb(24)150 1503 y(F)-6 b(uture)25 b(dev)n(elopmen)n(ts)15 +b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(4)146 +1785 y Fr(H)150 1906 y Fb(Header)c(\014le)f(libtasn1.h)7 +b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22 b Fb(4)2021 +638 y Fr(M)2025 756 y Fb(Main)k(t)n(yp)r(e)f(asn1)p 2550 +756 24 4 v 34 w(no)r(de)7 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)23 b Fb(4)2021 1021 y Fr(P)2025 1140 y Fb(P)n(orting)18 +b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(1)2021 1405 y Fr(S)2025 +1523 y Fb(Supp)r(orted)24 b(ASN.1)h(t)n(yp)r(es,)h(list)g(of)21 +b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)35 b Fb(2)2021 1788 y Fr(T)2025 1906 y Fb(threads)19 +b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(1)p eop end %%Page: 33 36 -TeXDict begin 33 35 bop 150 -116 a Fr(F)-8 b(unction)31 -b(and)f(Data)i(Index)2503 b(33)150 299 y Fn(F)-13 b(unction)52 -b(and)h(Data)i(Index)150 610 y Fd(asn1_array2tree)13 -b Fa(:)k(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 -b Fb(8)150 697 y Fd(asn1_bit_der)22 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(15)150 785 y -Fd(asn1_check_version)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 -b Fb(21)150 872 y Fd(asn1_copy_node)14 b Fa(:)i(:)d(:)g(:)h(:)f(:)g(:)g +TeXDict begin 33 35 bop 3659 -116 a Fs(33)150 299 y Fo(F)-13 +b(unction)52 b(and)h(Data)i(Index)150 610 y Fd(asn1_array2tree)23 +b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 +b Fb(9)150 697 y Fd(asn1_bit_der)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(16)150 785 +y Fd(asn1_check_version)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)40 b Fb(10)150 959 y Fd(asn1_create_element)25 -b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(9)150 -1046 y Fd(asn1_decode_simple_der)10 b Fa(:)19 b(:)13 +24 b Fb(23)150 872 y Fd(asn1_copy_node)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(11)150 959 y Fd +(asn1_create_element)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 +b Fb(10)150 1046 y Fd(asn1_decode_simple_ber)16 b Fa(:)j(:)13 +b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)31 b Fb(22)150 1133 y Fd(asn1_decode_simple_der)16 +b Fa(:)j(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)31 b Fb(21)150 1220 y Fd(asn1_delete_element)9 +b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)24 b Fb(9)150 +1308 y Fd(asn1_delete_structure)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 +b Fb(9)150 1395 y Fd(asn1_delete_structure2)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)37 b Fb(20)150 1133 y Fd(asn1_delete_element)25 -b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(8)150 -1220 y Fd(asn1_delete_structure)15 b Fa(:)j(:)13 b(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 -b Fb(8)150 1308 y Fd(asn1_delete_structure2)13 b Fa(:)18 -b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)40 b Fb(8)150 1395 y Fd(asn1_der_coding)11 -b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 -b Fb(15)150 1482 y Fd(asn1_der_decoding)6 b Fa(:)17 b(:)c(:)g(:)h(:)f -(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)g(:)h(:)32 b Fb(18)150 1569 y Fd(asn1_der_decoding_element) -26 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)46 b Fb(18)150 1656 y Fd(asn1_der_decoding_startEnd)18 -b Fa(:)g(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -44 b Fb(19)150 1743 y Fd(asn1_der_decoding2)25 b Fa(:)13 -b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(17)150 1831 y -Fd(asn1_dup_node)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g -(:)g(:)g(:)43 b Fb(10)150 1918 y Fd(asn1_encode_simple_der)10 -b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(15)150 2005 y Fd -(asn1_expand_any_defined_by)18 b Fa(:)g(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(19)150 2092 y -Fd(asn1_expand_octet_string)28 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g -(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(19)150 -2179 y Fd(asn1_find_node)14 b Fa(:)i(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)40 b Fb(21)2025 610 y Fd(asn1_find_structure_from_oid)15 -b Fa(:)k(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) -42 b Fb(9)2025 697 y Fd(asn1_get_bit_der)9 b Fa(:)16 -b(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(17)2025 -785 y Fd(asn1_get_length_ber)18 b Fa(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 -b Fb(16)2025 872 y Fd(asn1_get_length_der)18 b Fa(:)f(:)c(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)34 b Fb(9)150 1482 y Fd(asn1_der_coding)17 +b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 +b Fb(17)150 1569 y Fd(asn1_der_decoding)12 b Fa(:)17 +b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(19)150 +1656 y Fd(asn1_der_decoding_element)9 b Fa(:)19 b(:)13 +b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 +b Fb(20)150 1743 y Fd(asn1_der_decoding_startEnd)7 b +Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)21 b Fb(20)150 1831 y Fd(asn1_der_decoding2)10 +b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(19)150 +1918 y Fd(asn1_dup_node)h Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)37 b Fb(11)150 2005 y Fd(asn1_encode_simple_der)16 +b Fa(:)j(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)31 b Fb(16)150 2092 y Fd +(asn1_expand_any_defined_by)7 b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(21)150 +2179 y Fd(asn1_expand_octet_string)11 b Fa(:)19 b(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)26 b Fb(21)150 2267 y Fd(asn1_find_node)d Fa(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 +b Fb(23)2025 610 y Fd(asn1_find_structure_from_oid)19 +b Fa(:)f(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)33 +b Fb(10)2025 697 y Fd(asn1_get_bit_der)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)45 b Fb(16)2025 959 y Fd(asn1_get_octet_der)25 -b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(17)2025 -1046 y Fd(asn1_get_tag_der)9 b Fa(:)16 b(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)35 b Fb(16)2025 1133 y Fd(asn1_length_der)11 +g(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 785 y Fd(asn1_get_length_ber)7 +b Fa(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(18)2025 +872 y Fd(asn1_get_length_der)7 b Fa(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +22 b Fb(17)2025 959 y Fd(asn1_get_object_id_der)16 b +Fa(:)i(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)31 b Fb(18)2025 1046 y Fd(asn1_get_octet_der)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 -b Fb(14)2025 1220 y Fd(asn1_number_of_elements)10 b Fa(:)18 -b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)37 b Fb(9)2025 1308 y Fd(asn1_octet_der)14 -b Fa(:)i(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 -b Fb(14)2025 1395 y Fd(asn1_parser2array)8 b Fa(:)17 -b(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)35 b Fb(7)2025 -1482 y Fd(asn1_parser2tree)11 b Fa(:)16 b(:)d(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) -f(:)g(:)g(:)g(:)38 b Fb(7)2025 1569 y Fd(asn1_perror)24 -b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g -(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) -48 b Fb(20)2025 1656 y Fd(asn1_print_structure)18 b Fa(:)f(:)c(:)g(:)h -(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)45 b Fb(9)2025 1743 y Fd(asn1_read_node_value)16 -b Fa(:)h(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) -g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(14)2025 1831 y Fd(asn1_read_tag)16 -b Fa(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) -g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 -b Fb(14)2025 1918 y Fd(asn1_read_value)11 b Fa(:)17 b(:)c(:)g(:)g(:)g -(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) -g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 b Fb(12)2025 2005 y Fd -(asn1_read_value_type)16 b Fa(:)h(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 -b Fb(13)2025 2092 y Fd(asn1_strerror)16 b Fa(:)g(:)d(:)g(:)h(:)f(:)g(:) -g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g -(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(20)2025 2179 y -Fd(asn1_write_value)9 b Fa(:)16 b(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g -(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) -g(:)35 b Fb(10)p eop end +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(18)2025 +1133 y Fd(asn1_get_tag_der)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)29 b Fb(17)2025 1220 y Fd(asn1_length_der)17 +b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)32 +b Fb(15)2025 1308 y Fd(asn1_number_of_elements)14 b Fa(:)k(:)13 +b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)28 b Fb(10)2025 1395 y Fd(asn1_octet_der)23 b +Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 +b Fb(16)2025 1482 y Fd(asn1_parser2array)14 b Fa(:)j(:)c(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)29 b Fb(8)2025 1569 y Fd(asn1_parser2tree)17 +b Fa(:)f(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)32 +b Fb(8)2025 1656 y Fd(asn1_perror)10 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(22)2025 +1743 y Fd(asn1_print_structure)h Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 +b Fb(10)2025 1831 y Fd(asn1_read_node_value)26 b Fa(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(15)2025 1918 y Fd(asn1_read_tag)25 +b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 +b Fb(15)2025 2005 y Fd(asn1_read_value)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(13)2025 2092 y Fd(asn1_read_value_type) +26 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(14)2025 2179 +y Fd(asn1_strerror)25 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)37 b Fb(22)2025 2267 y Fd(asn1_write_value)15 +b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)29 b +Fb(11)p eop end %%Trailer userdict /end-hook known{end-hook}if |