|
|
// 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, }
|