mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-11-03 19:17:29 -05:00 
			
		
		
		
	The vendor/ folder was created with the help of @FiloSottile's gvt and vendorcheck. Any dependencies of Caddy plugins outside this repo are not vendored. We do not remove any unused, vendored packages because vendorcheck -u only checks using the current build configuration; i.e. packages that may be imported by files toggled by build tags of other systems. CI tests have been updated to ignore the vendor/ folder. When Go 1.9 is released, a few of the go commands should be revised to again use ./... as it will ignore the vendor folder by default.
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2010 The Go Authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a BSD-style
 | 
						|
// license that can be found in the LICENSE file.
 | 
						|
 | 
						|
// package aes12 implements standard block cipher modes that can be wrapped
 | 
						|
// around low-level block cipher implementations.
 | 
						|
// See http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html
 | 
						|
// and NIST Special Publication 800-38A.
 | 
						|
package aes12
 | 
						|
 | 
						|
// A Block represents an implementation of block cipher
 | 
						|
// using a given key. It provides the capability to encrypt
 | 
						|
// or decrypt individual blocks. The mode implementations
 | 
						|
// extend that capability to streams of blocks.
 | 
						|
type Block interface {
 | 
						|
	// BlockSize returns the cipher's block size.
 | 
						|
	BlockSize() int
 | 
						|
 | 
						|
	// Encrypt encrypts the first block in src into dst.
 | 
						|
	// Dst and src may point at the same memory.
 | 
						|
	Encrypt(dst, src []byte)
 | 
						|
 | 
						|
	// Decrypt decrypts the first block in src into dst.
 | 
						|
	// Dst and src may point at the same memory.
 | 
						|
	Decrypt(dst, src []byte)
 | 
						|
}
 | 
						|
 | 
						|
// A Stream represents a stream cipher.
 | 
						|
type Stream interface {
 | 
						|
	// XORKeyStream XORs each byte in the given slice with a byte from the
 | 
						|
	// cipher's key stream. Dst and src may point to the same memory.
 | 
						|
	// If len(dst) < len(src), XORKeyStream should panic. It is acceptable
 | 
						|
	// to pass a dst bigger than src, and in that case, XORKeyStream will
 | 
						|
	// only update dst[:len(src)] and will not touch the rest of dst.
 | 
						|
	XORKeyStream(dst, src []byte)
 | 
						|
}
 | 
						|
 | 
						|
// A BlockMode represents a block cipher running in a block-based mode (CBC,
 | 
						|
// ECB etc).
 | 
						|
type BlockMode interface {
 | 
						|
	// BlockSize returns the mode's block size.
 | 
						|
	BlockSize() int
 | 
						|
 | 
						|
	// CryptBlocks encrypts or decrypts a number of blocks. The length of
 | 
						|
	// src must be a multiple of the block size. Dst and src may point to
 | 
						|
	// the same memory.
 | 
						|
	CryptBlocks(dst, src []byte)
 | 
						|
}
 | 
						|
 | 
						|
// Utility routines
 | 
						|
 | 
						|
func dup(p []byte) []byte {
 | 
						|
	q := make([]byte, len(p))
 | 
						|
	copy(q, p)
 | 
						|
	return q
 | 
						|
}
 |