Table of Contents

Class GnuPG

Namespace
ZeroInstall.Store.Trust
Assembly
ZeroInstall.Store.dll

Provides access to the signature functions of GnuPG.

public class GnuPG : IOpenPgp
Inheritance
GnuPG
Implements
Inherited Members
Extension Methods

Constructors

GnuPG(string)

Provides access to the signature functions of GnuPG.

public GnuPG(string homeDir)

Parameters

homeDir string

The GnuPG home dir to use.

Methods

ExportKey(IKeyIDContainer)

Exports the public key for a specific key in the keyring.

public string ExportKey(IKeyIDContainer keyIDContainer)

Parameters

keyIDContainer IKeyIDContainer

An object containing the key ID of the public key to export.

Returns

string

The public key in ASCII Armored format. Always uses Unix-style linebreaks.

Exceptions

KeyNotFoundException

The specified keyIDContainer could not be found in the keyring.

GenerateKey()

Launches an interactive process for generating a new keypair.

public static Process GenerateKey()

Returns

Process

A handle that can be used to wait for the process to finish.

Exceptions

IOException

The OpenPGP implementation could not be launched.

ImportKey(ArraySegment<byte>)

Imports a public key into the keyring.

public void ImportKey(ArraySegment<byte> data)

Parameters

data ArraySegment<byte>

The public key in binary or ASCII Armored format.

Exceptions

InvalidDataException

data does not contain a valid public key.

ListSecretKeys()

Returns a list of secret keys in the keyring.

public IEnumerable<OpenPgpSecretKey> ListSecretKeys()

Returns

IEnumerable<OpenPgpSecretKey>

Sign(ArraySegment<byte>, OpenPgpSecretKey, string?)

Creates a detached OpenPGP signature using a specific secret key.

public byte[] Sign(ArraySegment<byte> data, OpenPgpSecretKey secretKey, string? passphrase = null)

Parameters

data ArraySegment<byte>

The data to sign.

secretKey OpenPgpSecretKey

The secret key to use for signing.

passphrase string

The passphrase to use to unlock the secret key.

Returns

byte[]

The signature in binary format.

Exceptions

KeyNotFoundException

The specified secretKey could not be found in the keyring.

WrongPassphraseException

passphrase was incorrect.

Verify(ArraySegment<byte>, byte[])

Verifies a detached OpenPGP signature.

public IEnumerable<OpenPgpSignature> Verify(ArraySegment<byte> data, byte[] signature)

Parameters

data ArraySegment<byte>

The data the signature is for.

signature byte[]

The signature in binary format.

Returns

IEnumerable<OpenPgpSignature>

A list of signatures found, both valid and invalid. MissingKeySignature results indicate you need to use ImportKey(ArraySegment<byte>).

Exceptions

SignatureException

signature does not contain syntactically correct signature data.