This file is indexed.

/usr/share/perl5/GnuPG/UserAttribute.pm is in libgnupg-interface-perl 0.45-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#  UserAttribute.pm
#    - providing an object-oriented approach to GnuPG user attributes
#
#  Copyright (C) 2010 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
#  (derived from UserId.pm, 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::UserAttribute;
use Any::Moose;

has [qw( validity subpacket_count subpacket_total_size )] => (
    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 }, @_;
}

__PACKAGE__->meta->make_immutable;

1;

__END__

=head1 NAME

GnuPG::UserAttribute - GnuPG User Attribute Objects

=head1 SYNOPSIS

  # assumes a GnuPG::PublicKey object in $publickey
  my $jpgs_size = $publickey->user_attributes->[0]->subpacket_total_size();

=head1 DESCRIPTION

GnuPG::UserAttribute objects are generally not instantiated on their
own, but rather as part of GnuPG::PublicKey or GnuPG::SecretKey
objects.

=head1 OBJECT METHODS

=over 4

=item new( I<%initialization_args> )

This methods creates a new object.  The optional arguments are
initialization of data members;

=back

=head1 OBJECT DATA MEMBERS

=over 4

=item validity

A scalar holding the value GnuPG reports for the calculated validity
of the binding between this User Attribute packet and its associated
primary key.  See GnuPG's DETAILS file for details.

=item subpacket_count

A scalar holding the number of attribute subpackets.  This is usually
1, as most UATs seen in the wild contain a single image in JPEG
format.

=item subpacket_total_size

A scalar holding the total byte count of all attribute subpackets.

=item signatures

A list of GnuPG::Signature objects embodying the signatures
on this user attribute.

=item revocations

A list of revocations associated with this User Attribute, stored as
GnuPG::Signature objects (since revocations are a type of
certification as well).

=back

=head1 BUGS

No useful information about the embedded attributes is provided yet.
It would be nice to be able to get ahold of the raw JPEG material.

=head1 SEE ALSO

L<GnuPG::Signature>,

=cut