// Copyright (c) 2016 Andreas Auernhammer. All rights reserved. // Use of this source code is governed by a license that can be // found in the LICENSE file. package skein import "github.com/aead/skein/threefish" const ( // The blocksize of Skein-512 in bytes. BlockSize = threefish.BlockSize512 ) // The different parameter types const ( // CfgKey is the config type for the Key. CfgKey uint64 = 0 // CfgConfig is the config type for the configuration. CfgConfig uint64 = 4 // CfgPersonal is the config type for the personalization. CfgPersonal uint64 = 8 // CfgPublicKey is the config type for the public key. CfgPublicKey uint64 = 12 // CfgKeyID is the config type for the key id. CfgKeyID uint64 = 16 // CfgNonce is the config type for the nonce. CfgNonce uint64 = 20 // CfgMessage is the config type for the message. CfgMessage uint64 = 48 // CfgOutput is the config type for the output. CfgOutput uint64 = 63 // FirstBlock is the first block flag FirstBlock uint64 = 1 << 62 // FinalBlock is the final block flag FinalBlock uint64 = 1 << 63 // The skein schema ID = S H A 3 1 0 0 0 SchemaID uint64 = 0x133414853 ) // Precomputed chain values for Skein-512 var iv160 = [9]uint64{ 0x28B81A2AE013BD91, 0xC2F11668B5BDF78F, 0x1760D8F3F6A56F12, 0x4FB747588239904F, 0x21EDE07F7EAF5056, 0xD908922E63ED70B8, 0xB8EC76FFECCB52FA, 0x01A47BB8A3F27A6E, 0, } var iv256 = [9]uint64{ 0xCCD044A12FDB3E13, 0xE83590301A79A9EB, 0x55AEA0614F816E6F, 0x2A2767A4AE9B94DB, 0xEC06025E74DD7683, 0xE7A436CDC4746251, 0xC36FBAF9393AD185, 0x3EEDBA1833EDFC13, 0, } var iv384 = [9]uint64{ 0xA3F6C6BF3A75EF5F, 0xB0FEF9CCFD84FAA4, 0x9D77DD663D770CFE, 0xD798CBF3B468FDDA, 0x1BC4A6668A0E4465, 0x7ED7D434E5807407, 0x548FC1ACD4EC44D6, 0x266E17546AA18FF8, 0, } var iv512 = [9]uint64{ 0x4903ADFF749C51CE, 0x0D95DE399746DF03, 0x8FD1934127C79BCE, 0x9A255629FF352CB1, 0x5DB62599DF6CA7B0, 0xEABE394CA9D5C3F4, 0x991112C71A75B523, 0xAE18A40B660FCC33, 0, }