h235.h

Go to the documentation of this file.
00001 //
00002 // h235.h
00003 //
00004 // Code automatically generated by asnparse.
00005 //
00006 
00007 #include <opal/buildopts.h>
00008 
00009 #if ! H323_DISABLE_H235
00010 
00011 #ifndef __H235_H
00012 #define __H235_H
00013 
00014 #ifdef P_USE_PRAGMA
00015 #pragma interface
00016 #endif
00017 
00018 #include <ptclib/asner.h>
00019 
00020 //
00021 // ChallengeString
00022 //
00023 
00024 class H235_ChallengeString : public PASN_OctetString
00025 {
00026 #ifndef PASN_LEANANDMEAN
00027     PCLASSINFO(H235_ChallengeString, PASN_OctetString);
00028 #endif
00029   public:
00030     H235_ChallengeString(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
00031 
00032     H235_ChallengeString(const char * v);
00033     H235_ChallengeString(const PString & v);
00034     H235_ChallengeString(const PBYTEArray & v);
00035 
00036     H235_ChallengeString & operator=(const char * v);
00037     H235_ChallengeString & operator=(const PString & v);
00038     H235_ChallengeString & operator=(const PBYTEArray & v);
00039     PObject * Clone() const;
00040 };
00041 
00042 
00043 //
00044 // TimeStamp
00045 //
00046 
00047 class H235_TimeStamp : public PASN_Integer
00048 {
00049 #ifndef PASN_LEANANDMEAN
00050     PCLASSINFO(H235_TimeStamp, PASN_Integer);
00051 #endif
00052   public:
00053     H235_TimeStamp(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00054 
00055     H235_TimeStamp & operator=(int v);
00056     H235_TimeStamp & operator=(unsigned v);
00057     PObject * Clone() const;
00058 };
00059 
00060 
00061 //
00062 // RandomVal
00063 //
00064 
00065 class H235_RandomVal : public PASN_Integer
00066 {
00067 #ifndef PASN_LEANANDMEAN
00068     PCLASSINFO(H235_RandomVal, PASN_Integer);
00069 #endif
00070   public:
00071     H235_RandomVal(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00072 
00073     H235_RandomVal & operator=(int v);
00074     H235_RandomVal & operator=(unsigned v);
00075     PObject * Clone() const;
00076 };
00077 
00078 
00079 //
00080 // Password
00081 //
00082 
00083 class H235_Password : public PASN_BMPString
00084 {
00085 #ifndef PASN_LEANANDMEAN
00086     PCLASSINFO(H235_Password, PASN_BMPString);
00087 #endif
00088   public:
00089     H235_Password(unsigned tag = UniversalBMPString, TagClass tagClass = UniversalTagClass);
00090 
00091     H235_Password & operator=(const char * v);
00092     H235_Password & operator=(const PString & v);
00093     H235_Password & operator=(const PWCharArray & v);
00094     H235_Password & operator=(const PASN_BMPString & v);
00095     PObject * Clone() const;
00096 };
00097 
00098 
00099 //
00100 // Identifier
00101 //
00102 
00103 class H235_Identifier : public PASN_BMPString
00104 {
00105 #ifndef PASN_LEANANDMEAN
00106     PCLASSINFO(H235_Identifier, PASN_BMPString);
00107 #endif
00108   public:
00109     H235_Identifier(unsigned tag = UniversalBMPString, TagClass tagClass = UniversalTagClass);
00110 
00111     H235_Identifier & operator=(const char * v);
00112     H235_Identifier & operator=(const PString & v);
00113     H235_Identifier & operator=(const PWCharArray & v);
00114     H235_Identifier & operator=(const PASN_BMPString & v);
00115     PObject * Clone() const;
00116 };
00117 
00118 
00119 //
00120 // KeyMaterial
00121 //
00122 
00123 class H235_KeyMaterial : public PASN_BitString
00124 {
00125 #ifndef PASN_LEANANDMEAN
00126     PCLASSINFO(H235_KeyMaterial, PASN_BitString);
00127 #endif
00128   public:
00129     H235_KeyMaterial(unsigned tag = UniversalBitString, TagClass tagClass = UniversalTagClass);
00130 
00131     PObject * Clone() const;
00132 };
00133 
00134 
00135 //
00136 // NonStandardParameter
00137 //
00138 
00139 class H235_NonStandardParameter : public PASN_Sequence
00140 {
00141 #ifndef PASN_LEANANDMEAN
00142     PCLASSINFO(H235_NonStandardParameter, PASN_Sequence);
00143 #endif
00144   public:
00145     H235_NonStandardParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00146 
00147     PASN_ObjectId m_nonStandardIdentifier;
00148     PASN_OctetString m_data;
00149 
00150     PINDEX GetDataLength() const;
00151     PBoolean Decode(PASN_Stream & strm);
00152     void Encode(PASN_Stream & strm) const;
00153 #ifndef PASN_NOPRINTON
00154     void PrintOn(ostream & strm) const;
00155 #endif
00156     Comparison Compare(const PObject & obj) const;
00157     PObject * Clone() const;
00158 };
00159 
00160 
00161 //
00162 // DHset
00163 //
00164 
00165 class H235_DHset : public PASN_Sequence
00166 {
00167 #ifndef PASN_LEANANDMEAN
00168     PCLASSINFO(H235_DHset, PASN_Sequence);
00169 #endif
00170   public:
00171     H235_DHset(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00172 
00173     PASN_BitString m_halfkey;
00174     PASN_BitString m_modSize;
00175     PASN_BitString m_generator;
00176 
00177     PINDEX GetDataLength() const;
00178     PBoolean Decode(PASN_Stream & strm);
00179     void Encode(PASN_Stream & strm) const;
00180 #ifndef PASN_NOPRINTON
00181     void PrintOn(ostream & strm) const;
00182 #endif
00183     Comparison Compare(const PObject & obj) const;
00184     PObject * Clone() const;
00185 };
00186 
00187 
00188 //
00189 // ECpoint
00190 //
00191 
00192 class H235_ECpoint : public PASN_Sequence
00193 {
00194 #ifndef PASN_LEANANDMEAN
00195     PCLASSINFO(H235_ECpoint, PASN_Sequence);
00196 #endif
00197   public:
00198     H235_ECpoint(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00199 
00200     enum OptionalFields {
00201       e_x,
00202       e_y
00203     };
00204 
00205     PASN_BitString m_x;
00206     PASN_BitString m_y;
00207 
00208     PINDEX GetDataLength() const;
00209     PBoolean Decode(PASN_Stream & strm);
00210     void Encode(PASN_Stream & strm) const;
00211 #ifndef PASN_NOPRINTON
00212     void PrintOn(ostream & strm) const;
00213 #endif
00214     Comparison Compare(const PObject & obj) const;
00215     PObject * Clone() const;
00216 };
00217 
00218 
00219 //
00220 // ECKASDH
00221 //
00222 
00223 class H235_ECKASDH_eckasdhp;
00224 class H235_ECKASDH_eckasdh2;
00225 
00226 class H235_ECKASDH : public PASN_Choice
00227 {
00228 #ifndef PASN_LEANANDMEAN
00229     PCLASSINFO(H235_ECKASDH, PASN_Choice);
00230 #endif
00231   public:
00232     H235_ECKASDH(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00233 
00234     enum Choices {
00235       e_eckasdhp,
00236       e_eckasdh2
00237     };
00238 
00239 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00240     operator H235_ECKASDH_eckasdhp &() const;
00241 #else
00242     operator H235_ECKASDH_eckasdhp &();
00243     operator const H235_ECKASDH_eckasdhp &() const;
00244 #endif
00245 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00246     operator H235_ECKASDH_eckasdh2 &() const;
00247 #else
00248     operator H235_ECKASDH_eckasdh2 &();
00249     operator const H235_ECKASDH_eckasdh2 &() const;
00250 #endif
00251 
00252     PBoolean CreateObject();
00253     PObject * Clone() const;
00254 };
00255 
00256 
00257 //
00258 // ECGDSASignature
00259 //
00260 
00261 class H235_ECGDSASignature : public PASN_Sequence
00262 {
00263 #ifndef PASN_LEANANDMEAN
00264     PCLASSINFO(H235_ECGDSASignature, PASN_Sequence);
00265 #endif
00266   public:
00267     H235_ECGDSASignature(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00268 
00269     PASN_BitString m_r;
00270     PASN_BitString m_s;
00271 
00272     PINDEX GetDataLength() const;
00273     PBoolean Decode(PASN_Stream & strm);
00274     void Encode(PASN_Stream & strm) const;
00275 #ifndef PASN_NOPRINTON
00276     void PrintOn(ostream & strm) const;
00277 #endif
00278     Comparison Compare(const PObject & obj) const;
00279     PObject * Clone() const;
00280 };
00281 
00282 
00283 //
00284 // TypedCertificate
00285 //
00286 
00287 class H235_TypedCertificate : public PASN_Sequence
00288 {
00289 #ifndef PASN_LEANANDMEAN
00290     PCLASSINFO(H235_TypedCertificate, PASN_Sequence);
00291 #endif
00292   public:
00293     H235_TypedCertificate(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00294 
00295     PASN_ObjectId m_type;
00296     PASN_OctetString m_certificate;
00297 
00298     PINDEX GetDataLength() const;
00299     PBoolean Decode(PASN_Stream & strm);
00300     void Encode(PASN_Stream & strm) const;
00301 #ifndef PASN_NOPRINTON
00302     void PrintOn(ostream & strm) const;
00303 #endif
00304     Comparison Compare(const PObject & obj) const;
00305     PObject * Clone() const;
00306 };
00307 
00308 
00309 //
00310 // AuthenticationBES
00311 //
00312 
00313 class H235_AuthenticationBES : public PASN_Choice
00314 {
00315 #ifndef PASN_LEANANDMEAN
00316     PCLASSINFO(H235_AuthenticationBES, PASN_Choice);
00317 #endif
00318   public:
00319     H235_AuthenticationBES(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00320 
00321     enum Choices {
00322       e_default,
00323       e_radius
00324     };
00325 
00326     PBoolean CreateObject();
00327     PObject * Clone() const;
00328 };
00329 
00330 
00331 //
00332 // AuthenticationMechanism
00333 //
00334 
00335 class H235_NonStandardParameter;
00336 class H235_AuthenticationBES;
00337 
00338 class H235_AuthenticationMechanism : public PASN_Choice
00339 {
00340 #ifndef PASN_LEANANDMEAN
00341     PCLASSINFO(H235_AuthenticationMechanism, PASN_Choice);
00342 #endif
00343   public:
00344     H235_AuthenticationMechanism(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00345 
00346     enum Choices {
00347       e_dhExch,
00348       e_pwdSymEnc,
00349       e_pwdHash,
00350       e_certSign,
00351       e_ipsec,
00352       e_tls,
00353       e_nonStandard,
00354       e_authenticationBES,
00355       e_keyExch
00356     };
00357 
00358 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00359     operator H235_NonStandardParameter &() const;
00360 #else
00361     operator H235_NonStandardParameter &();
00362     operator const H235_NonStandardParameter &() const;
00363 #endif
00364 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00365     operator H235_AuthenticationBES &() const;
00366 #else
00367     operator H235_AuthenticationBES &();
00368     operator const H235_AuthenticationBES &() const;
00369 #endif
00370 
00371     PBoolean CreateObject();
00372     PObject * Clone() const;
00373 };
00374 
00375 
00376 //
00377 // Element
00378 //
00379 
00380 class H235_Element : public PASN_Choice
00381 {
00382 #ifndef PASN_LEANANDMEAN
00383     PCLASSINFO(H235_Element, PASN_Choice);
00384 #endif
00385   public:
00386     H235_Element(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00387 
00388     enum Choices {
00389       e_octets,
00390       e_integer,
00391       e_bits,
00392       e_name,
00393       e_flag
00394     };
00395 
00396     PBoolean CreateObject();
00397     PObject * Clone() const;
00398 };
00399 
00400 
00401 //
00402 // IV8
00403 //
00404 
00405 class H235_IV8 : public PASN_OctetString
00406 {
00407 #ifndef PASN_LEANANDMEAN
00408     PCLASSINFO(H235_IV8, PASN_OctetString);
00409 #endif
00410   public:
00411     H235_IV8(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
00412 
00413     H235_IV8(const char * v);
00414     H235_IV8(const PString & v);
00415     H235_IV8(const PBYTEArray & v);
00416 
00417     H235_IV8 & operator=(const char * v);
00418     H235_IV8 & operator=(const PString & v);
00419     H235_IV8 & operator=(const PBYTEArray & v);
00420     PObject * Clone() const;
00421 };
00422 
00423 
00424 //
00425 // IV16
00426 //
00427 
00428 class H235_IV16 : public PASN_OctetString
00429 {
00430 #ifndef PASN_LEANANDMEAN
00431     PCLASSINFO(H235_IV16, PASN_OctetString);
00432 #endif
00433   public:
00434     H235_IV16(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
00435 
00436     H235_IV16(const char * v);
00437     H235_IV16(const PString & v);
00438     H235_IV16(const PBYTEArray & v);
00439 
00440     H235_IV16 & operator=(const char * v);
00441     H235_IV16 & operator=(const PString & v);
00442     H235_IV16 & operator=(const PBYTEArray & v);
00443     PObject * Clone() const;
00444 };
00445 
00446 
00447 //
00448 // Params
00449 //
00450 
00451 class H235_Params : public PASN_Sequence
00452 {
00453 #ifndef PASN_LEANANDMEAN
00454     PCLASSINFO(H235_Params, PASN_Sequence);
00455 #endif
00456   public:
00457     H235_Params(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00458 
00459     enum OptionalFields {
00460       e_ranInt,
00461       e_iv8,
00462       e_iv16,
00463       e_iv,
00464       e_clearSalt
00465     };
00466 
00467     PASN_Integer m_ranInt;
00468     H235_IV8 m_iv8;
00469     H235_IV16 m_iv16;
00470     PASN_OctetString m_iv;
00471     PASN_OctetString m_clearSalt;
00472 
00473     PINDEX GetDataLength() const;
00474     PBoolean Decode(PASN_Stream & strm);
00475     void Encode(PASN_Stream & strm) const;
00476 #ifndef PASN_NOPRINTON
00477     void PrintOn(ostream & strm) const;
00478 #endif
00479     Comparison Compare(const PObject & obj) const;
00480     PObject * Clone() const;
00481 };
00482 
00483 
00484 //
00485 // ReturnSig
00486 //
00487 
00488 class H235_ReturnSig : public PASN_Sequence
00489 {
00490 #ifndef PASN_LEANANDMEAN
00491     PCLASSINFO(H235_ReturnSig, PASN_Sequence);
00492 #endif
00493   public:
00494     H235_ReturnSig(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00495 
00496     enum OptionalFields {
00497       e_requestRandom,
00498       e_certificate
00499     };
00500 
00501     H235_Identifier m_generalId;
00502     H235_RandomVal m_responseRandom;
00503     H235_RandomVal m_requestRandom;
00504     H235_TypedCertificate m_certificate;
00505 
00506     PINDEX GetDataLength() const;
00507     PBoolean Decode(PASN_Stream & strm);
00508     void Encode(PASN_Stream & strm) const;
00509 #ifndef PASN_NOPRINTON
00510     void PrintOn(ostream & strm) const;
00511 #endif
00512     Comparison Compare(const PObject & obj) const;
00513     PObject * Clone() const;
00514 };
00515 
00516 
00517 //
00518 // EncodedReturnSig
00519 //
00520 
00521 class H235_EncodedReturnSig : public PASN_OctetString
00522 {
00523 #ifndef PASN_LEANANDMEAN
00524     PCLASSINFO(H235_EncodedReturnSig, PASN_OctetString);
00525 #endif
00526   public:
00527     H235_EncodedReturnSig(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00528 
00529     PBoolean DecodeSubType(H235_ReturnSig & obj) { return PASN_OctetString::DecodeSubType(obj); }
00530     void EncodeSubType(const H235_ReturnSig & obj) { PASN_OctetString::EncodeSubType(obj); } 
00531 
00532     PObject * Clone() const;
00533 };
00534 
00535 
00536 //
00537 // KeySyncMaterial
00538 //
00539 
00540 class H235_KeySyncMaterial : public PASN_Sequence
00541 {
00542 #ifndef PASN_LEANANDMEAN
00543     PCLASSINFO(H235_KeySyncMaterial, PASN_Sequence);
00544 #endif
00545   public:
00546     H235_KeySyncMaterial(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00547 
00548     H235_Identifier m_generalID;
00549     H235_KeyMaterial m_keyMaterial;
00550 
00551     PINDEX GetDataLength() const;
00552     PBoolean Decode(PASN_Stream & strm);
00553     void Encode(PASN_Stream & strm) const;
00554 #ifndef PASN_NOPRINTON
00555     void PrintOn(ostream & strm) const;
00556 #endif
00557     Comparison Compare(const PObject & obj) const;
00558     PObject * Clone() const;
00559 };
00560 
00561 
00562 //
00563 // EncodedKeySyncMaterial
00564 //
00565 
00566 class H235_EncodedKeySyncMaterial : public PASN_OctetString
00567 {
00568 #ifndef PASN_LEANANDMEAN
00569     PCLASSINFO(H235_EncodedKeySyncMaterial, PASN_OctetString);
00570 #endif
00571   public:
00572     H235_EncodedKeySyncMaterial(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00573 
00574     PBoolean DecodeSubType(H235_KeySyncMaterial & obj) { return PASN_OctetString::DecodeSubType(obj); }
00575     void EncodeSubType(const H235_KeySyncMaterial & obj) { PASN_OctetString::EncodeSubType(obj); } 
00576 
00577     PObject * Clone() const;
00578 };
00579 
00580 
00581 //
00582 // V3KeySyncMaterial
00583 //
00584 
00585 class H235_V3KeySyncMaterial : public PASN_Sequence
00586 {
00587 #ifndef PASN_LEANANDMEAN
00588     PCLASSINFO(H235_V3KeySyncMaterial, PASN_Sequence);
00589 #endif
00590   public:
00591     H235_V3KeySyncMaterial(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00592 
00593     enum OptionalFields {
00594       e_generalID,
00595       e_algorithmOID,
00596       e_encryptedSessionKey,
00597       e_encryptedSaltingKey,
00598       e_clearSaltingKey,
00599       e_paramSsalt,
00600       e_keyDerivationOID,
00601       e_genericKeyMaterial
00602     };
00603 
00604     H235_Identifier m_generalID;
00605     PASN_ObjectId m_algorithmOID;
00606     H235_Params m_paramS;
00607     PASN_OctetString m_encryptedSessionKey;
00608     PASN_OctetString m_encryptedSaltingKey;
00609     PASN_OctetString m_clearSaltingKey;
00610     H235_Params m_paramSsalt;
00611     PASN_ObjectId m_keyDerivationOID;
00612     PASN_OctetString m_genericKeyMaterial;
00613 
00614     PINDEX GetDataLength() const;
00615     PBoolean Decode(PASN_Stream & strm);
00616     void Encode(PASN_Stream & strm) const;
00617 #ifndef PASN_NOPRINTON
00618     void PrintOn(ostream & strm) const;
00619 #endif
00620     Comparison Compare(const PObject & obj) const;
00621     PObject * Clone() const;
00622 };
00623 
00624 
00625 //
00626 // ECKASDH_eckasdhp
00627 //
00628 
00629 class H235_ECKASDH_eckasdhp : public PASN_Sequence
00630 {
00631 #ifndef PASN_LEANANDMEAN
00632     PCLASSINFO(H235_ECKASDH_eckasdhp, PASN_Sequence);
00633 #endif
00634   public:
00635     H235_ECKASDH_eckasdhp(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00636 
00637     H235_ECpoint m_public_key;
00638     PASN_BitString m_modulus;
00639     H235_ECpoint m_base;
00640     PASN_BitString m_weierstrassA;
00641     PASN_BitString m_weierstrassB;
00642 
00643     PINDEX GetDataLength() const;
00644     PBoolean Decode(PASN_Stream & strm);
00645     void Encode(PASN_Stream & strm) const;
00646 #ifndef PASN_NOPRINTON
00647     void PrintOn(ostream & strm) const;
00648 #endif
00649     Comparison Compare(const PObject & obj) const;
00650     PObject * Clone() const;
00651 };
00652 
00653 
00654 //
00655 // ECKASDH_eckasdh2
00656 //
00657 
00658 class H235_ECKASDH_eckasdh2 : public PASN_Sequence
00659 {
00660 #ifndef PASN_LEANANDMEAN
00661     PCLASSINFO(H235_ECKASDH_eckasdh2, PASN_Sequence);
00662 #endif
00663   public:
00664     H235_ECKASDH_eckasdh2(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00665 
00666     H235_ECpoint m_public_key;
00667     PASN_BitString m_fieldSize;
00668     H235_ECpoint m_base;
00669     PASN_BitString m_weierstrassA;
00670     PASN_BitString m_weierstrassB;
00671 
00672     PINDEX GetDataLength() const;
00673     PBoolean Decode(PASN_Stream & strm);
00674     void Encode(PASN_Stream & strm) const;
00675 #ifndef PASN_NOPRINTON
00676     void PrintOn(ostream & strm) const;
00677 #endif
00678     Comparison Compare(const PObject & obj) const;
00679     PObject * Clone() const;
00680 };
00681 
00682 
00683 //
00684 // ArrayOf_ProfileElement
00685 //
00686 
00687 class H235_ProfileElement;
00688 
00689 class H235_ArrayOf_ProfileElement : public PASN_Array
00690 {
00691 #ifndef PASN_LEANANDMEAN
00692     PCLASSINFO(H235_ArrayOf_ProfileElement, PASN_Array);
00693 #endif
00694   public:
00695     H235_ArrayOf_ProfileElement(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00696 
00697     PASN_Object * CreateObject() const;
00698     H235_ProfileElement & operator[](PINDEX i) const;
00699     PObject * Clone() const;
00700 };
00701 
00702 
00703 //
00704 // ProfileElement
00705 //
00706 
00707 class H235_ProfileElement : public PASN_Sequence
00708 {
00709 #ifndef PASN_LEANANDMEAN
00710     PCLASSINFO(H235_ProfileElement, PASN_Sequence);
00711 #endif
00712   public:
00713     H235_ProfileElement(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00714 
00715     enum OptionalFields {
00716       e_paramS,
00717       e_element
00718     };
00719 
00720     PASN_Integer m_elementID;
00721     H235_Params m_paramS;
00722     H235_Element m_element;
00723 
00724     PINDEX GetDataLength() const;
00725     PBoolean Decode(PASN_Stream & strm);
00726     void Encode(PASN_Stream & strm) const;
00727 #ifndef PASN_NOPRINTON
00728     void PrintOn(ostream & strm) const;
00729 #endif
00730     Comparison Compare(const PObject & obj) const;
00731     PObject * Clone() const;
00732 };
00733 
00734 
00735 //
00736 // SIGNED
00737 //
00738 
00739 template <class ToBeSigned>
00740 class H235_SIGNED : public PASN_Sequence
00741 {
00742 #ifndef PASN_LEANANDMEAN
00743     PCLASSINFO(H235_SIGNED, PASN_Sequence);
00744 #endif
00745   public:
00746     H235_SIGNED(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00747 
00748     ToBeSigned m_toBeSigned;
00749     PASN_ObjectId m_algorithmOID;
00750     H235_Params m_paramS;
00751     PASN_BitString m_signature;
00752 
00753     PINDEX GetDataLength() const;
00754     PBoolean Decode(PASN_Stream & strm);
00755     void Encode(PASN_Stream & strm) const;
00756 #ifndef PASN_NOPRINTON
00757     void PrintOn(ostream & strm) const;
00758 #endif
00759     Comparison Compare(const PObject & obj) const;
00760     PObject * Clone() const;
00761 };
00762 
00763 
00764 //
00765 // ENCRYPTED
00766 //
00767 
00768 template <class ToBeEncrypted>
00769 class H235_ENCRYPTED : public PASN_Sequence
00770 {
00771 #ifndef PASN_LEANANDMEAN
00772     PCLASSINFO(H235_ENCRYPTED, PASN_Sequence);
00773 #endif
00774   public:
00775     H235_ENCRYPTED(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00776 
00777     PASN_ObjectId m_algorithmOID;
00778     H235_Params m_paramS;
00779     PASN_OctetString m_encryptedData;
00780 
00781     PINDEX GetDataLength() const;
00782     PBoolean Decode(PASN_Stream & strm);
00783     void Encode(PASN_Stream & strm) const;
00784 #ifndef PASN_NOPRINTON
00785     void PrintOn(ostream & strm) const;
00786 #endif
00787     Comparison Compare(const PObject & obj) const;
00788     PObject * Clone() const;
00789 };
00790 
00791 
00792 //
00793 // HASHED
00794 //
00795 
00796 template <class ToBeHashed>
00797 class H235_HASHED : public PASN_Sequence
00798 {
00799 #ifndef PASN_LEANANDMEAN
00800     PCLASSINFO(H235_HASHED, PASN_Sequence);
00801 #endif
00802   public:
00803     H235_HASHED(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00804 
00805     PASN_ObjectId m_algorithmOID;
00806     H235_Params m_paramS;
00807     PASN_BitString m_hash;
00808 
00809     PINDEX GetDataLength() const;
00810     PBoolean Decode(PASN_Stream & strm);
00811     void Encode(PASN_Stream & strm) const;
00812 #ifndef PASN_NOPRINTON
00813     void PrintOn(ostream & strm) const;
00814 #endif
00815     Comparison Compare(const PObject & obj) const;
00816     PObject * Clone() const;
00817 };
00818 
00819 
00820 //
00821 // KeySignedMaterial
00822 //
00823 
00824 class H235_KeySignedMaterial : public PASN_Sequence
00825 {
00826 #ifndef PASN_LEANANDMEAN
00827     PCLASSINFO(H235_KeySignedMaterial, PASN_Sequence);
00828 #endif
00829   public:
00830     H235_KeySignedMaterial(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00831 
00832     enum OptionalFields {
00833       e_srandom,
00834       e_timeStamp
00835     };
00836 
00837     H235_Identifier m_generalId;
00838     H235_RandomVal m_mrandom;
00839     H235_RandomVal m_srandom;
00840     H235_TimeStamp m_timeStamp;
00841     H235_ENCRYPTED<H235_EncodedKeySyncMaterial> m_encrptval;
00842 
00843     PINDEX GetDataLength() const;
00844     PBoolean Decode(PASN_Stream & strm);
00845     void Encode(PASN_Stream & strm) const;
00846 #ifndef PASN_NOPRINTON
00847     void PrintOn(ostream & strm) const;
00848 #endif
00849     Comparison Compare(const PObject & obj) const;
00850     PObject * Clone() const;
00851 };
00852 
00853 
00854 //
00855 // EncodedKeySignedMaterial
00856 //
00857 
00858 class H235_EncodedKeySignedMaterial : public PASN_OctetString
00859 {
00860 #ifndef PASN_LEANANDMEAN
00861     PCLASSINFO(H235_EncodedKeySignedMaterial, PASN_OctetString);
00862 #endif
00863   public:
00864     H235_EncodedKeySignedMaterial(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00865 
00866     PBoolean DecodeSubType(H235_KeySignedMaterial & obj) { return PASN_OctetString::DecodeSubType(obj); }
00867     void EncodeSubType(const H235_KeySignedMaterial & obj) { PASN_OctetString::EncodeSubType(obj); } 
00868 
00869     PObject * Clone() const;
00870 };
00871 
00872 
00873 //
00874 // H235CertificateSignature
00875 //
00876 
00877 class H235_H235CertificateSignature : public PASN_Sequence
00878 {
00879 #ifndef PASN_LEANANDMEAN
00880     PCLASSINFO(H235_H235CertificateSignature, PASN_Sequence);
00881 #endif
00882   public:
00883     H235_H235CertificateSignature(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00884 
00885     enum OptionalFields {
00886       e_requesterRandom
00887     };
00888 
00889     H235_TypedCertificate m_certificate;
00890     H235_RandomVal m_responseRandom;
00891     H235_RandomVal m_requesterRandom;
00892     H235_SIGNED<H235_EncodedReturnSig> m_signature;
00893 
00894     PINDEX GetDataLength() const;
00895     PBoolean Decode(PASN_Stream & strm);
00896     void Encode(PASN_Stream & strm) const;
00897 #ifndef PASN_NOPRINTON
00898     void PrintOn(ostream & strm) const;
00899 #endif
00900     Comparison Compare(const PObject & obj) const;
00901     PObject * Clone() const;
00902 };
00903 
00904 
00905 //
00906 // H235Key
00907 //
00908 
00909 class H235_KeyMaterial;
00910 class H235_V3KeySyncMaterial;
00911 
00912 class H235_H235Key : public PASN_Choice
00913 {
00914 #ifndef PASN_LEANANDMEAN
00915     PCLASSINFO(H235_H235Key, PASN_Choice);
00916 #endif
00917   public:
00918     H235_H235Key(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00919 
00920     enum Choices {
00921       e_secureChannel,
00922       e_sharedSecret,
00923       e_certProtectedKey,
00924       e_secureSharedSecret
00925     };
00926 
00927 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00928     operator H235_KeyMaterial &() const;
00929 #else
00930     operator H235_KeyMaterial &();
00931     operator const H235_KeyMaterial &() const;
00932 #endif
00933 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00934     operator H235_ENCRYPTED<H235_EncodedKeySyncMaterial> &() const;
00935 #else
00936     operator H235_ENCRYPTED<H235_EncodedKeySyncMaterial> &();
00937     operator const H235_ENCRYPTED<H235_EncodedKeySyncMaterial> &() const;
00938 #endif
00939 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00940     operator H235_SIGNED<H235_EncodedKeySignedMaterial> &() const;
00941 #else
00942     operator H235_SIGNED<H235_EncodedKeySignedMaterial> &();
00943     operator const H235_SIGNED<H235_EncodedKeySignedMaterial> &() const;
00944 #endif
00945 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00946     operator H235_V3KeySyncMaterial &() const;
00947 #else
00948     operator H235_V3KeySyncMaterial &();
00949     operator const H235_V3KeySyncMaterial &() const;
00950 #endif
00951 
00952     PBoolean CreateObject();
00953     PObject * Clone() const;
00954 };
00955 
00956 
00957 //
00958 // ClearToken
00959 //
00960 
00961 class H235_ClearToken : public PASN_Sequence
00962 {
00963 #ifndef PASN_LEANANDMEAN
00964     PCLASSINFO(H235_ClearToken, PASN_Sequence);
00965 #endif
00966   public:
00967     H235_ClearToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00968 
00969     enum OptionalFields {
00970       e_timeStamp,
00971       e_password,
00972       e_dhkey,
00973       e_challenge,
00974       e_random,
00975       e_certificate,
00976       e_generalID,
00977       e_nonStandard,
00978       e_eckasdhkey,
00979       e_sendersID,
00980       e_h235Key,
00981       e_profileInfo
00982     };
00983 
00984     PASN_ObjectId m_tokenOID;
00985     H235_TimeStamp m_timeStamp;
00986     H235_Password m_password;
00987     H235_DHset m_dhkey;
00988     H235_ChallengeString m_challenge;
00989     H235_RandomVal m_random;
00990     H235_TypedCertificate m_certificate;
00991     H235_Identifier m_generalID;
00992     H235_NonStandardParameter m_nonStandard;
00993     H235_ECKASDH m_eckasdhkey;
00994     H235_Identifier m_sendersID;
00995     H235_H235Key m_h235Key;
00996     H235_ArrayOf_ProfileElement m_profileInfo;
00997 
00998     PINDEX GetDataLength() const;
00999     PBoolean Decode(PASN_Stream & strm);
01000     void Encode(PASN_Stream & strm) const;
01001 #ifndef PASN_NOPRINTON
01002     void PrintOn(ostream & strm) const;
01003 #endif
01004     Comparison Compare(const PObject & obj) const;
01005     PObject * Clone() const;
01006 };
01007 
01008 
01009 //
01010 // EncodedGeneralToken
01011 //
01012 
01013 class H235_EncodedGeneralToken : public PASN_OctetString
01014 {
01015 #ifndef PASN_LEANANDMEAN
01016     PCLASSINFO(H235_EncodedGeneralToken, PASN_OctetString);
01017 #endif
01018   public:
01019     H235_EncodedGeneralToken(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01020 
01021     PBoolean DecodeSubType(H235_ClearToken & obj) { return PASN_OctetString::DecodeSubType(obj); }
01022     void EncodeSubType(const H235_ClearToken & obj) { PASN_OctetString::EncodeSubType(obj); } 
01023 
01024     PObject * Clone() const;
01025 };
01026 
01027 
01028 //
01029 // PwdCertToken
01030 //
01031 
01032 class H235_PwdCertToken : public H235_ClearToken
01033 {
01034 #ifndef PASN_LEANANDMEAN
01035     PCLASSINFO(H235_PwdCertToken, H235_ClearToken);
01036 #endif
01037   public:
01038     H235_PwdCertToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01039 
01040     PObject * Clone() const;
01041 };
01042 
01043 
01044 //
01045 // EncodedPwdCertToken
01046 //
01047 
01048 class H235_EncodedPwdCertToken : public PASN_OctetString
01049 {
01050 #ifndef PASN_LEANANDMEAN
01051     PCLASSINFO(H235_EncodedPwdCertToken, PASN_OctetString);
01052 #endif
01053   public:
01054     H235_EncodedPwdCertToken(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01055 
01056     PBoolean DecodeSubType(H235_PwdCertToken & obj) { return PASN_OctetString::DecodeSubType(obj); }
01057     void EncodeSubType(const H235_PwdCertToken & obj) { PASN_OctetString::EncodeSubType(obj); } 
01058 
01059     PObject * Clone() const;
01060 };
01061 
01062 
01063 //
01064 // CryptoToken
01065 //
01066 
01067 class H235_CryptoToken_cryptoEncryptedToken;
01068 class H235_CryptoToken_cryptoSignedToken;
01069 class H235_CryptoToken_cryptoHashedToken;
01070 
01071 class H235_CryptoToken : public PASN_Choice
01072 {
01073 #ifndef PASN_LEANANDMEAN
01074     PCLASSINFO(H235_CryptoToken, PASN_Choice);
01075 #endif
01076   public:
01077     H235_CryptoToken(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01078 
01079     enum Choices {
01080       e_cryptoEncryptedToken,
01081       e_cryptoSignedToken,
01082       e_cryptoHashedToken,
01083       e_cryptoPwdEncr
01084     };
01085 
01086 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01087     operator H235_CryptoToken_cryptoEncryptedToken &() const;
01088 #else
01089     operator H235_CryptoToken_cryptoEncryptedToken &();
01090     operator const H235_CryptoToken_cryptoEncryptedToken &() const;
01091 #endif
01092 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01093     operator H235_CryptoToken_cryptoSignedToken &() const;
01094 #else
01095     operator H235_CryptoToken_cryptoSignedToken &();
01096     operator const H235_CryptoToken_cryptoSignedToken &() const;
01097 #endif
01098 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01099     operator H235_CryptoToken_cryptoHashedToken &() const;
01100 #else
01101     operator H235_CryptoToken_cryptoHashedToken &();
01102     operator const H235_CryptoToken_cryptoHashedToken &() const;
01103 #endif
01104 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01105     operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const;
01106 #else
01107     operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &();
01108     operator const H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const;
01109 #endif
01110 
01111     PBoolean CreateObject();
01112     PObject * Clone() const;
01113 };
01114 
01115 
01116 //
01117 // CryptoToken_cryptoEncryptedToken
01118 //
01119 
01120 class H235_CryptoToken_cryptoEncryptedToken : public PASN_Sequence
01121 {
01122 #ifndef PASN_LEANANDMEAN
01123     PCLASSINFO(H235_CryptoToken_cryptoEncryptedToken, PASN_Sequence);
01124 #endif
01125   public:
01126     H235_CryptoToken_cryptoEncryptedToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01127 
01128     PASN_ObjectId m_tokenOID;
01129     H235_ENCRYPTED<H235_EncodedGeneralToken> m_token;
01130 
01131     PINDEX GetDataLength() const;
01132     PBoolean Decode(PASN_Stream & strm);
01133     void Encode(PASN_Stream & strm) const;
01134 #ifndef PASN_NOPRINTON
01135     void PrintOn(ostream & strm) const;
01136 #endif
01137     Comparison Compare(const PObject & obj) const;
01138     PObject * Clone() const;
01139 };
01140 
01141 
01142 //
01143 // CryptoToken_cryptoSignedToken
01144 //
01145 
01146 class H235_CryptoToken_cryptoSignedToken : public PASN_Sequence
01147 {
01148 #ifndef PASN_LEANANDMEAN
01149     PCLASSINFO(H235_CryptoToken_cryptoSignedToken, PASN_Sequence);
01150 #endif
01151   public:
01152     H235_CryptoToken_cryptoSignedToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01153 
01154     PASN_ObjectId m_tokenOID;
01155     H235_SIGNED<H235_EncodedGeneralToken> m_token;
01156 
01157     PINDEX GetDataLength() const;
01158     PBoolean Decode(PASN_Stream & strm);
01159     void Encode(PASN_Stream & strm) const;
01160 #ifndef PASN_NOPRINTON
01161     void PrintOn(ostream & strm) const;
01162 #endif
01163     Comparison Compare(const PObject & obj) const;
01164     PObject * Clone() const;
01165 };
01166 
01167 
01168 //
01169 // CryptoToken_cryptoHashedToken
01170 //
01171 
01172 class H235_CryptoToken_cryptoHashedToken : public PASN_Sequence
01173 {
01174 #ifndef PASN_LEANANDMEAN
01175     PCLASSINFO(H235_CryptoToken_cryptoHashedToken, PASN_Sequence);
01176 #endif
01177   public:
01178     H235_CryptoToken_cryptoHashedToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01179 
01180     PASN_ObjectId m_tokenOID;
01181     H235_ClearToken m_hashedVals;
01182     H235_HASHED<H235_EncodedGeneralToken> m_token;
01183 
01184     PINDEX GetDataLength() const;
01185     PBoolean Decode(PASN_Stream & strm);
01186     void Encode(PASN_Stream & strm) const;
01187 #ifndef PASN_NOPRINTON
01188     void PrintOn(ostream & strm) const;
01189 #endif
01190     Comparison Compare(const PObject & obj) const;
01191     PObject * Clone() const;
01192 };
01193 
01194 
01195 #endif // __H235_H
01196 
01197 #endif // if ! H323_DISABLE_H235
01198 
01199 
01200 // End of h235.h

Generated on Mon Feb 23 02:01:16 2009 for OPAL by  doxygen 1.5.1