aboutsummaryrefslogtreecommitdiffstats
path: root/docs/development
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-12 17:51:57 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-12 17:51:57 -0600
commit9f540f2bdc70bed5bb06d96c70e45955cb45e5f1 (patch)
treeb3f734e5ef70d0cc2e6dd7f071f4f5df0f0f912a /docs/development
parentcf6ffb5ef3b50fb6485f3e669c28156c03a5420c (diff)
downloadcryptography-9f540f2bdc70bed5bb06d96c70e45955cb45e5f1.tar.gz
cryptography-9f540f2bdc70bed5bb06d96c70e45955cb45e5f1.tar.bz2
cryptography-9f540f2bdc70bed5bb06d96c70e45955cb45e5f1.zip
improve formatting and fix pep8 for generate/verify cast5 scripts
Diffstat (limited to 'docs/development')
-rw-r--r--docs/development/custom-vectors/cast5/generate_cast5.py4
-rw-r--r--docs/development/custom-vectors/cast5/verify_cast5.go212
2 files changed, 109 insertions, 107 deletions
diff --git a/docs/development/custom-vectors/cast5/generate_cast5.py b/docs/development/custom-vectors/cast5/generate_cast5.py
index f038825a..fe898ff2 100644
--- a/docs/development/custom-vectors/cast5/generate_cast5.py
+++ b/docs/development/custom-vectors/cast5/generate_cast5.py
@@ -29,7 +29,9 @@ def build_vectors(mode, filename):
line = line.strip()
if line.startswith("KEY"):
if count != 0:
- output.append("CIPHERTEXT = {}".format(encrypt(mode, key, iv, plaintext)))
+ output.append("CIPHERTEXT = {}".format(
+ encrypt(mode, key, iv, plaintext))
+ )
output.append("\nCOUNT = {}".format(count))
count += 1
name, key = line.split(" = ")
diff --git a/docs/development/custom-vectors/cast5/verify_cast5.go b/docs/development/custom-vectors/cast5/verify_cast5.go
index 1ea10538..49e1023d 100644
--- a/docs/development/custom-vectors/cast5/verify_cast5.go
+++ b/docs/development/custom-vectors/cast5/verify_cast5.go
@@ -1,141 +1,141 @@
package main
import (
- "bufio"
- "bytes"
- "code.google.com/p/go.crypto/cast5"
- "crypto/cipher"
- "encoding/hex"
- "fmt"
- "os"
- "strings"
+ "bufio"
+ "bytes"
+ "code.google.com/p/go.crypto/cast5"
+ "crypto/cipher"
+ "encoding/hex"
+ "fmt"
+ "os"
+ "strings"
)
func unhexlify(s string) []byte {
- bytes, err := hex.DecodeString(s)
- if err != nil {
- panic(err)
- }
- return bytes
+ bytes, err := hex.DecodeString(s)
+ if err != nil {
+ panic(err)
+ }
+ return bytes
}
type VectorArgs struct {
- count string
- key string
- iv string
- plaintext string
- ciphertext string
+ count string
+ key string
+ iv string
+ plaintext string
+ ciphertext string
}
type VectorVerifier interface {
- validate(count string, key, iv, plaintext, expected_ciphertext []byte)
+ validate(count string, key, iv, plaintext, expected_ciphertext []byte)
}
type ofbVerifier struct{}
func (o ofbVerifier) validate(count string, key, iv, plaintext, expected_ciphertext []byte) {
- block, err := cast5.NewCipher(key)
- if err != nil {
- panic(err)
- }
-
- ciphertext := make([]byte, len(plaintext))
- stream := cipher.NewOFB(block, iv)
- stream.XORKeyStream(ciphertext, plaintext)
-
- if !bytes.Equal(ciphertext, expected_ciphertext) {
- panic(fmt.Errorf("vector mismatch @ COUNT = %s:\n %s != %s\n",
- count,
- hex.EncodeToString(expected_ciphertext),
- hex.EncodeToString(ciphertext)))
- }
+ block, err := cast5.NewCipher(key)
+ if err != nil {
+ panic(err)
+ }
+
+ ciphertext := make([]byte, len(plaintext))
+ stream := cipher.NewOFB(block, iv)
+ stream.XORKeyStream(ciphertext, plaintext)
+
+ if !bytes.Equal(ciphertext, expected_ciphertext) {
+ panic(fmt.Errorf("vector mismatch @ COUNT = %s:\n %s != %s\n",
+ count,
+ hex.EncodeToString(expected_ciphertext),
+ hex.EncodeToString(ciphertext)))
+ }
}
type cbcVerifier struct{}
func (o cbcVerifier) validate(count string, key, iv, plaintext, expected_ciphertext []byte) {
- block, err := cast5.NewCipher(key)
- if err != nil {
- panic(err)
- }
-
- ciphertext := make([]byte, len(plaintext))
- mode := cipher.NewCBCEncrypter(block, iv)
- mode.CryptBlocks(ciphertext, plaintext)
-
- if !bytes.Equal(ciphertext, expected_ciphertext) {
- panic(fmt.Errorf("vector mismatch @ COUNT = %s:\n %s != %s\n",
- count,
- hex.EncodeToString(expected_ciphertext),
- hex.EncodeToString(ciphertext)))
- }
+ block, err := cast5.NewCipher(key)
+ if err != nil {
+ panic(err)
+ }
+
+ ciphertext := make([]byte, len(plaintext))
+ mode := cipher.NewCBCEncrypter(block, iv)
+ mode.CryptBlocks(ciphertext, plaintext)
+
+ if !bytes.Equal(ciphertext, expected_ciphertext) {
+ panic(fmt.Errorf("vector mismatch @ COUNT = %s:\n %s != %s\n",
+ count,
+ hex.EncodeToString(expected_ciphertext),
+ hex.EncodeToString(ciphertext)))
+ }
}
type cfbVerifier struct{}
func (o cfbVerifier) validate(count string, key, iv, plaintext, expected_ciphertext []byte) {
- block, err := cast5.NewCipher(key)
- if err != nil {
- panic(err)
- }
-
- ciphertext := make([]byte, len(plaintext))
- stream := cipher.NewCFBEncrypter(block, iv)
- stream.XORKeyStream(ciphertext, plaintext)
-
- if !bytes.Equal(ciphertext, expected_ciphertext) {
- panic(fmt.Errorf("vector mismatch @ COUNT = %s:\n %s != %s\n",
- count,
- hex.EncodeToString(expected_ciphertext),
- hex.EncodeToString(ciphertext)))
- }
+ block, err := cast5.NewCipher(key)
+ if err != nil {
+ panic(err)
+ }
+
+ ciphertext := make([]byte, len(plaintext))
+ stream := cipher.NewCFBEncrypter(block, iv)
+ stream.XORKeyStream(ciphertext, plaintext)
+
+ if !bytes.Equal(ciphertext, expected_ciphertext) {
+ panic(fmt.Errorf("vector mismatch @ COUNT = %s:\n %s != %s\n",
+ count,
+ hex.EncodeToString(expected_ciphertext),
+ hex.EncodeToString(ciphertext)))
+ }
}
func validateVectors(verifier VectorVerifier, filename string) {
- vectors, err := os.Open(filename)
- if err != nil {
- panic(err)
- }
- defer vectors.Close()
-
- var segments []string
- var vector *VectorArgs
-
- scanner := bufio.NewScanner(vectors)
- for scanner.Scan() {
- segments = strings.Split(scanner.Text(), " = ")
-
- switch {
- case strings.ToUpper(segments[0]) == "COUNT":
- if vector != nil {
- verifier.validate(vector.count,
- unhexlify(vector.key),
- unhexlify(vector.iv),
- unhexlify(vector.plaintext),
- unhexlify(vector.ciphertext))
- }
- vector = &VectorArgs{count: segments[1]}
- case strings.ToUpper(segments[0]) == "IV":
- vector.iv = segments[1][:16]
- case strings.ToUpper(segments[0]) == "KEY":
- vector.key = segments[1]
- case strings.ToUpper(segments[0]) == "PLAINTEXT":
- vector.plaintext = segments[1]
- case strings.ToUpper(segments[0]) == "CIPHERTEXT":
- vector.ciphertext = segments[1]
- }
- }
+ vectors, err := os.Open(filename)
+ if err != nil {
+ panic(err)
+ }
+ defer vectors.Close()
+
+ var segments []string
+ var vector *VectorArgs
+
+ scanner := bufio.NewScanner(vectors)
+ for scanner.Scan() {
+ segments = strings.Split(scanner.Text(), " = ")
+
+ switch {
+ case strings.ToUpper(segments[0]) == "COUNT":
+ if vector != nil {
+ verifier.validate(vector.count,
+ unhexlify(vector.key),
+ unhexlify(vector.iv),
+ unhexlify(vector.plaintext),
+ unhexlify(vector.ciphertext))
+ }
+ vector = &VectorArgs{count: segments[1]}
+ case strings.ToUpper(segments[0]) == "IV":
+ vector.iv = segments[1][:16]
+ case strings.ToUpper(segments[0]) == "KEY":
+ vector.key = segments[1]
+ case strings.ToUpper(segments[0]) == "PLAINTEXT":
+ vector.plaintext = segments[1]
+ case strings.ToUpper(segments[0]) == "CIPHERTEXT":
+ vector.ciphertext = segments[1]
+ }
+ }
}
func main() {
- validateVectors(ofbVerifier{},
- "tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-ofb.txt")
- fmt.Println("OFB OK.")
- validateVectors(cfbVerifier{},
- "tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-cfb.txt")
- fmt.Println("CFB OK.")
- validateVectors(cbcVerifier{},
- "tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-cbc.txt")
- fmt.Println("CBC OK.")
+ validateVectors(ofbVerifier{},
+ "tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-ofb.txt")
+ fmt.Println("OFB OK.")
+ validateVectors(cfbVerifier{},
+ "tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-cfb.txt")
+ fmt.Println("CFB OK.")
+ validateVectors(cbcVerifier{},
+ "tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-cbc.txt")
+ fmt.Println("CBC OK.")
}