seal

package module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2024 License: MIT Imports: 19 Imported by: 0

README

seal

一個數字簽名程序

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDamaged = errors.New(`seal: damaged`)
View Source
var ErrDateYet = errors.New(`seal: date yet`)
View Source
var ErrExpired = errors.New(`seal: expired`)
View Source
var ErrNil = errors.New(`seal: chain nil`)

Functions

func GetHash

func GetHash(name string) crypto.Hash

Types

type Format added in v0.0.2

type Format byte
const (
	FormatJSON Format = 1 + iota
	FormatProtocolBuffers
	FormatBinary
)

type HashError

type HashError string

func (HashError) Error

func (s HashError) Error() string

type Metadata

type Metadata struct {
	// 簽名使用的 hash 算法名稱
	Hash crypto.Hash
	// 使用此公鑰 驗證簽名,如果沒有表示它是自簽名的
	Parent *rsa.PublicKey

	// 公鑰,驗證它簽名的數據是否有效
	PublicKey *rsa.PublicKey

	// unix 表示此簽名有效起始時間,<1 則表示沒有此限制
	Afrer time.Time
	// unix 表示此簽名有效截止時間,<1 則表示沒有此限制
	Before time.Time

	// 可選的 國家名稱
	Country string
	// 可選的 /州 名稱
	State string
	// 可選的 地點或城市名稱
	Locality string
	// 可選的 組織或公司名稱
	Organization string
	// 可選的 組織單位或公司部門
	Organizational string
	// 可選的 被簽名的附帶內容
	Content []byte
}

簽名元信息

type PrivateChain

type PrivateChain struct {
	*PublicChain
	// contains filtered or unexported fields
}

私鑰鏈,用於簽名

func New

func New(md Metadata, bitSize int, format Format) (*PrivateChain, error)

創建一個私鏈

func ParsePrivateChain

func ParsePrivateChain(b []byte) (*PrivateChain, error)

加載序列化的私鏈到內存

func ParsePrivateChainWithTime

func ParsePrivateChainWithTime(b []byte, now int64) (*PrivateChain, error)

加載序列化的私鏈到內存 now 如果爲 < 1 則不驗證時間

func (*PrivateChain) Format added in v0.0.2

func (p *PrivateChain) Format() Format

返回編碼格式

func (*PrivateChain) Marshal

func (p *PrivateChain) Marshal() []byte

將私鏈序列化,以便於網路傳輸或存儲

func (*PrivateChain) PrivateKey

func (p *PrivateChain) PrivateKey() *rsa.PrivateKey

返回私鑰

func (*PrivateChain) Sign

func (p *PrivateChain) Sign(hash crypto.Hash, hashed []byte) ([]byte, error)

爲 hashed 簽名,並且返回簽名

func (*PrivateChain) SignContent

func (p *PrivateChain) SignContent(md Metadata) (*PublicChain, error)

簽名一個內容

func (*PrivateChain) SignPrivate

func (p *PrivateChain) SignPrivate(md Metadata, bitSize int) (*PrivateChain, error)

簽署一個私鏈

type PublicChain

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

公鑰鏈,用於回溯簽發源

func ParsePublicChain

func ParsePublicChain(b []byte) (*PublicChain, error)

加載序列化的公鏈到內存

func ParsePublicChainWithTime

func ParsePublicChainWithTime(b []byte, now int64) (*PublicChain, error)

加載序列化的公鏈到內存 now 如果爲 < 1 則不驗證時間

func (*PublicChain) Format added in v0.0.2

func (p *PublicChain) Format() Format

返回編碼格式

func (*PublicChain) Marshal

func (p *PublicChain) Marshal() []byte

將公鏈序列化,以便於網路傳輸或存儲

func (*PublicChain) Metadata

func (p *PublicChain) Metadata() *Metadata

返回元信息,請勿修改

func (*PublicChain) Parent

func (p *PublicChain) Parent() *PublicChain

返回它是由誰簽發的,如果爲 nil 則表示自簽發

func (*PublicChain) PublicKey

func (p *PublicChain) PublicKey() *rsa.PublicKey

返回公鑰

func (*PublicChain) Valid

func (p *PublicChain) Valid() error

驗證鏈當前時間是否有效

func (*PublicChain) Verify

func (p *PublicChain) Verify(hash crypto.Hash, hashed []byte, sig []byte) error

驗證 sig 是否是 hashed 的簽名

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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