-----BEGIN PGP SIGNED MESSAGE-----
Hello,
I'm working on a project related with the use of X.500 Directory
Services to divulge PGP's public keys.
The project intended to use the tools and objects defined by
OSISEC (an implementation of X.509), as a step towards the
key standardization of all "e-mail secure" applications, like PEM and
PGP. In another words, providing the same pair of keys (private&public)
for different applications.
After the study of both PGP and OSISEC application, it came apparent
that the information defined in object "Certificate", which is
the strut definition of the OSISEC's defined attribute "userCertificate",
wasn't enough to represent the PGP's public key information.
The problem lies on the need to produce an application that doesn't
changes in any way PGP's code sources, leaving us with the possibility
of deliver a PGP's public to the ".pubring" file throw the use of a
"key insert" command which uses a file containing information related packets.
In order to, build this packet, i had to define another attribute call
"userPgpPublickey", which belongs to an objectClass defined as "userPgp".
I would like you to consider my object definition, and, if it isn't too
much bother, make some comments about the definition, the approach to
the problem and where should my objectClass belong.
For that matter, follows next my class definition, and an example of a
PGP public key file packet.
Thanks in advance for the time!
Vitor Fernandes <vitor(_at_)uminho(_dot_)pt>
P.S.This approach was decided before looking at the new X.509
Certificate syntax defined in X.500-93.
- ------------------------------------------------------------------
"userPgpPublicKey" ASN SYNTAX
- ------------------------------------------------------------------
PgpKey DEFINITIONS::=
BEGIN
- --EXPORTS
- -- PgpKey
PgpKeyBlock
::= SEQUENCE
{
userid GeneralString ,
version INTEGER,
public-key PublicPgpKey,
signatures PgpCertificates
}
PublicPgpKey
::= CHOICE
{
whereiskey INTEGER { inUserCertificate (0) },
hereiskey SEQUENCE {
mod-n-bits [0] INTEGER,
module [1] BIT STRING ,
exp-n-bits [2] INTEGER,
exponent [3] BIT STRING,
key-scheme [4] OBJECT IDENTIFIER ,
timestamp [5] INTEGER ,
validity-period [6] INTEGER
}
}
PgpCertificates
::= SET OF SEQUENCE
{
packet-signature [0] BIT STRING,
issuer-key-id [1] BIT STRING
}
END
- -----------------------------------------------------------------
- -----------------------------------------------------------------
Example of PGP public key extract file
- -----------------------------------------------------------------
Tamanho do ficheiro = 331
******************************************
CTB: Pacote do tipo Public Key Certificate com 141 bytes
******************************************
Versao 2
Timestamp da criacao da chave= 0x2C9A4DBA
Validity period (dias) = 0
Public Key scheme (RSA=1): 1
Tamanho do Modulo (bits) = 1024 (128 bytes)
Modulo (hex):
BDC33A2CF281CC407BA3B27DCB8C661D979F27EA98B2850C0A17D3F149E3E7767EBC3CE5
3B9773F939A9F0D68BE01009D25A3554FC8E583A6D2D070F9E602E857E6FA559C732291D
62AA5E7700F62B9D7D9991AEDC7812CF369FCA5306DC5AEEF7103E10977E37E5FA538CAC
80A446E0FFC41FFD5F5FD745B67B0BE00778338D
Tamanho do expoente (bits) = 5 (1 bytes)
Expoente (hex):
11
******************************************
CTB: Pacote do tipo User ID com 33 bytes
******************************************
User ID : Philip L. Dubois <dubois(_at_)csn(_dot_)org>
******************************************
CTB: Pacote do tipo Signature com 149 bytes
******************************************
Versao 2
Tamanho de material para calculacoes MD5: 5
Tipo de assinatura: 16
Timestamp (hex) = 0x2CC384F1
keyID (hex) = 657984B8C7A966DD
Public Key scheme (RSA=1): 1
Algorithm for Message Digest (MD5=1) = 1
Inicio de MD (hex): 3D0E
Tamanho da Message Digest (bits) = 1023 (128 bytes)
Message Digest (hex):
48A020592C5A45F65855D7E7A9062E3D8729221DE7D1750C1B1E62DAF643B482E7A9764C
858BC92A24B12A3C4508AD1B626551E238B2F091346B14757BABD940B844C930320389F7
95D4EFD31958CC88814628EB8D773072CA2763A9D94F16D3D9B456F37DF8BD0689936FC3
B7C66D9C0689B1C6AB15F365371C37405DA6395F
-----BEGIN PGP SIGNATURE-----
Version: 2.6.1
iQBVAwUBLtyM8sBpOgA3+BsRAQGMbAH6AnqspCSVXUj6gsHHrMJI+xe0Fa0vG3Bu
V/A8E1U7WveVLLWCwoput9AEEX0gMLm9nAaBIoSQrZbJvXeKPWo3fw==
=AHt4
-----END PGP SIGNATURE-----