...

パッケージ crypto

概要 ▾

crypto パッケージはよく使われる暗号化の定数を含んでいます。

func RegisterHash

func RegisterHash(h Hash, f func() hash.Hash)

RegisterHash は,与えられたハッシュ関数の新しいインスタンスを返す関数を登録します。 これはハッシュ関数を実装するパッケージの init 関数から呼び出されることを意図しています。

type Decrypter 1.5

Decrypter は,非対称復号化操作に使用できる不透明な秘密鍵用のインターフェースです。 例としては,ハードウェアモジュールに保持されている RSA キーがあります。

type Decrypter interface {
    // Public は,不透明な秘密鍵に対応する公開鍵を返します。
    Public() PublicKey

    // Decryptは msg を復号します。
    // opts 引数は,使用されているプリミティブに適していなければなりません。
    // 詳細は各実装のドキュメントを参照してください。
    Decrypt(rand io.Reader, msg []byte, opts DecrypterOpts) (plaintext []byte, err error)
}

type DecrypterOpts 1.5

type DecrypterOpts interface{}

type Hash

Hash (ハッシュ) は,他のパッケージに実装されている暗号化ハッシュ関数を識別します。

type Hash uint
const (
    MD4         Hash = 1 + iota // golang.org/x/crypto/md4 をインポートしてください。
    MD5                         // crypto/md5 をインポート
    SHA1                        // crypto/sha1 をインポート
    SHA224                      // crypto/sha256 をインポート
    SHA256                      // crypto/sha256 をインポート
    SHA384                      // crypto/sha512 をインポート
    SHA512                      // crypto/sha512 をインポート
    MD5SHA1                     // 実装なし。 TLS RSA に使用される MD5+SHA1
    RIPEMD160                   // golang.org/x/crypto/ripemd160 をインポート
    SHA3_224                    // golang.org/x/crypto/sha3をインポート
    SHA3_256                    // golang.org/x/crypto/sha3をインポート
    SHA3_384                    // golang.org/x/crypto/sha3をインポート
    SHA3_512                    // golang.org/x/crypto/sha3をインポート
    SHA512_224                  // crypto/sha512 をインポート
    SHA512_256                  // crypto/sha512 をインポート
    BLAKE2s_256                 // golang.org/x/crypto/blake2s をインポート
    BLAKE2b_256                 // golang.org/x/crypto/blake2b をインポート
    BLAKE2b_384                 // golang.org/x/crypto/blake2b をインポート
    BLAKE2b_512                 // golang.org/x/crypto/blake2b をインポート

)

func (Hash) Available

func (h Hash) Available() bool

Availableは指定されたハッシュ関数がバイナリにリンクされているかどうかをレポートします。

func (Hash) HashFunc 1.4

func (h Hash) HashFunc() Hash

HashFunc は単純に h の値を返すので, Hash は SignerOpts を実装します。

func (Hash) New

func (h Hash) New() hash.Hash

New は与えられたハッシュ関数を計算する新しいハッシュを返します。 ハッシュ関数がバイナリにリンクされていない場合,Newはパニックします。

func (Hash) Size

func (h Hash) Size() int

Size は,与えられたハッシュ関数から得られるダイジェストの長さをバイト数で返します。 問題のハッシュ関数がプログラムにリンクされている必要はありません。

type PrivateKey

PrivateKey は,未指定のアルゴリズムを使用した秘密鍵を表します。

type PrivateKey interface{}

type PublicKey 1.2

PublicKey は,未指定のアルゴリズムを使用した公開鍵を表します。

type PublicKey interface{}

type Signer 1.4

Signer は,署名操作に使用できる不透明な秘密鍵用のインターフェースです。 たとえば, RSA キーはハードウェアモジュールに保存されています。

type Signer interface {
    // Public は,不透明な秘密鍵に対応する公開鍵を返します。
    Public() PublicKey

    // Signは,おそらく rand のエントロピーを使用して,秘密鍵でダイジェスト署名します。
    // RSA 鍵の場合,結果の署名は  (opts で示されているように)PKCS#1v1.5 または PSS 署名 のいずれかになります。
    // (EC)DSA 鍵の場合は, DER シリアライズされた ASN.1 署名構造にする必要があります。
    //
    // Hash は SignerOpts インターフェースを実装しており,ほとんどの場合, opts として使用されているハッシュ関数を単純に渡すことができます。
    // また, Sign は,アルゴリズム固有の値を取得するために,optsを他の型に対して型アサーションしようとすることもあります。
    // 詳細は各パッケージのドキュメントを参照してください。
    //
    // 大きなメッセージのハッシュの署名が必要な場合,呼び出し元は大きなメッセージをハッシュし, (ダイジェストとして) そのハッシュと (opts として)ハッシュ関数をSign に渡す必要があります。
    Sign(rand io.Reader, digest []byte, opts SignerOpts) (signature []byte, err error)
}

type SignerOpts 1.4

SignerOpts には,署名者と署名するためのオプションが含まれています。

type SignerOpts interface {
    // HashFunc は, Signer.Sign に渡されたメッセージを生成するために使用されたハッシュ関数の識別子を返します。
    // それ以外の場合は,ハッシュが行われなかったことを示すためにゼロを返します。
    HashFunc() Hash
}

サブディレクトリ

名前 概要
..
aes aes パッケージは,米国連邦情報処理標準文書 (U.S. Federal Information Processing Standards Publication) 197 で定義された AES 暗号 (以前の Rijndael) を実装します。
cipher cipher パッケージは,低レベルブロック暗号実装にラップできる標準ブロック暗号モードを実装します。
des des パッケージは,米国連邦情報処理標準出版物 (U.S. Federal Information Processing Standards Publication) 46-3 で定義されたデータ暗号化標準 (DES) と トリプルデータ暗号化アルゴリズム (TDEA) を実装します。
dsa dsa パッケージは,FIPS 186-3 で定義されているデジタル署名アルゴリズムを実装します。
ecdsa ecdsa パッケージは,FIPS 186-3 で定義された楕円曲線デジタル署名アルゴリズム (Elliptic Curve Digital Signature Algorithm) を実装します。
ed25519 Package ed25519 implements the Ed25519 signature algorithm.
elliptic elliptic パッケージは,素体上にいくつかの標準楕円曲線を実装します。
hmac hmac パッケージは,米国連邦情報処理規格 (U.S. Federal Information Processing Standards Publication) 198 で定義された鍵付きハッシュメッセージ認証コード (HMAC: Keyed-Hash Message Authentication Code) を実装します。
md5 md5 パッケージは,RFC 1321 で定義された MD5 ハッシュアルゴリズムを実装します。
rand rand パッケージは,暗号論的に安全な乱数生成器を実装します。
rc4 rc4 パッケージは,Bruce Schneier's Applied Cryptography で定義された RC4 暗号を実装します。
rsa rsa パッケージは,PKCS#1 で定義された RSA 暗号を実装します。
sha1 sha1 パッケージは,RFC 3174 で定義された SHA-1 ハッシュアルゴリズムを実装します。
sha256 sha256 パッケージは,FIPS 180-4 で定義された SHA224 と SHA256 ハッシュアルゴリズムを実装します。
sha512 sha512 パッケージは,FIPS 180-4 で定義された SHA-384, SHA-512, SHA-512/224, SHA-512/256 ハッシュアルゴリズムを実装します。
subtle subtle パッケージは,暗号化コードで役立つが正しく使うには注意深さが求められる関数を実装します。
tls tls パッケージは,RFC 5246 で定義された TLS 1.2 と RFC 8446 で定義された TLS 1.3 を部分的に実装します。
x509 x509 パッケージは,X.509 でエンコードされた鍵と証明書をパースします。
pkix pkix パッケージは,X.509 証明書,CRL,OCSP をパースしシリアライズする ASN.1 で用いる共有された,低レベル構造を含みます。