| GnuPG-Interface documentation | Contained in the GnuPG-Interface distribution. |
GnuPG::UserId - GnuPG User ID Objects
# assumes a GnuPG::PublicKey object in $publickey my $user_id = $publickey->user_ids_ref->[0]->as_string;
GnuPG::UserId objects are generally not instantiated on their own, but rather as part of GnuPG::PublicKey or GnuPG::SecretKey objects.
This methods creates a new object. The optional arguments are initialization of data members;
Returns non-zero only when this User ID is identical to the other GnuPG::UserID. If $deep is present and non-zero, the User ID's signatures and revocations will also be compared.
A string of the user id.
A scalar holding the value GnuPG reports for the trust of authenticity (a.k.a.) validity of a key. See GnuPG's DETAILS file for details.
A list of GnuPG::Signature objects embodying the signatures on this user id.
A list of revocations associated with this User ID, stored as GnuPG::Signature objects (since revocations are a type of certification as well).
| GnuPG-Interface documentation | Contained in the GnuPG-Interface distribution. |
# UserId.pm # - providing an object-oriented approach to GnuPG user ids # # Copyright (C) 2000 Frank J. Tobin <ftobin@cpan.org> # # This module is free software; you can redistribute it and/or modify it # under the same terms as Perl itself. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # $Id: UserId.pm,v 1.7 2001/08/21 13:31:50 ftobin Exp $ # package GnuPG::UserId; use Any::Moose; has [qw( validity as_string )] => ( isa => 'Any', is => 'rw', ); has signatures => ( isa => 'ArrayRef', is => 'rw', default => sub { [] }, ); has revocations => ( isa => 'ArrayRef', is => 'rw', default => sub { [] }, ); sub push_signatures { my $self = shift; push @{ $self->signatures }, @_; } sub push_revocations { my $self = shift; push @{ $self->revocations }, @_; } sub compare { my ( $self, $other, $deep ) = @_; my @comparison_ints = qw( validity as_string ); foreach my $field ( @comparison_ints ) { return 0 unless $self->$field() eq $other->$field(); } return 0 unless @{$self->signatures} == @{$other->signatures}; return 0 unless @{$self->revocations} == @{$other->revocations}; # FIXME: is it actually wrong if the associated signatures come out # in a different order on the two compared designated revokers? if (defined $deep && $deep) { for ( my $i = 0; $i < scalar(@{$self->signatures}); $i++ ) { return 0 unless $self->signatures->[$i]->compare($other->signatures->[$i], 1); } for ( my $i = 0; $i < scalar(@{$self->revocations}); $i++ ) { return 0 unless $self->revocations->[$i]->compare($other->revocations->[$i], 1); } } return 1; } # DEPRECATED sub user_id_string { my ( $self, $v ) = @_; $self->as_string($v) if defined $v; return $self->as_string(); } __PACKAGE__->meta->make_immutable; 1; __END__