aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/alg.go
diff options
context:
space:
mode:
Diffstat (limited to 'sys/linux/alg.go')
-rw-r--r--sys/linux/alg.go506
1 files changed, 0 insertions, 506 deletions
diff --git a/sys/linux/alg.go b/sys/linux/alg.go
deleted file mode 100644
index 581b3b364..000000000
--- a/sys/linux/alg.go
+++ /dev/null
@@ -1,506 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-package linux
-
-import (
- "math/rand"
-
- "github.com/google/syzkaller/prog"
-)
-
-func (arch *arch) generateSockaddrAlg(g *prog.Gen, typ *prog.StructType, old *prog.GroupArg) (
- arg prog.Arg, calls []*prog.Call) {
- family := g.GenerateArg(typ.Fields[0], &calls)
- // There is very little point in generating feat/mask,
- // because that can only fail otherwise correct bind.
- feat := prog.MakeConstArg(typ.Fields[2], 0)
- mask := prog.MakeConstArg(typ.Fields[3], 0)
- if g.NOutOf(1, 1000) {
- feat = g.GenerateArg(typ.Fields[2], &calls)
- mask = g.GenerateArg(typ.Fields[3], &calls)
- }
- algType, algName := generateAlgName(g.Rand())
- // Extend/truncate type/name to their fixed sizes.
- typeSize := typ.Fields[1].Size()
- algTypeData := append([]byte(algType), make([]byte, typeSize)...)[:typeSize]
- nameSize := typ.Fields[4].Size()
- algNameData := append([]byte(algName), make([]byte, nameSize)...)[:nameSize]
- arg = prog.MakeGroupArg(typ, []prog.Arg{
- family,
- prog.MakeDataArg(typ.Fields[1], algTypeData),
- feat,
- mask,
- prog.MakeDataArg(typ.Fields[4], algNameData),
- })
- return
-}
-
-func generateAlgName(rnd *rand.Rand) (string, string) {
- typ := allTypes[rnd.Intn(len(allTypes))]
- name := generateAlg(rnd, typ.typ)
- return typ.name, name
-}
-
-func generateAlg(rnd *rand.Rand, typ int) string {
- algs := allAlgs[typ]
- alg := algs[rnd.Intn(len(algs))]
- return generateAlgImpl(rnd, alg)
-}
-
-func generateAlgImpl(rnd *rand.Rand, alg algDesc) string {
- args := ""
- if len(alg.args) != 0 {
- args += "("
- for i, a := range alg.args {
- if i != 0 {
- args += ","
- }
- args += generateAlg(rnd, a)
- }
- args += ")"
- }
- return alg.name + args
-}
-
-type algType struct {
- name string
- typ int
-}
-
-type algDesc struct {
- name string
- args []int
-}
-
-const (
- ALG_CIPHER = iota
- ALG_BLKCIPHER
- ALG_AEAD
- ALG_HASH
- ALG_RNG
-)
-
-var allTypes = []algType{
- {"aead", ALG_AEAD},
- {"skcipher", ALG_BLKCIPHER},
- {"hash", ALG_HASH},
- {"rng", ALG_RNG},
-}
-
-var allAlgs = map[int][]algDesc{
- ALG_AEAD: []algDesc{
- // templates:
- {"authencesn", []int{ALG_HASH, ALG_BLKCIPHER}},
- {"authenc", []int{ALG_HASH, ALG_BLKCIPHER}},
- {"rfc7539esp", []int{ALG_BLKCIPHER, ALG_HASH}},
- {"rfc7539", []int{ALG_BLKCIPHER, ALG_HASH}},
- {"rfc4543", []int{ALG_AEAD}},
- {"rfc4106", []int{ALG_AEAD}},
- {"pcrypt", []int{ALG_AEAD}},
- {"rfc4309", []int{ALG_AEAD}},
- {"gcm", []int{ALG_CIPHER}},
- {"gcm_base", []int{ALG_BLKCIPHER, ALG_HASH}},
- {"ccm", []int{ALG_CIPHER}},
- {"ccm_base", []int{ALG_BLKCIPHER, ALG_HASH}},
- {"echainiv", []int{ALG_AEAD}},
- {"seqiv", []int{ALG_AEAD}},
-
- // algorithms:
- {"gcm(aes)", nil},
- {"gcm_base(ctr(aes-aesni),ghash-generic)", nil},
- {"generic-gcm-aesni", nil},
- {"rfc4106(gcm(aes))", nil},
- {"rfc4106-gcm-aesni", nil},
- {"__gcm-aes-aesni", nil},
- {"__driver-gcm-aes-aesni", nil},
- },
- ALG_BLKCIPHER: []algDesc{
- // templates:
- {"pcbc", []int{ALG_CIPHER}},
- {"cbc", []int{ALG_CIPHER}},
- {"xts", []int{ALG_CIPHER}},
- {"ctr", []int{ALG_CIPHER}},
- {"lrw", []int{ALG_CIPHER}},
- {"ecb", []int{ALG_CIPHER}},
- {"kw", []int{ALG_CIPHER}},
- {"cts", []int{ALG_BLKCIPHER}},
- {"fpu", []int{ALG_BLKCIPHER}},
- {"xts", []int{ALG_BLKCIPHER}},
- {"lrw", []int{ALG_BLKCIPHER}},
- {"rfc3686", []int{ALG_BLKCIPHER}},
- {"cryptd", []int{ALG_BLKCIPHER}},
-
- // algorithms:
- {"cbc(aes)", nil},
- {"cbc(aes-aesni)", nil},
- {"chacha20", nil},
- {"chacha20-simd", nil},
- {"pcbc(aes)", nil},
- {"pcbc-aes-aesni", nil},
- {"fpu(pcbc(__aes))", nil},
- {"fpu(pcbc(__aes-aesni))", nil},
- {"pcbc(__aes)", nil},
- {"pcbc(__aes-aesni)", nil},
- {"xts(aes)", nil},
- {"xts-aes-aesni", nil},
- {"ctr(aes)", nil},
- {"ctr-aes-aesni", nil},
- {"cbc-aes-aesni", nil},
- {"ecb(aes)", nil},
- {"ecb-aes-aesni", nil},
- {"__xts(aes)", nil},
- {"__xts-aes-aesni", nil},
- {"__ctr(aes)", nil},
- {"__ctr-aes-aesni", nil},
- {"__cbc(aes)", nil},
- {"__cbc-aes-aesni", nil},
- {"__ecb(aes)", nil},
- {"__ecb-aes-aesni", nil},
- {"chacha20-generic", nil},
- {"xts(serpent)", nil},
- {"xts-serpent-avx2", nil},
- {"lrw(serpent)", nil},
- {"lrw-serpent-avx2", nil},
- {"ctr(serpent)", nil},
- {"ctr-serpent-avx2", nil},
- {"cbc(serpent)", nil},
- {"cbc-serpent-avx2", nil},
- {"ecb(serpent)", nil},
- {"ecb-serpent-avx2", nil},
- {"xts(camellia)", nil},
- {"xts-camellia-aesni-avx2", nil},
- {"lrw(camellia)", nil},
- {"lrw-camellia-aesni-avx2", nil},
- {"ctr(camellia)", nil},
- {"ctr-camellia-aesni-avx2", nil},
- {"cbc(camellia)", nil},
- {"cbc-camellia-aesni-avx2", nil},
- {"ecb(camellia)", nil},
- {"ecb-camellia-aesni-avx2", nil},
- {"xts-serpent-avx", nil},
- {"lrw-serpent-avx", nil},
- {"ctr-serpent-avx", nil},
- {"cbc-serpent-avx", nil},
- {"ecb-serpent-avx", nil},
- {"xts(twofish)", nil},
- {"xts-twofish-avx", nil},
- {"lrw(twofish)", nil},
- {"lrw-twofish-avx", nil},
- {"ctr(twofish)", nil},
- {"ctr-twofish-avx", nil},
- {"cbc(twofish)", nil},
- {"cbc-twofish-avx", nil},
- {"ecb(twofish)", nil},
- {"ecb-twofish-avx", nil},
- {"xts(cast6)", nil},
- {"xts-cast6-avx", nil},
- {"lrw(cast6)", nil},
- {"lrw-cast6-avx", nil},
- {"ctr(cast6)", nil},
- {"ctr-cast6-avx", nil},
- {"cbc(cast6)", nil},
- {"cbc-cast6-avx", nil},
- {"ecb(cast6)", nil},
- {"ecb-cast6-avx", nil},
- {"ctr(cast5)", nil},
- {"ctr-cast5-avx", nil},
- {"cbc(cast5)", nil},
- {"cbc-cast5-avx", nil},
- {"ecb(cast5)", nil},
- {"ecb-cast5-avx", nil},
- {"xts-camellia-aesni", nil},
- {"lrw-camellia-aesni", nil},
- {"ctr-camellia-aesni", nil},
- {"cbc-camellia-aesni", nil},
- {"ecb-camellia-aesni", nil},
- {"xts-serpent-sse2", nil},
- {"lrw-serpent-sse2", nil},
- {"ctr-serpent-sse2", nil},
- {"cbc-serpent-sse2", nil},
- {"ecb-serpent-sse2", nil},
- {"ctr(aes-aesni)", nil},
- {"salsa20", nil},
- {"salsa20-generic", nil},
- {"ecb(arc4)", nil},
- {"ecb(arc4)-generic", nil},
- {"ecb(cipher_null)", nil},
- {"ecb-cipher_null", nil},
- {"__xts-serpent-avx2", nil},
- {"__driver-xts-serpent-avx2", nil},
- {"__lrw-serpent-avx2", nil},
- {"__driver-lrw-serpent-avx2", nil},
- {"__ctr-serpent-avx2", nil},
- {"__driver-ctr-serpent-avx2", nil},
- {"__cbc-serpent-avx2", nil},
- {"__driver-cbc-serpent-avx2", nil},
- {"__ecb-serpent-avx2", nil},
- {"__driver-ecb-serpent-avx2", nil},
- {"__xts-camellia-aesni-avx2", nil},
- {"__driver-xts-camellia-aesni-avx2", nil},
- {"__lrw-camellia-aesni-avx2", nil},
- {"__driver-lrw-camellia-aesni-avx2", nil},
- {"__ctr-camellia-aesni-avx2", nil},
- {"__driver-ctr-camellia-aesni-avx2", nil},
- {"__cbc-camellia-aesni-avx2", nil},
- {"__driver-cbc-camellia-aesni-avx2", nil},
- {"__ecb-camellia-aesni-avx2", nil},
- {"__driver-ecb-camellia-aesni-avx2", nil},
- {"__xts-serpent-avx", nil},
- {"__driver-xts-serpent-avx", nil},
- {"__lrw-serpent-avx", nil},
- {"__driver-lrw-serpent-avx", nil},
- {"__ctr-serpent-avx", nil},
- {"__driver-ctr-serpent-avx", nil},
- {"__cbc-serpent-avx", nil},
- {"__driver-cbc-serpent-avx", nil},
- {"__ecb-serpent-avx", nil},
- {"__driver-ecb-serpent-avx", nil},
- {"__xts-twofish-avx", nil},
- {"__driver-xts-twofish-avx", nil},
- {"__lrw-twofish-avx", nil},
- {"__driver-lrw-twofish-avx", nil},
- {"__ctr-twofish-avx", nil},
- {"__driver-ctr-twofish-avx", nil},
- {"__cbc-twofish-avx", nil},
- {"__driver-cbc-twofish-avx", nil},
- {"__ecb-twofish-avx", nil},
- {"__driver-ecb-twofish-avx", nil},
- {"__xts-cast6-avx", nil},
- {"__driver-xts-cast6-avx", nil},
- {"__lrw-cast6-avx", nil},
- {"__driver-lrw-cast6-avx", nil},
- {"__ctr-cast6-avx", nil},
- {"__driver-ctr-cast6-avx", nil},
- {"__cbc-cast6-avx", nil},
- {"__driver-cbc-cast6-avx", nil},
- {"__ecb-cast6-avx", nil},
- {"__driver-ecb-cast6-avx", nil},
- {"__ctr-cast5-avx", nil},
- {"__driver-ctr-cast5-avx", nil},
- {"__cbc-cast5-avx", nil},
- {"__driver-cbc-cast5-avx", nil},
- {"__ecb-cast5-avx", nil},
- {"__driver-ecb-cast5-avx", nil},
- {"__xts-camellia-aesni", nil},
- {"__driver-xts-camellia-aesni", nil},
- {"__lrw-camellia-aesni", nil},
- {"__driver-lrw-camellia-aesni", nil},
- {"__ctr-camellia-aesni", nil},
- {"__driver-ctr-camellia-aesni", nil},
- {"__cbc-camellia-aesni", nil},
- {"__driver-cbc-camellia-aesni", nil},
- {"__ecb-camellia-aesni", nil},
- {"__driver-ecb-camellia-aesni", nil},
- {"__xts-serpent-sse2", nil},
- {"__driver-xts-serpent-sse2", nil},
- {"__lrw-serpent-sse2", nil},
- {"__driver-lrw-serpent-sse2", nil},
- {"__ctr-serpent-sse2", nil},
- {"__driver-ctr-serpent-sse2", nil},
- {"__cbc-serpent-sse2", nil},
- {"__driver-cbc-serpent-sse2", nil},
- {"__ecb-serpent-sse2", nil},
- {"__driver-ecb-serpent-sse2", nil},
- {"salsa20-asm", nil},
- {"xts-twofish-3way", nil},
- {"lrw-twofish-3way", nil},
- {"ctr-twofish-3way", nil},
- {"cbc-twofish-3way", nil},
- {"ecb-twofish-3way", nil},
- {"ctr(blowfish)", nil},
- {"ctr-blowfish-asm", nil},
- {"cbc(blowfish)", nil},
- {"cbc-blowfish-asm", nil},
- {"ecb(blowfish)", nil},
- {"ecb-blowfish-asm", nil},
- {"xts-camellia-asm", nil},
- {"lrw-camellia-asm", nil},
- {"ctr-camellia-asm", nil},
- {"cbc-camellia-asm", nil},
- {"ecb-camellia-asm", nil},
- {"ctr(des3_ede)", nil},
- {"ctr-des3_ede-asm", nil},
- {"cbc(des3_ede)", nil},
- {"cbc-des3_ede-asm", nil},
- {"ecb(des3_ede)", nil},
- {"ecb-des3_ede-asm", nil},
- },
- ALG_CIPHER: []algDesc{
- {"aes", nil},
- {"__aes", nil},
- {"__aes-aesni", nil},
- {"aes-aesni", nil},
- {"seed", nil},
- {"seed-generic", nil},
- {"anubis", nil},
- {"anubis-generic", nil},
- {"khazad", nil},
- {"khazad-generic", nil},
- {"xeta", nil},
- {"xeta-generic", nil},
- {"xtea", nil},
- {"xtea-generic", nil},
- {"tea", nil},
- {"tea-generic", nil},
- {"arc4", nil},
- {"arc4-generic", nil},
- {"cast6", nil},
- {"cast6-generic", nil},
- {"cast5", nil},
- {"cast5-generic", nil},
- {"camellia", nil},
- {"camellia-generic", nil},
- {"camellia-asm", nil},
- {"tnepres", nil},
- {"aes-fixed-time", nil},
- {"aes-generic", nil},
- {"tnepres-generic", nil},
- {"serpent", nil},
- {"serpent-generic", nil},
- {"twofish", nil},
- {"twofish-generic", nil},
- {"twofish-asm", nil},
- {"blowfish", nil},
- {"blowfish-generic", nil},
- {"blowfish-asm", nil},
- {"fcrypt", nil},
- {"fcrypt-generic", nil},
- {"des3_ede", nil},
- {"des3_ede-generic", nil},
- {"des3_ede-asm", nil},
- {"des", nil},
- {"des-generic", nil},
- {"cipher_null", nil},
- {"cipher_null-generic", nil},
- {"aes-asm", nil},
- },
- ALG_HASH: []algDesc{
- // templates:
- {"cmac", []int{ALG_CIPHER}},
- {"cbcmac", []int{ALG_CIPHER}},
- {"xcbc", []int{ALG_CIPHER}},
- {"vmac", []int{ALG_CIPHER}},
- {"hmac", []int{ALG_HASH}},
- {"mcryptd", []int{ALG_HASH}},
- {"cryptd", []int{ALG_HASH}},
-
- // algorithms:
- {"sha512", nil},
- {"sha512_mb", nil},
- {"__sha512-mb", nil},
- {"__intel_sha512-mb", nil},
- {"sha256", nil},
- {"sha256_mb", nil},
- {"__sha256-mb", nil},
- {"__intel_sha256-mb", nil},
- {"sha1", nil},
- {"sha1_mb", nil},
- {"__sha1-mb", nil},
- {"__intel_sha1-mb", nil},
- {"ghash", nil},
- {"ghash-clmulni", nil},
- {"md4", nil},
- {"md4-generic", nil},
- {"md5", nil},
- {"md5-generic", nil},
- {"ghash-generic", nil},
- {"crct10dif", nil},
- {"crct10dif-generic", nil},
- {"crct10dif-pclmul", nil},
- {"crc32", nil},
- {"crc32-generic", nil},
- {"crc32c", nil},
- {"crc32c-generic", nil},
- {"michael_mic", nil},
- {"michael_mic-generic", nil},
- {"poly1305", nil},
- {"poly1305-generic", nil},
- {"tgr128", nil},
- {"tgr128-generic", nil},
- {"tgr160", nil},
- {"tgr160-generic", nil},
- {"tgr192", nil},
- {"tgr192-generic", nil},
- {"wp256", nil},
- {"wp256-generic", nil},
- {"wp384", nil},
- {"wp384-generic", nil},
- {"wp512", nil},
- {"wp512-generic", nil},
- {"sm3", nil},
- {"sm3-generic", nil},
- {"sha3-512", nil},
- {"sha3-512-generic", nil},
- {"sha3-384", nil},
- {"sha3-384-generic", nil},
- {"sha3-256", nil},
- {"sha3-256-generic", nil},
- {"sha3-224", nil},
- {"sha3-224-generic", nil},
- {"sha384", nil},
- {"sha384-generic", nil},
- {"sha512-generic", nil},
- {"sha224", nil},
- {"sha224-generic", nil},
- {"sha256-generic", nil},
- {"sha1-generic", nil},
- {"rmd320", nil},
- {"rmd320-generic", nil},
- {"rmd256", nil},
- {"rmd256-generic", nil},
- {"rmd160", nil},
- {"rmd160-generic", nil},
- {"rmd128", nil},
- {"rmd128-generic", nil},
- {"digest_null", nil},
- {"digest_null-generic", nil},
- {"poly1305-simd", nil},
- {"sha384-avx2", nil},
- {"sha512-avx2", nil},
- {"sha384-avx", nil},
- {"sha512-avx", nil},
- {"sha384-ssse3", nil},
- {"sha512-ssse3", nil},
- {"sha224-avx2", nil},
- {"sha256-avx2", nil},
- {"sha224-avx", nil},
- {"sha256-avx", nil},
- {"sha224-ssse3", nil},
- {"sha256-ssse3", nil},
- {"crc32-pclmul", nil},
- {"sha1-avx2", nil},
- {"sha1-avx", nil},
- {"sha1-ssse3", nil},
- {"crc32c-intel", nil},
- {"__ghash", nil},
- {"__ghash-pclmulqdqni", nil},
- },
- ALG_RNG: []algDesc{
- {"stdrng", nil},
- {"ansi_cprng", nil},
- {"jitterentropy_rng", nil},
- {"drbg_nopr_hmac_sha256", nil},
- {"drbg_nopr_hmac_sha512", nil},
- {"drbg_nopr_hmac_sha384", nil},
- {"drbg_nopr_hmac_sha1", nil},
- {"drbg_nopr_sha256", nil},
- {"drbg_nopr_sha512", nil},
- {"drbg_nopr_sha384", nil},
- {"drbg_nopr_sha1", nil},
- {"drbg_nopr_ctr_aes256", nil},
- {"drbg_nopr_ctr_aes192", nil},
- {"drbg_nopr_ctr_aes128", nil},
- {"drbg_pr_hmac_sha256", nil},
- {"drbg_pr_hmac_sha512", nil},
- {"drbg_pr_hmac_sha384", nil},
- {"drbg_pr_hmac_sha1", nil},
- {"drbg_pr_sha256", nil},
- {"drbg_pr_sha512", nil},
- {"drbg_pr_sha384", nil},
- {"drbg_pr_sha1", nil},
- {"drbg_pr_ctr_aes256", nil},
- {"drbg_pr_ctr_aes192", nil},
- {"drbg_pr_ctr_aes128", nil},
- },
-}