rsa

package
v0.2.0-alpha Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// KeyFileFlag is the flag of key file.
	KeyFileFlag = os.O_CREATE | os.O_APPEND | os.O_WRONLY

	// KeyFileMode is the mode of key file.
	KeyFileMode os.FileMode = 0644
)

Functions

func PKCS1PrivateKeyDecoder

func PKCS1PrivateKeyDecoder(privateKeyPem cryptox.Bytes) (*rsa.PrivateKey, error)

PKCS1PrivateKeyDecoder decodes private key from data using pkcs1.

func PKCS1PrivateKeyEncoder

func PKCS1PrivateKeyEncoder(key *rsa.PrivateKey) (cryptox.Bytes, error)

PKCS1PrivateKeyEncoder encodes private key to bytes using pkcs1.

func PKCS1PublicKeyDecoder

func PKCS1PublicKeyDecoder(publicKeyPem cryptox.Bytes) (*rsa.PublicKey, error)

PKCS1PublicKeyDecoder encodes public key to bytes using pkcs1.

func PKCS1PublicKeyEncoder

func PKCS1PublicKeyEncoder(key *rsa.PublicKey) (cryptox.Bytes, error)

PKCS1PublicKeyEncoder encodes public key to bytes using pkcs1.

func PKCS8PrivateKeyDecoder

func PKCS8PrivateKeyDecoder(privateKeyPem cryptox.Bytes) (*rsa.PrivateKey, error)

PKCS8PrivateKeyDecoder decodes private key from data using pkcs1.

func PKCS8PrivateKeyEncoder

func PKCS8PrivateKeyEncoder(key *rsa.PrivateKey) (cryptox.Bytes, error)

PKCS8PrivateKeyEncoder encodes private key to bytes using pkcs8.

func PKIXPublicKeyDecoder

func PKIXPublicKeyDecoder(publicKeyPem cryptox.Bytes) (*rsa.PublicKey, error)

PKIXPublicKeyDecoder encodes public key to bytes using pkix.

func PKIXPublicKeyEncoder

func PKIXPublicKeyEncoder(key *rsa.PublicKey) (cryptox.Bytes, error)

PKIXPublicKeyEncoder encodes public key to bytes using pkix.

Types

type Key

type Key struct {
	Private cryptox.Bytes
	Public  cryptox.Bytes
}

Key stores public key and private key of rsa.

func (Key) WriteTo

func (k Key) WriteTo(privateWriter io.Writer, publicWriter io.Writer) (n int, err error)

WriteTo writes private key and public key to writer.

func (Key) WriteToFile

func (k Key) WriteToFile(privatePath string, publicPath string) (n int, err error)

WriteToFile writes private key and public key to file.

type KeyGenerator

type KeyGenerator struct {
	// contains filtered or unexported fields
}

KeyGenerator is a generator for generating rsa key including private and public.

func NewKeyGenerator

func NewKeyGenerator(opts ...Option) *KeyGenerator

NewKeyGenerator returns a key generator with given options. By default, it uses pkcs1 to encode/decode private key and pkix to encode/decode public key. You can specify your encoder or decode.

func (*KeyGenerator) GenerateKey

func (kg *KeyGenerator) GenerateKey(bits int) (Key, error)

GenerateKey generates a key set of bits.

func (*KeyGenerator) GeneratePrivateKey

func (kg *KeyGenerator) GeneratePrivateKey(bits int) (*rsa.PrivateKey, cryptox.Bytes, error)

GeneratePrivateKey generates a private key of bits. It returns an original key struct (*rsa.PrivateKey) and a completing key bytes (cryptox.Bytes).

func (*KeyGenerator) GeneratePublicKey

func (kg *KeyGenerator) GeneratePublicKey(privateKey *rsa.PrivateKey) (*rsa.PublicKey, cryptox.Bytes, error)

GeneratePublicKey generates a public key from private key. It returns an original key struct (*rsa.PublicKey) and a completing key bytes (cryptox.Bytes).

func (*KeyGenerator) GeneratePublicKeyFromPem

func (kg *KeyGenerator) GeneratePublicKeyFromPem(privateKeyPem cryptox.Bytes) (*rsa.PublicKey, cryptox.Bytes, error)

GeneratePublicKeyFromPem generates a public key from private key pem. It returns an original key struct (*rsa.PublicKey) and a completing key bytes (cryptox.Bytes).

func (*KeyGenerator) ParsePrivateKey

func (kg *KeyGenerator) ParsePrivateKey(keyPem cryptox.Bytes) (*rsa.PrivateKey, error)

ParsePrivateKey parses private key from pem.

func (*KeyGenerator) ParsePublicKey

func (kg *KeyGenerator) ParsePublicKey(keyPem cryptox.Bytes) (*rsa.PublicKey, error)

ParsePublicKey parses public key from pem.

type Option

type Option func(generator *KeyGenerator)

Option is a function for setting key generator.

func WithPrivateKeyDecoder

func WithPrivateKeyDecoder(decoder PrivateKeyDecoder) Option

WithPrivateKeyDecoder sets private key decoder to generator.

func WithPrivateKeyEncoder

func WithPrivateKeyEncoder(encoder PrivateKeyEncoder) Option

WithPrivateKeyEncoder sets private key encoder to generator.

func WithPublicKeyDecoder

func WithPublicKeyDecoder(decoder PublicKeyDecoder) Option

WithPublicKeyDecoder sets public key decoder to generator.

func WithPublicKeyEncoder

func WithPublicKeyEncoder(encoder PublicKeyEncoder) Option

WithPublicKeyEncoder sets public key encoder to generator.

func (Option) ApplyTo

func (o Option) ApplyTo(generator *KeyGenerator)

ApplyTo applies option to generator.

type PrivateKeyDecoder

type PrivateKeyDecoder func(keyPem cryptox.Bytes) (*rsa.PrivateKey, error)

PrivateKeyDecoder decodes private key from pem bytes.

func (PrivateKeyDecoder) Decode

func (pke PrivateKeyDecoder) Decode(keyPem cryptox.Bytes) (*rsa.PrivateKey, error)

Decode decodes private key from pem bytes.

type PrivateKeyEncoder

type PrivateKeyEncoder func(key *rsa.PrivateKey) (cryptox.Bytes, error)

PrivateKeyEncoder encodes private key to pem bytes.

func (PrivateKeyEncoder) Encode

func (pke PrivateKeyEncoder) Encode(key *rsa.PrivateKey) (cryptox.Bytes, error)

Encode encodes private key to pem bytes.

type PublicKeyDecoder

type PublicKeyDecoder func(keyPem cryptox.Bytes) (*rsa.PublicKey, error)

PublicKeyDecoder decodes public key from pem bytes.

func (PublicKeyDecoder) Decode

func (pke PublicKeyDecoder) Decode(keyPem cryptox.Bytes) (*rsa.PublicKey, error)

Decode decodes public key from pem bytes.

type PublicKeyEncoder

type PublicKeyEncoder func(key *rsa.PublicKey) (cryptox.Bytes, error)

PublicKeyEncoder encodes public key to pem bytes.

func (PublicKeyEncoder) Encode

func (pke PublicKeyEncoder) Encode(key *rsa.PublicKey) (cryptox.Bytes, error)

Encode encodes public key to pem bytes.

Jump to

Keyboard shortcuts

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