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 }