# pgpPktPubkey_s Struct Reference
[OpenPGP API.]

5.1. More...

`#include <rpmpgp.h>`

## Data Fields
uint8_t | version
pgpKeyID_t | keyid
uint8_t | algo

## Detailed Description

5.1.

Public-Key Encrypted Session Key Packets (Tag 1)

A Public-Key Encrypted Session Key packet holds the session key used to encrypt a message. Zero or more Encrypted Session Key packets (either Public-Key or Symmetric-Key) may precede a Symmetrically Encrypted Data Packet, which holds an encrypted message. The message is encrypted with the session key, and the session key is itself encrypted and stored in the Encrypted Session Key packet(s). The Symmetrically Encrypted Data Packet is preceded by one Public-Key Encrypted Session Key packet for each OpenPGP key to which the message is encrypted. The recipient of the message finds a session key that is encrypted to their public key, decrypts the session key, and then uses the session key to decrypt the message.

The body of this packet consists of:

- A one-octet number giving the version number of the packet type. The currently defined value for packet version is 3. An implementation should accept, but not generate a version of 2, which is equivalent to V3 in all other respects.
- An eight-octet number that gives the key ID of the public key that the session key is encrypted to.
- A one-octet number giving the public key algorithm used.
- A string of octets that is the encrypted session key. This string takes up the remainder of the packet, and its contents are dependent on the public key algorithm used.

Algorithm Specific Fields for RSA encryption

- multiprecision integer (MPI) of RSA encrypted value m**e mod n.

Algorithm Specific Fields for Elgamal encryption:

- MPI of Elgamal (Diffie-Hellman) value g**k mod p.
- MPI of Elgamal (Diffie-Hellman) value m * y**k mod p.

Definition at line 112 of file rpmpgp.h.

## Field Documentation

uint8_t pgpPktPubkey_s::algo

public key algorithm used.

Definition at line 115 of file rpmpgp.h.

pgpKeyID_t pgpPktPubkey_s::keyid

key ID of the public key for session key.

Definition at line 114 of file rpmpgp.h.

uint8_t pgpPktPubkey_s::version

version number (generate 3, accept 2).

Definition at line 113 of file rpmpgp.h.

The documentation for this struct was generated from the following file:

- rpmpgp.h