DCE-Perl-RPC
view release on metacpan or search on metacpan
lib/DCE/Perl/RPC.pm view on Meta::CPAN
# -*- perl -*-
# RPC.pm - An implementation of a DCE RPC Composer/Parser. It is expected
# to cover all the connection oriented PDUs.
# implemented the client side functions that calculates the NTLM response.
# I will add the corresponding server side functions in the next version.
#
package DCE::Perl::RPC;
use strict;
use Carp;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
require Exporter;
require DynaLoader;
*import = \&Exporter::import;
@ISA = qw (Exporter DynaLoader);
@EXPORT = qw ();
@EXPORT_OK = qw ();
$VERSION = '0.01';
# Stolen from Crypt::DES.
sub usage {
my ($package, $filename, $line, $subr) = caller (1);
$Carp::CarpLevel = 2;
croak "Usage: $subr (@_)";
}
# DCE RPC PDU Types
use constant RPC_REQUEST => 0x00;
use constant RPC_PING => 0x01;
use constant RPC_RESPONSE => 0x02;
use constant RPC_FAULT => 0x03;
use constant RPC_WORKING => 0x04;
use constant RPC_NOCALL => 0x05;
use constant RPC_REJECT => 0x06;
use constant RPC_ACK => 0x07;
use constant RPC_CL_CANCEL => 0x08;
use constant RPC_FACK => 0x09;
use constant RPC_CANCEL_ACK => 0x0a;
use constant RPC_BIND => 0x0b;
use constant RPC_BIND_ACK => 0x0c;
use constant RPC_BIND_NACK => 0x0d;
use constant RPC_ALTER_CONTEXT => 0x0e;
use constant RPC_ALTER_CONTEXT_RESP => 0x0f;
use constant RPC_BIND_RESP => 0x10;
use constant RPC_SHUTDOWN => 0x11;
use constant RPC_CO_CANCEL => 0x12;
# DCE RPC PFC Flags
# First Fragment
use constant PFC_FIRST_FRAG => 0x01;
# Last Fragment
use constant PFC_LAST_FRAG => 0x02;
# Cancel was pending at sender
use constant PFC_PENDING_CANCEL => 0x04;
# Reserved
use constant PFC_RESERVED_1 => 0x08;
# supports concurrent multiplexing of a single connection
use constant PFC_CONC_MPX => 0x10;
# only meaningful on 'fault' packet; if true, guaranteed call
# did not execute
use constant PFC_DID_NOT_EXECUTE => 0x20;
# 'maybe' call semantics requested
use constant PFC_MAYBE => 0x40;
# if true, a non-nul object UUID was specified in the handle,
# and is present in the optional object field. If false, the
# object field is omitted.
use constant PFC_OBJECT_UUID => 0x80;
use constant RPC_MAJOR_VERSION => 5;
use constant RPC_MINOR_VERSION => 0;
# Connection Oriented PDU common header size
use constant RPC_CO_HDR_SZ => 16;
# Fragment Size
use constant RPC_FRAG_SZ => 5840;
use constant RPC_AUTH_NTLM => 0x0a;
use constant RPC_AUTH_LEVEL_CONNECT => 0x02;
( run in 3.471 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )