Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

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 Sat Jul 24 17:03:12 2004 for OpenH323 by doxygen 1.3.7