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     };
00354 
00355 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00356     operator H235_NonStandardParameter &() const;
00357 #else
00358     operator H235_NonStandardParameter &();
00359     operator const H235_NonStandardParameter &() const;
00360 #endif
00361 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00362     operator H235_AuthenticationBES &() const;
00363 #else
00364     operator H235_AuthenticationBES &();
00365     operator const H235_AuthenticationBES &() const;
00366 #endif
00367 
00368     BOOL CreateObject();
00369     PObject * Clone() const;
00370 };
00371 
00372 
00373 //
00374 // IV8
00375 //
00376 
00377 class H235_IV8 : public PASN_OctetString
00378 {
00379 #ifndef PASN_LEANANDMEAN
00380     PCLASSINFO(H235_IV8, PASN_OctetString);
00381 #endif
00382   public:
00383     H235_IV8(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
00384 
00385     H235_IV8(const char * v);
00386     H235_IV8(const PString & v);
00387     H235_IV8(const PBYTEArray & v);
00388 
00389     H235_IV8 & operator=(const char * v);
00390     H235_IV8 & operator=(const PString & v);
00391     H235_IV8 & operator=(const PBYTEArray & v);
00392     PObject * Clone() const;
00393 };
00394 
00395 
00396 //
00397 // IV16
00398 //
00399 
00400 class H235_IV16 : public PASN_OctetString
00401 {
00402 #ifndef PASN_LEANANDMEAN
00403     PCLASSINFO(H235_IV16, PASN_OctetString);
00404 #endif
00405   public:
00406     H235_IV16(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
00407 
00408     H235_IV16(const char * v);
00409     H235_IV16(const PString & v);
00410     H235_IV16(const PBYTEArray & v);
00411 
00412     H235_IV16 & operator=(const char * v);
00413     H235_IV16 & operator=(const PString & v);
00414     H235_IV16 & operator=(const PBYTEArray & v);
00415     PObject * Clone() const;
00416 };
00417 
00418 
00419 //
00420 // Params
00421 //
00422 
00423 class H235_Params : public PASN_Sequence
00424 {
00425 #ifndef PASN_LEANANDMEAN
00426     PCLASSINFO(H235_Params, PASN_Sequence);
00427 #endif
00428   public:
00429     H235_Params(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00430 
00431     enum OptionalFields {
00432       e_ranInt,
00433       e_iv8,
00434       e_iv16,
00435       e_iv,
00436       e_clearSalt
00437     };
00438 
00439     PASN_Integer m_ranInt;
00440     H235_IV8 m_iv8;
00441     H235_IV16 m_iv16;
00442     PASN_OctetString m_iv;
00443     PASN_OctetString m_clearSalt;
00444 
00445     PINDEX GetDataLength() const;
00446     BOOL Decode(PASN_Stream & strm);
00447     void Encode(PASN_Stream & strm) const;
00448 #ifndef PASN_NOPRINTON
00449     void PrintOn(ostream & strm) const;
00450 #endif
00451     Comparison Compare(const PObject & obj) const;
00452     PObject * Clone() const;
00453 };
00454 
00455 
00456 //
00457 // ReturnSig
00458 //
00459 
00460 class H235_ReturnSig : public PASN_Sequence
00461 {
00462 #ifndef PASN_LEANANDMEAN
00463     PCLASSINFO(H235_ReturnSig, PASN_Sequence);
00464 #endif
00465   public:
00466     H235_ReturnSig(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00467 
00468     enum OptionalFields {
00469       e_requestRandom,
00470       e_certificate
00471     };
00472 
00473     H235_Identifier m_generalId;
00474     H235_RandomVal m_responseRandom;
00475     H235_RandomVal m_requestRandom;
00476     H235_TypedCertificate m_certificate;
00477 
00478     PINDEX GetDataLength() const;
00479     BOOL Decode(PASN_Stream & strm);
00480     void Encode(PASN_Stream & strm) const;
00481 #ifndef PASN_NOPRINTON
00482     void PrintOn(ostream & strm) const;
00483 #endif
00484     Comparison Compare(const PObject & obj) const;
00485     PObject * Clone() const;
00486 };
00487 
00488 
00489 //
00490 // EncodedReturnSig
00491 //
00492 
00493 class H235_EncodedReturnSig : public PASN_OctetString
00494 {
00495 #ifndef PASN_LEANANDMEAN
00496     PCLASSINFO(H235_EncodedReturnSig, PASN_OctetString);
00497 #endif
00498   public:
00499     H235_EncodedReturnSig(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00500 
00501     BOOL DecodeSubType(H235_ReturnSig & obj) { return PASN_OctetString::DecodeSubType(obj); }
00502     void EncodeSubType(const H235_ReturnSig & obj) { PASN_OctetString::EncodeSubType(obj); } 
00503 
00504     PObject * Clone() const;
00505 };
00506 
00507 
00508 //
00509 // KeySyncMaterial
00510 //
00511 
00512 class H235_KeySyncMaterial : public PASN_Sequence
00513 {
00514 #ifndef PASN_LEANANDMEAN
00515     PCLASSINFO(H235_KeySyncMaterial, PASN_Sequence);
00516 #endif
00517   public:
00518     H235_KeySyncMaterial(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00519 
00520     H235_Identifier m_generalID;
00521     H235_KeyMaterial m_keyMaterial;
00522 
00523     PINDEX GetDataLength() const;
00524     BOOL Decode(PASN_Stream & strm);
00525     void Encode(PASN_Stream & strm) const;
00526 #ifndef PASN_NOPRINTON
00527     void PrintOn(ostream & strm) const;
00528 #endif
00529     Comparison Compare(const PObject & obj) const;
00530     PObject * Clone() const;
00531 };
00532 
00533 
00534 //
00535 // EncodedKeySyncMaterial
00536 //
00537 
00538 class H235_EncodedKeySyncMaterial : public PASN_OctetString
00539 {
00540 #ifndef PASN_LEANANDMEAN
00541     PCLASSINFO(H235_EncodedKeySyncMaterial, PASN_OctetString);
00542 #endif
00543   public:
00544     H235_EncodedKeySyncMaterial(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00545 
00546     BOOL DecodeSubType(H235_KeySyncMaterial & obj) { return PASN_OctetString::DecodeSubType(obj); }
00547     void EncodeSubType(const H235_KeySyncMaterial & obj) { PASN_OctetString::EncodeSubType(obj); } 
00548 
00549     PObject * Clone() const;
00550 };
00551 
00552 
00553 //
00554 // V3KeySyncMaterial
00555 //
00556 
00557 class H235_V3KeySyncMaterial : public PASN_Sequence
00558 {
00559 #ifndef PASN_LEANANDMEAN
00560     PCLASSINFO(H235_V3KeySyncMaterial, PASN_Sequence);
00561 #endif
00562   public:
00563     H235_V3KeySyncMaterial(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00564 
00565     enum OptionalFields {
00566       e_generalID,
00567       e_algorithmOID,
00568       e_encryptedSessionKey,
00569       e_encryptedSaltingKey,
00570       e_clearSaltingKey,
00571       e_paramSsalt,
00572       e_keyDerivationOID
00573     };
00574 
00575     H235_Identifier m_generalID;
00576     PASN_ObjectId m_algorithmOID;
00577     H235_Params m_paramS;
00578     PASN_OctetString m_encryptedSessionKey;
00579     PASN_OctetString m_encryptedSaltingKey;
00580     PASN_OctetString m_clearSaltingKey;
00581     H235_Params m_paramSsalt;
00582     PASN_ObjectId m_keyDerivationOID;
00583 
00584     PINDEX GetDataLength() const;
00585     BOOL Decode(PASN_Stream & strm);
00586     void Encode(PASN_Stream & strm) const;
00587 #ifndef PASN_NOPRINTON
00588     void PrintOn(ostream & strm) const;
00589 #endif
00590     Comparison Compare(const PObject & obj) const;
00591     PObject * Clone() const;
00592 };
00593 
00594 
00595 //
00596 // ECKASDH_eckasdhp
00597 //
00598 
00599 class H235_ECKASDH_eckasdhp : public PASN_Sequence
00600 {
00601 #ifndef PASN_LEANANDMEAN
00602     PCLASSINFO(H235_ECKASDH_eckasdhp, PASN_Sequence);
00603 #endif
00604   public:
00605     H235_ECKASDH_eckasdhp(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00606 
00607     H235_ECpoint m_public_key;
00608     PASN_BitString m_modulus;
00609     H235_ECpoint m_base;
00610     PASN_BitString m_weierstrassA;
00611     PASN_BitString m_weierstrassB;
00612 
00613     PINDEX GetDataLength() const;
00614     BOOL Decode(PASN_Stream & strm);
00615     void Encode(PASN_Stream & strm) const;
00616 #ifndef PASN_NOPRINTON
00617     void PrintOn(ostream & strm) const;
00618 #endif
00619     Comparison Compare(const PObject & obj) const;
00620     PObject * Clone() const;
00621 };
00622 
00623 
00624 //
00625 // ECKASDH_eckasdh2
00626 //
00627 
00628 class H235_ECKASDH_eckasdh2 : public PASN_Sequence
00629 {
00630 #ifndef PASN_LEANANDMEAN
00631     PCLASSINFO(H235_ECKASDH_eckasdh2, PASN_Sequence);
00632 #endif
00633   public:
00634     H235_ECKASDH_eckasdh2(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00635 
00636     H235_ECpoint m_public_key;
00637     PASN_BitString m_fieldSize;
00638     H235_ECpoint m_base;
00639     PASN_BitString m_weierstrassA;
00640     PASN_BitString m_weierstrassB;
00641 
00642     PINDEX GetDataLength() const;
00643     BOOL Decode(PASN_Stream & strm);
00644     void Encode(PASN_Stream & strm) const;
00645 #ifndef PASN_NOPRINTON
00646     void PrintOn(ostream & strm) const;
00647 #endif
00648     Comparison Compare(const PObject & obj) const;
00649     PObject * Clone() const;
00650 };
00651 
00652 
00653 //
00654 // SIGNED
00655 //
00656 
00657 template <class ToBeSigned>
00658 class H235_SIGNED : public PASN_Sequence
00659 {
00660 #ifndef PASN_LEANANDMEAN
00661     PCLASSINFO(H235_SIGNED, PASN_Sequence);
00662 #endif
00663   public:
00664     H235_SIGNED(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00665 
00666     ToBeSigned m_toBeSigned;
00667     PASN_ObjectId m_algorithmOID;
00668     H235_Params m_paramS;
00669     PASN_BitString m_signature;
00670 
00671     PINDEX GetDataLength() const;
00672     BOOL Decode(PASN_Stream & strm);
00673     void Encode(PASN_Stream & strm) const;
00674 #ifndef PASN_NOPRINTON
00675     void PrintOn(ostream & strm) const;
00676 #endif
00677     Comparison Compare(const PObject & obj) const;
00678     PObject * Clone() const;
00679 };
00680 
00681 
00682 //
00683 // ENCRYPTED
00684 //
00685 
00686 template <class ToBeEncrypted>
00687 class H235_ENCRYPTED : public PASN_Sequence
00688 {
00689 #ifndef PASN_LEANANDMEAN
00690     PCLASSINFO(H235_ENCRYPTED, PASN_Sequence);
00691 #endif
00692   public:
00693     H235_ENCRYPTED(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00694 
00695     PASN_ObjectId m_algorithmOID;
00696     H235_Params m_paramS;
00697     PASN_OctetString m_encryptedData;
00698 
00699     PINDEX GetDataLength() const;
00700     BOOL Decode(PASN_Stream & strm);
00701     void Encode(PASN_Stream & strm) const;
00702 #ifndef PASN_NOPRINTON
00703     void PrintOn(ostream & strm) const;
00704 #endif
00705     Comparison Compare(const PObject & obj) const;
00706     PObject * Clone() const;
00707 };
00708 
00709 
00710 //
00711 // HASHED
00712 //
00713 
00714 template <class ToBeHashed>
00715 class H235_HASHED : public PASN_Sequence
00716 {
00717 #ifndef PASN_LEANANDMEAN
00718     PCLASSINFO(H235_HASHED, PASN_Sequence);
00719 #endif
00720   public:
00721     H235_HASHED(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00722 
00723     PASN_ObjectId m_algorithmOID;
00724     H235_Params m_paramS;
00725     PASN_BitString m_hash;
00726 
00727     PINDEX GetDataLength() const;
00728     BOOL Decode(PASN_Stream & strm);
00729     void Encode(PASN_Stream & strm) const;
00730 #ifndef PASN_NOPRINTON
00731     void PrintOn(ostream & strm) const;
00732 #endif
00733     Comparison Compare(const PObject & obj) const;
00734     PObject * Clone() const;
00735 };
00736 
00737 
00738 //
00739 // KeySignedMaterial
00740 //
00741 
00742 class H235_KeySignedMaterial : public PASN_Sequence
00743 {
00744 #ifndef PASN_LEANANDMEAN
00745     PCLASSINFO(H235_KeySignedMaterial, PASN_Sequence);
00746 #endif
00747   public:
00748     H235_KeySignedMaterial(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00749 
00750     enum OptionalFields {
00751       e_srandom,
00752       e_timeStamp
00753     };
00754 
00755     H235_Identifier m_generalId;
00756     H235_RandomVal m_mrandom;
00757     H235_RandomVal m_srandom;
00758     H235_TimeStamp m_timeStamp;
00759     H235_ENCRYPTED<H235_EncodedKeySyncMaterial> m_encrptval;
00760 
00761     PINDEX GetDataLength() const;
00762     BOOL Decode(PASN_Stream & strm);
00763     void Encode(PASN_Stream & strm) const;
00764 #ifndef PASN_NOPRINTON
00765     void PrintOn(ostream & strm) const;
00766 #endif
00767     Comparison Compare(const PObject & obj) const;
00768     PObject * Clone() const;
00769 };
00770 
00771 
00772 //
00773 // EncodedKeySignedMaterial
00774 //
00775 
00776 class H235_EncodedKeySignedMaterial : public PASN_OctetString
00777 {
00778 #ifndef PASN_LEANANDMEAN
00779     PCLASSINFO(H235_EncodedKeySignedMaterial, PASN_OctetString);
00780 #endif
00781   public:
00782     H235_EncodedKeySignedMaterial(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00783 
00784     BOOL DecodeSubType(H235_KeySignedMaterial & obj) { return PASN_OctetString::DecodeSubType(obj); }
00785     void EncodeSubType(const H235_KeySignedMaterial & obj) { PASN_OctetString::EncodeSubType(obj); } 
00786 
00787     PObject * Clone() const;
00788 };
00789 
00790 
00791 //
00792 // H235CertificateSignature
00793 //
00794 
00795 class H235_H235CertificateSignature : public PASN_Sequence
00796 {
00797 #ifndef PASN_LEANANDMEAN
00798     PCLASSINFO(H235_H235CertificateSignature, PASN_Sequence);
00799 #endif
00800   public:
00801     H235_H235CertificateSignature(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00802 
00803     enum OptionalFields {
00804       e_requesterRandom
00805     };
00806 
00807     H235_TypedCertificate m_certificate;
00808     H235_RandomVal m_responseRandom;
00809     H235_RandomVal m_requesterRandom;
00810     H235_SIGNED<H235_EncodedReturnSig> m_signature;
00811 
00812     PINDEX GetDataLength() const;
00813     BOOL Decode(PASN_Stream & strm);
00814     void Encode(PASN_Stream & strm) const;
00815 #ifndef PASN_NOPRINTON
00816     void PrintOn(ostream & strm) const;
00817 #endif
00818     Comparison Compare(const PObject & obj) const;
00819     PObject * Clone() const;
00820 };
00821 
00822 
00823 //
00824 // H235Key
00825 //
00826 
00827 class H235_KeyMaterial;
00828 class H235_V3KeySyncMaterial;
00829 
00830 class H235_H235Key : public PASN_Choice
00831 {
00832 #ifndef PASN_LEANANDMEAN
00833     PCLASSINFO(H235_H235Key, PASN_Choice);
00834 #endif
00835   public:
00836     H235_H235Key(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00837 
00838     enum Choices {
00839       e_secureChannel,
00840       e_sharedSecret,
00841       e_certProtectedKey,
00842       e_secureSharedSecret
00843     };
00844 
00845 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00846     operator H235_KeyMaterial &() const;
00847 #else
00848     operator H235_KeyMaterial &();
00849     operator const H235_KeyMaterial &() const;
00850 #endif
00851 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00852     operator H235_ENCRYPTED<H235_EncodedKeySyncMaterial> &() const;
00853 #else
00854     operator H235_ENCRYPTED<H235_EncodedKeySyncMaterial> &();
00855     operator const H235_ENCRYPTED<H235_EncodedKeySyncMaterial> &() const;
00856 #endif
00857 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00858     operator H235_SIGNED<H235_EncodedKeySignedMaterial> &() const;
00859 #else
00860     operator H235_SIGNED<H235_EncodedKeySignedMaterial> &();
00861     operator const H235_SIGNED<H235_EncodedKeySignedMaterial> &() const;
00862 #endif
00863 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00864     operator H235_V3KeySyncMaterial &() const;
00865 #else
00866     operator H235_V3KeySyncMaterial &();
00867     operator const H235_V3KeySyncMaterial &() const;
00868 #endif
00869 
00870     BOOL CreateObject();
00871     PObject * Clone() const;
00872 };
00873 
00874 
00875 //
00876 // ClearToken
00877 //
00878 
00879 class H235_ClearToken : public PASN_Sequence
00880 {
00881 #ifndef PASN_LEANANDMEAN
00882     PCLASSINFO(H235_ClearToken, PASN_Sequence);
00883 #endif
00884   public:
00885     H235_ClearToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00886 
00887     enum OptionalFields {
00888       e_timeStamp,
00889       e_password,
00890       e_dhkey,
00891       e_challenge,
00892       e_random,
00893       e_certificate,
00894       e_generalID,
00895       e_nonStandard,
00896       e_eckasdhkey,
00897       e_sendersID,
00898       e_h235Key
00899     };
00900 
00901     PASN_ObjectId m_tokenOID;
00902     H235_TimeStamp m_timeStamp;
00903     H235_Password m_password;
00904     H235_DHset m_dhkey;
00905     H235_ChallengeString m_challenge;
00906     H235_RandomVal m_random;
00907     H235_TypedCertificate m_certificate;
00908     H235_Identifier m_generalID;
00909     H235_NonStandardParameter m_nonStandard;
00910     H235_ECKASDH m_eckasdhkey;
00911     H235_Identifier m_sendersID;
00912     H235_H235Key m_h235Key;
00913 
00914     PINDEX GetDataLength() const;
00915     BOOL Decode(PASN_Stream & strm);
00916     void Encode(PASN_Stream & strm) const;
00917 #ifndef PASN_NOPRINTON
00918     void PrintOn(ostream & strm) const;
00919 #endif
00920     Comparison Compare(const PObject & obj) const;
00921     PObject * Clone() const;
00922 };
00923 
00924 
00925 //
00926 // EncodedGeneralToken
00927 //
00928 
00929 class H235_EncodedGeneralToken : public PASN_OctetString
00930 {
00931 #ifndef PASN_LEANANDMEAN
00932     PCLASSINFO(H235_EncodedGeneralToken, PASN_OctetString);
00933 #endif
00934   public:
00935     H235_EncodedGeneralToken(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00936 
00937     BOOL DecodeSubType(H235_ClearToken & obj) { return PASN_OctetString::DecodeSubType(obj); }
00938     void EncodeSubType(const H235_ClearToken & obj) { PASN_OctetString::EncodeSubType(obj); } 
00939 
00940     PObject * Clone() const;
00941 };
00942 
00943 
00944 //
00945 // PwdCertToken
00946 //
00947 
00948 class H235_PwdCertToken : public H235_ClearToken
00949 {
00950 #ifndef PASN_LEANANDMEAN
00951     PCLASSINFO(H235_PwdCertToken, H235_ClearToken);
00952 #endif
00953   public:
00954     H235_PwdCertToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00955 
00956     PObject * Clone() const;
00957 };
00958 
00959 
00960 //
00961 // EncodedPwdCertToken
00962 //
00963 
00964 class H235_EncodedPwdCertToken : public PASN_OctetString
00965 {
00966 #ifndef PASN_LEANANDMEAN
00967     PCLASSINFO(H235_EncodedPwdCertToken, PASN_OctetString);
00968 #endif
00969   public:
00970     H235_EncodedPwdCertToken(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00971 
00972     BOOL DecodeSubType(H235_PwdCertToken & obj) { return PASN_OctetString::DecodeSubType(obj); }
00973     void EncodeSubType(const H235_PwdCertToken & obj) { PASN_OctetString::EncodeSubType(obj); } 
00974 
00975     PObject * Clone() const;
00976 };
00977 
00978 
00979 //
00980 // CryptoToken
00981 //
00982 
00983 class H235_CryptoToken_cryptoEncryptedToken;
00984 class H235_CryptoToken_cryptoSignedToken;
00985 class H235_CryptoToken_cryptoHashedToken;
00986 
00987 class H235_CryptoToken : public PASN_Choice
00988 {
00989 #ifndef PASN_LEANANDMEAN
00990     PCLASSINFO(H235_CryptoToken, PASN_Choice);
00991 #endif
00992   public:
00993     H235_CryptoToken(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00994 
00995     enum Choices {
00996       e_cryptoEncryptedToken,
00997       e_cryptoSignedToken,
00998       e_cryptoHashedToken,
00999       e_cryptoPwdEncr
01000     };
01001 
01002 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01003     operator H235_CryptoToken_cryptoEncryptedToken &() const;
01004 #else
01005     operator H235_CryptoToken_cryptoEncryptedToken &();
01006     operator const H235_CryptoToken_cryptoEncryptedToken &() const;
01007 #endif
01008 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01009     operator H235_CryptoToken_cryptoSignedToken &() const;
01010 #else
01011     operator H235_CryptoToken_cryptoSignedToken &();
01012     operator const H235_CryptoToken_cryptoSignedToken &() const;
01013 #endif
01014 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01015     operator H235_CryptoToken_cryptoHashedToken &() const;
01016 #else
01017     operator H235_CryptoToken_cryptoHashedToken &();
01018     operator const H235_CryptoToken_cryptoHashedToken &() const;
01019 #endif
01020 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01021     operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const;
01022 #else
01023     operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &();
01024     operator const H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const;
01025 #endif
01026 
01027     BOOL CreateObject();
01028     PObject * Clone() const;
01029 };
01030 
01031 
01032 //
01033 // CryptoToken_cryptoEncryptedToken
01034 //
01035 
01036 class H235_CryptoToken_cryptoEncryptedToken : public PASN_Sequence
01037 {
01038 #ifndef PASN_LEANANDMEAN
01039     PCLASSINFO(H235_CryptoToken_cryptoEncryptedToken, PASN_Sequence);
01040 #endif
01041   public:
01042     H235_CryptoToken_cryptoEncryptedToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01043 
01044     PASN_ObjectId m_tokenOID;
01045     H235_ENCRYPTED<H235_EncodedGeneralToken> m_token;
01046 
01047     PINDEX GetDataLength() const;
01048     BOOL Decode(PASN_Stream & strm);
01049     void Encode(PASN_Stream & strm) const;
01050 #ifndef PASN_NOPRINTON
01051     void PrintOn(ostream & strm) const;
01052 #endif
01053     Comparison Compare(const PObject & obj) const;
01054     PObject * Clone() const;
01055 };
01056 
01057 
01058 //
01059 // CryptoToken_cryptoSignedToken
01060 //
01061 
01062 class H235_CryptoToken_cryptoSignedToken : public PASN_Sequence
01063 {
01064 #ifndef PASN_LEANANDMEAN
01065     PCLASSINFO(H235_CryptoToken_cryptoSignedToken, PASN_Sequence);
01066 #endif
01067   public:
01068     H235_CryptoToken_cryptoSignedToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01069 
01070     PASN_ObjectId m_tokenOID;
01071     H235_SIGNED<H235_EncodedGeneralToken> m_token;
01072 
01073     PINDEX GetDataLength() const;
01074     BOOL Decode(PASN_Stream & strm);
01075     void Encode(PASN_Stream & strm) const;
01076 #ifndef PASN_NOPRINTON
01077     void PrintOn(ostream & strm) const;
01078 #endif
01079     Comparison Compare(const PObject & obj) const;
01080     PObject * Clone() const;
01081 };
01082 
01083 
01084 //
01085 // CryptoToken_cryptoHashedToken
01086 //
01087 
01088 class H235_CryptoToken_cryptoHashedToken : public PASN_Sequence
01089 {
01090 #ifndef PASN_LEANANDMEAN
01091     PCLASSINFO(H235_CryptoToken_cryptoHashedToken, PASN_Sequence);
01092 #endif
01093   public:
01094     H235_CryptoToken_cryptoHashedToken(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01095 
01096     PASN_ObjectId m_tokenOID;
01097     H235_ClearToken m_hashedVals;
01098     H235_HASHED<H235_EncodedGeneralToken> m_token;
01099 
01100     PINDEX GetDataLength() const;
01101     BOOL Decode(PASN_Stream & strm);
01102     void Encode(PASN_Stream & strm) const;
01103 #ifndef PASN_NOPRINTON
01104     void PrintOn(ostream & strm) const;
01105 #endif
01106     Comparison Compare(const PObject & obj) const;
01107     PObject * Clone() const;
01108 };
01109 
01110 
01111 #endif // __H235_H
01112 
01113 #endif // if ! H323_DISABLE_H235
01114 
01115 
01116 // End of h235.h

Generated on Mon Sep 25 16:19:44 2006 for OPAL by  doxygen 1.4.7