#include <dce_rpc_pac.h>
Collaboration diagram for BinPAC::DCE_RPC_Auth:

Public Member Functions | |
| DCE_RPC_Auth (DCE_RPC_Header *arg_header) | |
| ~DCE_RPC_Auth () | |
| int | parse (const uint8 *const t_begin_of_data, const uint8 *const t_end_of_data, int t_byteorder) |
| DCE_RPC_Header *const | header () const |
| int | val_case_index () const |
| array< uint8 > const & | auth_verifier () const |
Protected Attributes | |
| DCE_RPC_Header * | header_ |
| int | val_case_index_ |
| union { | |
| array< uint8 > auth_verifier_ | |
| } | val_ |
|
|
Definition at line 648 of file dce_rpc_pac.cc. References header_, and val_case_index_.
00649 {
00650 header_ = arg_header;
00651 val_case_index_ = -1;
00652 }
|
|
|
Definition at line 654 of file dce_rpc_pac.cc. References BinPAC::delete_array(), val_, and val_case_index().
00655 {
00656 switch ( val_case_index() )
00657 {
00658 case 0:
00659 // Clean up "none"
00660 {
00661 }
00662 break;
00663 default:
00664 // Clean up "auth_verifier"
00665 {
00666 delete_array(val_.auth_verifier_);
00667 }
00668 break;
00669 }
00670 }
|
|
|
Definition at line 334 of file dce_rpc_pac.h. References val_.
00335 {
00336 return val_.auth_verifier_;
00337 }
|
|
|
Definition at line 332 of file dce_rpc_pac.h. References header_. Referenced by parse().
00332 { return header_; };
|
|
||||||||||||||||
|
Definition at line 672 of file dce_rpc_pac.cc. References BinPAC::DCE_RPC_Header::auth_length(), header(), BinPAC::uint8, val_, val_case_index(), and val_case_index_. Referenced by BinPAC::DCE_RPC_PDU::parse().
00673 {
00674 int t_val__size;
00675 val_case_index_ = header()->auth_length();
00676 switch ( val_case_index() )
00677 {
00678 case 0:
00679 // Parse "none"
00680 {
00681 // Checking out-of-bound for "DCE_RPC_Auth:none"
00682 if ( t_begin_of_data + (0) > t_end_of_data )
00683 {
00684 // Handle out-of-bound condition
00685 throw ExceptionOutOfBound("DCE_RPC_Auth:none",
00686 (0) + (0),
00687 (t_end_of_data) - (t_begin_of_data));
00688 }
00689 t_val__size = 0;
00690 }
00691 break;
00692 default:
00693 // Parse "auth_verifier"
00694 {
00695 int t_auth_verifier__arraylength = header()->auth_length();
00696 int t_auth_verifier__size = 1 * t_auth_verifier__arraylength;
00697 // Checking out-of-bound for "DCE_RPC_Auth:auth_verifier"
00698 if ( t_begin_of_data + (t_auth_verifier__size) > t_end_of_data )
00699 {
00700 // Handle out-of-bound condition
00701 throw ExceptionOutOfBound("DCE_RPC_Auth:auth_verifier",
00702 (0) + (t_auth_verifier__size),
00703 (t_end_of_data) - (t_begin_of_data));
00704 }
00705 make_array<uint8>(val_.auth_verifier_, t_auth_verifier__arraylength);
00706 const uint8* t_auth_verifier__elem__data = t_begin_of_data;
00707 for ( int t_auth_verifier__elem__it = 0;
00708 t_auth_verifier__elem__it < t_auth_verifier__arraylength;
00709 ++t_auth_verifier__elem__it )
00710 {
00711 uint8 t_auth_verifier__elem;
00712 t_auth_verifier__elem = *((uint8 *) (t_auth_verifier__elem__data));
00713 val_.auth_verifier_.v[t_auth_verifier__elem__it] = t_auth_verifier__elem;
00714 t_auth_verifier__elem__data += 1;
00715 }
00716 t_val__size = t_auth_verifier__size;
00717 }
00718 break;
00719 }
00720 return t_val__size;
00721 }
|
|
|
Definition at line 333 of file dce_rpc_pac.h. References val_case_index_. Referenced by parse(), and ~DCE_RPC_Auth().
00333 { return val_case_index_; }
|
|
|
Definition at line 343 of file dce_rpc_pac.h. |
|
|
Definition at line 340 of file dce_rpc_pac.h. Referenced by DCE_RPC_Auth(), and header(). |
|
|
Referenced by auth_verifier(), parse(), and ~DCE_RPC_Auth(). |
|
|
Definition at line 341 of file dce_rpc_pac.h. Referenced by DCE_RPC_Auth(), parse(), and val_case_index(). |
1.3.5