Class: SecretKeyPacket

SecretKeyPacket(dateopt, configopt)

A Secret-Key packet contains all the information that is found in a Public-Key packet, including the public-key material, but also includes the secret-key material after all the public-key fields.

Constructor

new SecretKeyPacket(dateopt, configopt)

Parameters:
Name Type Attributes Description
date Date <optional>

Creation date

config Object <optional>

Full configuration, defaults to openpgp.config

Source:

Extends

Members

aead :enums.aead

AEAD algorithm to encrypt the key with (if AEAD protection is enabled)

Type:
  • enums.aead
Source:

algorithm :enums.publicKey

Public key algorithm.

Type:
  • enums.publicKey
Overrides:
Source:

created :Date

Key creation date.

Type:
  • Date
Overrides:
Source:

expirationTimeV3 :Integer

Time until expiration in days (V3 only)

Type:
  • Integer
Overrides:
Source:

fingerprint :Uint8Array

Fingerprint bytes

Type:
  • Uint8Array
Overrides:
Source:

isEncrypted

Indicates whether secret-key data is encrypted. this.isEncrypted === false means data is available in decrypted form.

Source:

keyID :module:type/keyid~KeyID

KeyID

Type:
Overrides:
Source:

keyMaterial

Secret-key data

Source:

privateParams :Object

Decrypted private parameters, referenced by name

Type:
  • Object
Source:

publicParams :Object

Algorithm specific public params

Type:
  • Object
Overrides:
Source:

readPublicKey

Alias of read()

Overrides:
Source:
See:

s2k :type/s2k

S2K object

Type:
  • type/s2k
Source:

s2kUsage :enums.symmetric

S2K usage

Type:
  • enums.symmetric
Source:

symmetric :enums.symmetric

Symmetric algorithm to encrypt the key with

Type:
  • enums.symmetric
Source:

version :Integer

Packet version

Type:
  • Integer
Overrides:
Source:

writePublicKey

Alias of write()

Overrides:
Source:
See:

Methods

clearPrivateParams()

Clear private key parameters

Source:

(async) computeFingerprint()

Computes and set the fingerprint of the key

Overrides:
Source:

(async) computeFingerprintAndKeyID()

Computes and set the key ID and fingerprint of the key

Overrides:
Source:

(async) decrypt(passphrase)

Decrypts the private key params which are needed to use the key. Successful decryption does not imply key integrity, call validate() to confirm that. SecretKeyPacket.isDecrypted should be false, as otherwise calls to this function will throw an error.

Parameters:
Name Type Description
passphrase String

The passphrase for this private key as string

Source:
Throws:

if the key is already decrypted, or if decryption was not successful

Type
Error

(async) encrypt(passphrase, configopt)

Encrypt the payload. By default, we use aes256 and iterated, salted string to key specifier. If the key is in a decrypted state (isEncrypted === false) and the passphrase is empty or undefined, the key will be set as not encrypted. This can be used to remove passphrase protection after calling decrypt().

Parameters:
Name Type Attributes Description
passphrase String
config Object <optional>

Full configuration, defaults to openpgp.config

Source:
Throws:

if encryption was not successful

Type
Error

getAlgorithmInfo() → {Object}

Returns algorithm information

Overrides:
Source:
Returns:

An object of the form {algorithm: String, bits:int, curve:String}.

Type
Object

getCreationTime() → {Date}

Returns the creation time of the key

Overrides:
Source:
Returns:
Type
Date

getFingerprint() → {String}

Calculates and returns the fingerprint of the key, as a string

Overrides:
Source:
Returns:

A string containing the fingerprint in lowercase hex

Type
String

getFingerprintBytes() → {Uint8Array}

Returns the fingerprint of the key, as an array of bytes

Overrides:
Source:
Returns:

A Uint8Array containing the fingerprint

Type
Uint8Array

getKeyID() → {module:type/keyid~KeyID}

Return the key ID of the key

Overrides:
Source:
Returns:

The 8-byte key ID

Type
module:type/keyid~KeyID

hasSameFingerprintAs() → {Boolean}

Calculates whether two keys have the same fingerprint without actually calculating the fingerprint

Overrides:
Source:
Returns:

Whether the two keys have the same version and public key data.

Type
Boolean

isDecrypted() → {Boolean|null}

Check whether secret-key data is available in decrypted form. Returns false for gnu-dummy keys and null for public keys.

Overrides:
Source:
Returns:
Type
Boolean | null

isDummy() → {Boolean}

Check whether this is a gnu-dummy key

Source:
Returns:
Type
Boolean

isMissingSecretKeyMaterial()

Check whether the key includes secret key material. Some secret keys do not include it, and can thus only be used for public-key operations (encryption and verification). Such keys are:

  • GNU-dummy keys, where the secret material has been stripped away
  • encrypted keys with unsupported S2K or cipher
Source:

makeDummy(configopt)

Remove private key material, converting the key to a dummy one. The resulting key cannot be used for signing/decrypting but can still verify signatures.

Parameters:
Name Type Attributes Description
config Object <optional>

Full configuration, defaults to openpgp.config

Source:

(async) read(bytes)

Internal parser for private keys as specified in RFC4880bis-04 section 5.5.3

Parameters:
Name Type Description
bytes Uint8Array

Input string to read the packet from

Overrides:
Source:

(async) validate()

Checks that the key parameters are consistent

Source:
Throws:

if validation was not successful

Type
Error

write() → {Uint8Array}

Creates an OpenPGP key packet for the given key.

Overrides:
Source:
Returns:

A string of bytes containing the secret key OpenPGP packet.

Type
Uint8Array

writeForHash(version)

Write packet in order to be hashed; either for a signature or a fingerprint

Parameters:
Name Type Description
version Integer

target version of signature or key

Overrides:
Source: