AnyEvent-MSN
view release on metacpan or search on metacpan
perl => '5.012',
AnyEvent => '5.31',
'AnyEvent::HTTP' => '2.1',
'MIME::Base64' => '3.13',
'Moose' => '2.0002',
'Try::Tiny' => '0.09',
'XML::Twig' => '3.38',
'Digest::HMAC' => '1.02',
'Digest::SHA' => '5.61',
'Digest::MD5' => '2.51',
'Crypt::CBC' => '2.30',
'Crypt::DES' => '2.05',
'Crypt::DES_EDE3' => '0.01'
},
recursive_test_files => 1,
meta_merge => {
keywords => [qw[MSN client MSNP21 IM instant message Windows Live Messenger WLM]],
resources => {
bugtracker => 'http://github.com/sanko/anyevent-msn/issues',
repository => 'http://github.com/sanko/anyevent-msn/',
ChangeLog => 'http://github.com/sanko/anyevent-msn/commits',
},
"configure" : {
"requires" : {
"Module::Build" : "0.38"
}
},
"runtime" : {
"requires" : {
"AnyEvent" : "5.31",
"AnyEvent::HTTP" : "2.1",
"Crypt::CBC" : "2.30",
"Crypt::DES" : "2.05",
"Crypt::DES_EDE3" : "0.01",
"Digest::HMAC" : "1.02",
"Digest::MD5" : "2.51",
"Digest::SHA" : "5.61",
"MIME::Base64" : "3.13",
"Moose" : "2.0002",
"Try::Tiny" : "0.09",
"XML::Twig" : "3.38",
"perl" : "5.012"
version: 0.002
AnyEvent::MSN::Protocol:
file: lib/AnyEvent/MSN/Protocol.pm
version: 0.002
AnyEvent::MSN::Types:
file: lib/AnyEvent/MSN/Types.pm
version: 0.002
requires:
AnyEvent: 5.31
AnyEvent::HTTP: 2.1
Crypt::CBC: 2.30
Crypt::DES: 2.05
Crypt::DES_EDE3: 0.01
Digest::HMAC: 1.02
Digest::MD5: 2.51
Digest::SHA: 5.61
MIME::Base64: 3.13
Moose: 2.0002
Try::Tiny: 0.09
XML::Twig: 3.38
perl: 5.012
lib/AnyEvent/MSN/Protocol.pm view on Meta::CPAN
package AnyEvent::MSN::Protocol;
{ $AnyEvent::MSN::Protocol::VERSION = 0.002 }
use 5.012;
use AnyEvent;
use MIME::Base64 qw[];
use Digest::HMAC qw[hmac];
use Digest::SHA qw[];
use Digest::MD5 qw[];
use Crypt::CBC qw[];
sub anyevent_read_type {
my ($handle, $s) = @_;
sub {
return if !length $handle->{rbuf};
$handle->{rbuf} =~ s[^([^\015\012]*)\015?\012][] or return;
my $line = $1;
AnyEvent::MSN::DEBUG() && warn 'I: ' . $line;
$s->(split qr[\s+], $line); # my ($cmd, $tid, @data)
$handle->push_read(__PACKAGE__, $s); # Re-queue
lib/AnyEvent/MSN/Protocol.pm view on Meta::CPAN
my $key2 = derive_key($key1, 'HASH');
my $key3 = derive_key($key1, 'ENCRYPTION');
# 3. hash
my $hash = Digest::HMAC::hmac($nonce, $key2, \&Digest::SHA::sha1);
# 4. Pad nonce with 8 bytes of \08
my $p_nonce = $nonce . (chr(8) x 8);
# 5. Create 8 bytes of random data as iv
$iv //= Crypt::CBC->random_bytes(8);
# 6. TripleDES CBC encryption
my $encrypted_data =
Crypt::CBC->new(-literal_key => 1,
-key => $key3,
-iv => $iv,
-header => 'none',
-cipher => 'Crypt::DES_EDE3'
)->encrypt($p_nonce);
# 7. Fill in the struct
my $struct = pack 'I7 A8 A20 A72', 28, 1, 0x6603, 0x8004, 8, 20, 72,
$iv,
$hash, $encrypted_data;
( run in 0.806 second using v1.01-cache-2.11-cpan-e1769b4cff6 )