github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/crypto/cipher/cipher.go (about)

     1  // Copyright 2010 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Package cipherは、低レベルのブロック暗号実装を包み込むことができる標準のブロック暗号モードを実装しています。
     6  // 詳細はhttps://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html
     7  // およびNIST Special Publication 800-38Aを参照してください。
     8  package cipher
     9  
    10  // A Block represents an implementation of block cipher
    11  // using a given key. It provides the capability to encrypt
    12  // or decrypt individual blocks. The mode implementations
    13  // extend that capability to streams of blocks.
    14  // ブロックは与えられた鍵を使用したブロック暗号の実装を表します。個々のブロックを暗号化または復号する機能を提供します。モードの実装は、ブロックのストリームにこの機能を拡張します。
    15  type Block interface {
    16  	BlockSize() int
    17  
    18  	Encrypt(dst, src []byte)
    19  
    20  	Decrypt(dst, src []byte)
    21  }
    22  
    23  // Streamはストリーム暗号を表します。
    24  type Stream interface {
    25  	XORKeyStream(dst, src []byte)
    26  }
    27  
    28  // BlockModeは、ブロックベースのモード(CBC、ECBなど)で動作するブロック暗号を表します。
    29  type BlockMode interface {
    30  	BlockSize() int
    31  
    32  	CryptBlocks(dst, src []byte)
    33  }