profile

package
v3.0.0-alpha.2-proton Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package profile provides different profiles to run GopenPGP.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PresetProfiles

func PresetProfiles() []string

PresetProfiles returns the names of the available profiles.

Types

type Custom

type Custom struct {
	// Name defines the name of the custom profile.
	Name string
	// SetKeyAlgorithm is a function that sets public key encryption
	// algorithm in the config bases on the int8 security level.
	SetKeyAlgorithm func(*packet.Config, int8)
	// AeadKeyEncryption defines the aead encryption algorithm for key encryption.
	AeadKeyEncryption *packet.AEADConfig
	// S2kKeyEncryption defines the s2k algorithm for key encryption.
	S2kKeyEncryption *s2k.Config
	// AeadEncryption defines the aead encryption algorithm for pgp encryption.
	AeadEncryption *packet.AEADConfig
	// S2kEncryption defines the s2k algorithm for pgp encryption.
	S2kEncryption *s2k.Config
	// CompressionConfiguration defines the compression configuration to be used if any.
	CompressionConfiguration *packet.CompressionConfig
	// Hash defines hash algorithm to be used.
	Hash crypto.Hash
	// SignHash defines if a different hash algorithm should be used for signing.
	// If nil, the a above field Hash is used.
	SignHash *crypto.Hash
	// CipherKeyEncryption defines the cipher to be used for key encryption.
	CipherKeyEncryption packet.CipherFunction
	// CipherEncryption defines the cipher to be used for pgp message encryption.
	CipherEncryption packet.CipherFunction
	// CompressionAlgorithm defines the compression algorithm to be used if any.
	CompressionAlgorithm packet.CompressionAlgo
	// V6 is a flag to indicate if v6 from the crypto-refresh should be used.
	V6 bool
	// AllowAllPublicKeyAlgorithms is a flag to disable all checks for deprecated public key algorithms.
	AllowAllPublicKeyAlgorithms bool
	// DisableIntendedRecipients is a flag to disable the intended recipients pgp feature from the crypto-refresh.
	DisableIntendedRecipients bool
	// AllowWeakRSA is a flag to disable checks for weak rsa keys.
	AllowWeakRSA bool
}

Custom type represents a profile for setting algorithm parameters for generating keys, encrypting data, and signing data. Use one of the pre-defined profiles if possible. i.e., profile.Default(), profile.RFC4880().

func CryptoRefresh

func CryptoRefresh() *Custom

CryptoRefresh returns a custom profile for this library that conforms with the algorithms in draft-ietf-openpgp-crypto-refresh.

func Default

func Default() *Custom

Default returns a custom profile that support features that are widely implemented.

func GnuPG

func GnuPG() *Custom

GnuPG returns a custom profile for this library that conforms with the algorithms in GnuPG. Use this profile for modern algorithms and GnuPG interoperability.

func ProtonV1

func ProtonV1() *Custom

ProtonV1 is the version 1 profile used in proton clients.

func RFC4880

func RFC4880() *Custom

RFC4880 returns a custom profile for this library that conforms with the algorithms in rfc 4880.

func WithName

func WithName(name string) *Custom

WithName returns the custom profile with the given name.

func (*Custom) CompressionConfig

func (p *Custom) CompressionConfig() *packet.Config

func (*Custom) EncryptionConfig

func (p *Custom) EncryptionConfig() *packet.Config

func (*Custom) KeyEncryptionConfig

func (p *Custom) KeyEncryptionConfig() *packet.Config

func (*Custom) KeyGenerationConfig

func (p *Custom) KeyGenerationConfig(securityLevel int8) *packet.Config

func (*Custom) SignConfig

func (p *Custom) SignConfig() *packet.Config

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL