h235.h

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

Generated on Fri Mar 7 06:33:18 2008 for OPAL by  doxygen 1.5.1