One Hat Cyber Team
Your IP :
172.16.0.254
Server IP :
58.26.163.33
Server :
Windows NT DGPENSV2LPKMN 10.0 build 14393 (Windows Server 2016) AMD64
Server Software :
Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/7.3.25
PHP Version :
7.3.25
Buat File
|
Buat Folder
Eksekusi
Dir :
C:
/
xampp7
/
perl
/
vendor
/
lib
/
Crypt
/
RSA
/
View File Name :
Errorhandler.pm
package Crypt::RSA::Errorhandler; use strict; use warnings; ## Crypt::RSA::Errorhandler -- Base class that provides error ## handling functionality. ## ## Copyright (c) 2001, Vipul Ved Prakash. All rights reserved. ## This code is free software; you can redistribute it and/or modify ## it under the same terms as Perl itself. sub new { bless {}, shift } sub error { my ($self, $errstr, @towipe) = @_; $$self{errstr} = "$errstr\n"; for (@towipe) { my $var = $_; if (ref($var) =~ /Crypt::RSA/) { $var->DESTROY(); } elsif (ref($var) eq "SCALAR") { $$var = ""; } elsif (ref($var) eq "ARRAY") { @$var = (); } elsif (ref($var) eq "HASH") { %$var = (); } } return; } sub errstr { my $self = shift; return $$self{errstr}; } sub errstrrst { my $self = shift; $$self{errstr} = ""; } 1; =head1 NAME Crypt::RSA::Errorhandler - Error handling mechanism for Crypt::RSA. =head1 SYNOPSIS package Foo; use Crypt::RSA::Errorhandler; @ISA = qw(Crypt::RSA::Errorhandler); sub alive { .. .. return $self->error ("Awake, awake! Ring the alarum bell. \ Murther and treason!", $dagger) if $self->murdered($king); } package main; use Foo; my $foo = new Foo; $foo->alive($king) or print $foo->errstr(); # prints "Awake, awake! ... " =head1 DESCRIPTION Crypt::RSA::Errorhandler encapsulates the error handling mechanism used by the modules in Crypt::RSA bundle. Crypt::RSA::Errorhandler doesn't have a constructor and is meant to be inherited. The derived modules use its two methods, error() and errstr(), to communicate error messages to the caller. When a method of the derived module fails, it calls $self->error() and returns undef to the caller. The error message passed to error() is made available to the caller through the errstr() accessor. error() also accepts a list of sensitive data that it wipes out (undef'es) before returning. The caller should B<never> call errstr() to check for errors. errstr() should be called only when a method indicates (usually through an undef return value) that an error has occurred. This is because errstr() is never overwritten and will always contain a value after the occurence of first error. =head1 METHODS =over 4 =item B<new()> Barebones constructor. =item B<error($mesage, ($wipeme, $wipemetoo))> The first argument to error() is $message which is placed in $self- >{errstr} and the remaining arguments are interpreted as variables containing sensitive data that are wiped out from the memory. error() always returns undef. =item B<errstr()> errstr() is an accessor method for $self->{errstr}. =item B<errstrrst()> This method sets $self->{errstr} to an empty string. =back =head1 AUTHOR Vipul Ved Prakash, E<lt>mail@vipul.netE<gt> =head1 SEE ALSO Crypt::RSA(3) =cut