cert

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 12, 2023 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DT_FORMAT string = "2006-01-02T15:04:05"

	CA_EXPIRE time.Duration = 3153600000 * time.Second // 100年
	SV_EXPIRE time.Duration = 33696000 * time.Second   // 390日
	CL_EXPIRE time.Duration = 3153600000 * time.Second // 100年

	UNKNOWN_CERT_TYPE CertType = "UNKNOWN"
	CA                CertType = "CA"
	SERVER            CertType = "SERVER"
	CLIENT            CertType = "CLIENT"
)

Variables

This section is empty.

Functions

func GeneratePassword

func GeneratePassword() (string, error)

パスワードを生成します

※実態は共通暗号鍵です

func GetHashedPassword

func GetHashedPassword(password string) (string, error)

パスワードをハッシュ化します

func VerifyPassword

func VerifyPassword(hashedPass, password string) error

パスワードとハッシュ化されたパスワードを照合します

Types

type CertData

type CertData struct {
	CAID           string
	Serial         uint32
	CommonName     string
	PrivateKey     PrivateKey
	Type           CertType
	PemData        string
	Created        string
	ExpirationDate string
}

func CreateCACert

func CreateCACert(req *CreateCACertRequest) (*CertData, error)

CA証明書を発行します

func CreateClientCert

func CreateClientCert(
	serial uint32, commonName string, ca *CertData) (*CertData, error)

クライアント証明書を発行します

func CreateServerCert

func CreateServerCert(
	req *CreateServerCertRequest, ca *CertData) (*CertData, error)

サーバ証明書を発行します

func ToCertData

func ToCertData(
	password string, tcert models.TranCertificate) (*CertData, error)

DB上の証明書情報をプログラム内部で扱う証明書情報に変換します

func (*CertData) ToPkcs12

func (c *CertData) ToPkcs12(pin string) ([]byte, error)

クライアント証明書 or サーバ証明書と秘密鍵をPFX形式のデータにします

func (*CertData) TranCertificate

func (c *CertData) TranCertificate(
	password string) (models.TranCertificate, error)

プログラム内部で扱う証明書情報をDB上の証明書情報に変換します

func (*CertData) UpdateCert

func (c *CertData) UpdateCert(serial uint32, ca *CertData) (*CertData, error)

証明書を更新します

type CertType

type CertType string

type CreateCACertRequest added in v0.0.2

type CreateCACertRequest struct {
	CAID       string
	PrivateKey PrivateKey
	Subject    pkix.Name
	Serial     uint32
}

type CreateServerCertRequest added in v0.0.2

type CreateServerCertRequest struct {
	CommonName     string
	Serial         uint32
	DNSNames       []string
	IPAddresses    []net.IP
	URIs           []*url.URL
	EmailAddresses []string
}

type PrivateKey

type PrivateKey struct {
	Algorithm PrivateKeyAlgorithm
	Key       crypto.Signer
}

func GenerateECDSAKey

func GenerateECDSAKey(bits int) (PrivateKey, error)

ECDSA PrivateKeyを生成します

※P-256, P-384, P-521にのみ対応しています

func GenerateED25519Key

func GenerateED25519Key() (PrivateKey, error)

ED25519 PrivateKeyを生成します

func GenerateRSAKey

func GenerateRSAKey(bits int) (PrivateKey, error)

RSA PrivateKeyを生成します

※2048bit, 4096bitにのみ対応しています

func (PrivateKey) ToPem added in v0.1.0

func (priv PrivateKey) ToPem() (string, error)

PrivateKey構造体からPEM形式のデータに変換します

type PrivateKeyAlgorithm

type PrivateKeyAlgorithm string
const (
	UNKNOWN_ALGORITHM PrivateKeyAlgorithm = "UNKNOWN"
	RSA               PrivateKeyAlgorithm = "RSA"
	ECDSA             PrivateKeyAlgorithm = "ECDSA"
	ED25519           PrivateKeyAlgorithm = "ED25519"
)

Jump to

Keyboard shortcuts

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