rpm 4.19.1.1
The RPM Package Manager
Loading...
Searching...
No Matches
pgpPktPubkey_s Struct Reference

#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.

Field Documentation

◆ algo

uint8_t pgpPktPubkey_s::algo

public key algorithm used.

◆ keyid

pgpKeyID_t pgpPktPubkey_s::keyid

key ID of the public key for session key.

◆ version

uint8_t pgpPktPubkey_s::version

version number (generate 3, accept 2).


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