// Copyright 2021 Canonical Ltd.
// Licensed under the LGPLv3 with static-linking exception.
// See LICENCE file for details.

// This file is autogenerated with testdata/gentest.go

package drbg_test

import (
	"crypto"
	_ "crypto/sha1"
	_ "crypto/sha256"
	_ "crypto/sha512"

	. "gopkg.in/check.v1"
)

func (s *drbgSuite) testHash0_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash0_SHA1_0(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "136cf1c174e5a09f66b962d994396525"),
		nonce:           decodeHexString(c, "fff1c6645f19231f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0e28130fa5ca11edd3293ca26fdb8ae1810611f78715082ed3841e7486f16677b28e33ffe0b93d98ba57ba358c1343ab2a26b4eb7940f5bc639384641ee80a25140331076268bd1ce702ad534dda0ed8"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_1(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "dfed69b08902fcfb795d5d35dbe23f6b"),
		nonce:           decodeHexString(c, "37258e820432e392"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "adcb8e2cbbc5957d538a20db18b5e7fe350a90a201359fab9e0f154c53aa146bc6af1fcc7ff8f330b8d9f3d7b038488ba627e6fa21d0147377b1340422b22634b412dac69ac82c35b5fb411a4e42a133"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_2(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f32e36ff8098f932035cae429c0ece72"),
		nonce:           decodeHexString(c, "5552ceb182324b49"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bac94bc1797b209b8e576709d68d92a94aa8a5f414feee3e87d2f21fcb5939314b1b4711274077e794e8e385a28fabb5b49081ef14cb1396cb12542fd1b48c2ad4df98f74bf08346f0a29ff7088dcbfe"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_3(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "213e9022898aa05c7a6a01a4b8d343cc"),
		nonce:           decodeHexString(c, "7b6981d7e16c9880"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a74906340d7514db5b44860170a5e0733c67d3ce7e51bd32b049800d8e3c36c845560084decc79e6f7b4d6f2f127592e645891792d0f562b67bc8a1f63aa149d849de1fe032825f3a5d46fe3705024eb"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_4(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "091ba785fac466b4851ea2dca8b38bcd"),
		nonce:           decodeHexString(c, "9012cbb0f9b59cac"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "399ae61fe531448c8206d7ac127b6a4486adaebeff3567b6bcd0f554b82a6aa6337f7311465946912283dc3fb05cf89a74ad0a1851c5a20026ca990f1184a8a9978aad2e0c40b6c4e3571bfa0f144329"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_5(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ff076a630f39bd94d07e88d0232dd56e"),
		nonce:           decodeHexString(c, "f51a8c5d4cd4131f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "991d77b515bb73dec2226c2486e634d6531aaa6cef9f646fba5fdd0210834c730b7f2fa110ab061cfbb08a95b3694b62e81d0c6b82cf294ea62fdec094c3ed7834fbf9b876f1a63a583e2ea42a58ff74"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_6(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0f679e662f08197e7645763919ba08e8"),
		nonce:           decodeHexString(c, "187e82eb844b32c2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ff639c15f873d350f1778f1e9ea0a5614eb260ac453f5c5730bb0be9072a013f1596ae266cc09ff1c8a7fe520ebd4069248d86ea36de43580cd07ccef1ec8b6fe16c2a500424abe65765c41891972dc9"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_7(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c448624035df3b168af39755b952f0ef"),
		nonce:           decodeHexString(c, "6c32bd9dd5347f3c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3bb725633745c30a3cfe9feb0529532a65368b65d2e7fb990d6ba2f9bbbbb8cd66ec1af530614fe39b7ad55b2a6291791741f7e76116da1ebfed658ec55a862947671682d287c0f6e8ceabd50c4c3759"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_8(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "efd2561148bfad41595be969c3f021fe"),
		nonce:           decodeHexString(c, "7c7233e9e06fa189"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d9b6b5b0aa26a01de152ced94a83bbb6affdb915e488a04b642211f8e3b88d89f59d92f9f4fcd8998907bf148bc58f30115c8fff85c55713545fe77582d906758db20ae7537f3da6f9a8c994fa2d01b5"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_9(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a13ed8f604ac0346c2ac270129bb3578"),
		nonce:           decodeHexString(c, "9ca5f62c4d09de87"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6cf70e27a9793c14ebae73b653798c15e14e6cb9b854349e42d8801d49364d7788686f89c6ea2db7f038dd42432dd744bbc91e1fcdaf6eee2e76325db729fd3a99b96cd638c4a8923516fa04fd90eac5"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_10(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "dfe6ebca43ec46b8aac35333ddc47d44"),
		nonce:           decodeHexString(c, "5d03cbacd44db169"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1c1d756b6d5d475ee39319399200b7f864112454bf03cc61f6856c5d4207b1cd9792c0841ab3b56730ab26d95c360cc02ac4611ef47f80d665ffb8327e103fef246bf93a2a1038b2beda9a8a6d21c415"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_11(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "48e5fbd1acc601e02d81ce030f100155"),
		nonce:           decodeHexString(c, "a0fc82d8e692e69b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9eea525ca572095b4d0b967ca8fcc5dae6ec326a0b9bb63c4a7f08d1dad4a5d21c15cf4b8df9eb8ad26037d9dce9a7848af5ee8e30493dea7be2b1f1ffe8c4171c1311acf9821c06614838ae2b8ab7b2"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_12(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "dc8c369f6f659cf760710b1a69a547cf"),
		nonce:           decodeHexString(c, "45847cf48b89b3c9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f84562c15d3a3574a27d3ed8991f17b8e7d3b74a0650d6dc328d947a984257cf22f9f6ef5f5fb2080e59d65f6f2ca996b7b151d7b79bc98cc71e5042a10bc4b933fa5ca2731bfc5cc6b0b7ca25e6416b"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_13(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4e8b4b1e2f6a9fe8abb56f716bc894b8"),
		nonce:           decodeHexString(c, "38565e90cd131e3f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e046050ed2a14a564dc69b7e4aa89a998a0dc7325a05e4666b0cf611885f6391d98c31d8e2527ea296791d0c8f34522ced84217bae3eac5eb8732cbc4af07169e25f9fb6da4588e019969d79fcccd5f7"),
	})
}

func (s *drbgSuite) TestHash0_SHA1_14(c *C) {
	s.testHash0_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6fe9597b59903b1af4012a15368af7b1"),
		nonce:           decodeHexString(c, "fd3e84b3a96caaff"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1eee4c786476d488e58d0e065bb025db548787fafbe757f29ee2bd4781cf69216091ba2b68919b54ad3070ac72a2342320eb1e697b9115acbe07e194d060562e4d0fd966ab29e2c5e560574b2dac04ce"),
	})
}

func (s *drbgSuite) testHash2_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash2_SHA1_0(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f7e316b13117dcc18c4407b6a5cdc5d8"),
		nonce:           decodeHexString(c, "b80ddee75cf39a48"),
		personalization: decodeHexString(c, "816cb137ef64f9df71a3b3a0b3aaf9b1"),
		expected:        decodeHexString(c, "be888585d95d95269f002abd8b1e33b2cb667a96d3be6d20d784b1bbc6639347837d01d4b95eed8137cf29fe724cfedf8b23f9258480be350c3407973c59a9d7f3a6585b3c0e36a36c6234d68852acaf"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_1(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "033f1e32612fd11974c6992be28b009d"),
		nonce:           decodeHexString(c, "6b528c9d2accd0af"),
		personalization: decodeHexString(c, "1b1defb546206d555c55bf23a7fefd10"),
		expected:        decodeHexString(c, "f1e012c33a6f2a5f06f00ecae997e4d6c48b3e5b769c058951e3cb3cd1ae0794165b54d90f0df66a40025956eb76a6150a850cec48c2497d2d5861296877e627df2f064d3d7c12f9692d657f4eea7086"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_2(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b207ab840b357ae0f84d84fd91fe9db2"),
		nonce:           decodeHexString(c, "6ad6f67b654f8c1d"),
		personalization: decodeHexString(c, "80e0290e51b67e7a5f26b151717c11c4"),
		expected:        decodeHexString(c, "b1500533483e007f9221663f00e3745b151b8085229df05e90ad6e1b4f286c11656bcd13ec280cb92075b50c17f4cc9bf4a07d661cfe17518ec5d2649318b9587db88e093e981fc51674c9893044ac7d"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_3(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d88957fbca97ba8a2e73eb64a38ef31c"),
		nonce:           decodeHexString(c, "3e07a917c111c5f4"),
		personalization: decodeHexString(c, "70860be005c1dd2bf322744040e2b702"),
		expected:        decodeHexString(c, "d7a9f9c6ac7b5ab8e06ef707626888628a3fa9cc86385ab56e39901e8b720b932c5c77980a967f38edb95f19b3c0f8e95e0bfdc8fb404771f053da5f96e79d52945cb4277981a978cee80d84b286e1b6"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_4(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0a4c590ebcef0556af9811b6462b92d6"),
		nonce:           decodeHexString(c, "238d395f8d295205"),
		personalization: decodeHexString(c, "3df3ddb4cb22e2a6ccd685f094078a12"),
		expected:        decodeHexString(c, "22dfbc9462cff94c26d6073ce10949fb5cd53c6055d727b1be798c5b1d018f732139e74fd7df604224423a2cba88dfe98af88f9977b7d79fff08fc6cdefcad3ac74084bab8af04c5fdabc943d51eda0a"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_5(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f8d9705829d4908e43d0fb62f72b120a"),
		nonce:           decodeHexString(c, "349618dce551e7c3"),
		personalization: decodeHexString(c, "054d18ec3b0f5afc46f97bbc0c5821e1"),
		expected:        decodeHexString(c, "a43c01fe30b01dd1468e4c81f9a6b04f8c34f904b21e5dbe1890778c13f5b36a664837b98a1bb0f533653d6ac7e537a6a0c5c879baf45815ecaee6b03a677b2dc5cc12042f7ca161bf90b2a73cf41d23"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_6(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "53e093055d912f7fe96f0bccc46165c8"),
		nonce:           decodeHexString(c, "80f5977f22a096b1"),
		personalization: decodeHexString(c, "92ad83187b24748ed77b36313917e980"),
		expected:        decodeHexString(c, "e95937e34e5e0c547aeb0e8dbe3cb9ba5f823978e3a42255a0803d096bea9cd22f387b4d967ec6c6d5a66d62f45a837673c586351d7533472d3bd4fa149d26e15ebae9107146b99219d4faed1380a81b"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_7(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "cacb0bf934e427bccd07a6ed85d551e1"),
		nonce:           decodeHexString(c, "bc16676c4386ffa4"),
		personalization: decodeHexString(c, "5fd3b05beaab79953709ed3c60e71230"),
		expected:        decodeHexString(c, "60ecf6d89ae63b0ca3c395ecba93fa167776dd46fa2018f11b5d4cfb29ce1fb19d14ca7ce8887c5b195bd1bc0df473505d4b0e69a7bb54ff31c4b48fd06bbc783bfa85c8715aef86fdeeca5212a12bac"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_8(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b9b66aea1e07b60b30fd32ff2cdcba61"),
		nonce:           decodeHexString(c, "9b497bed54945c93"),
		personalization: decodeHexString(c, "edde3ae39578ea819f67b38e552be3b8"),
		expected:        decodeHexString(c, "7dfb2cfa0747071c97f11a4dda3780f3cad20b1c598d3e74b2a90fd39ff6b659012cacbf604b270762bf5008a9f779acbfb2c4b160d42285d63e5a9019626361bbd98bfad148cc81426cecbc076e926f"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_9(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "811bd64fa915fadf72c114b7b9a3cd40"),
		nonce:           decodeHexString(c, "8870420e78b33af8"),
		personalization: decodeHexString(c, "e0dcc2804ed07b8f4eeea4e40268443b"),
		expected:        decodeHexString(c, "7f4dbdaacedcce576bdfa03a80c3861cb52d8b14a6f63e034868dc3fdebb5f2cd1ae5790b755ca617c91714be92902d0088a60d2501123945d533ebc8b9a13fc81b6cf22cc0dca1c86f28aa5bf38a6fa"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_10(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "375ade012aaefb480dd9e01dcac6b09d"),
		nonce:           decodeHexString(c, "4b5218c585464fa1"),
		personalization: decodeHexString(c, "1d04beeaf792cf336013f6dfecf8bf37"),
		expected:        decodeHexString(c, "eabfcdfc396b5e9c10e09b45aa0fe978558aaf8a13c4ce7cdcbab0216882d39555b369c68e62484d1ccd51fdcc4cb61b22a0120147e6686c263c32f66233273a3011dad2428d4d6f5e9e20b9ef6474e4"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_11(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "86e59a0469837c69ffeca566656f0254"),
		nonce:           decodeHexString(c, "677e6cb313a34a19"),
		personalization: decodeHexString(c, "3809013d72fc559901ca1b06be5878f8"),
		expected:        decodeHexString(c, "8fa62314bf1a1ff584317996a13a648006958fe8cd5263c61a2c689419358dc356f34e1b1981aa8f4d1899a51fed1a9cfc8db7e84b73506377cd12366bbc1440321ef1d64a0a6eb0ffe25400eb82a7ac"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_12(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "66d1ab7b3115249361db41482538d142"),
		nonce:           decodeHexString(c, "a17cbbde7200d2be"),
		personalization: decodeHexString(c, "aad7b6a9de717acc17fa7cedc2858ea9"),
		expected:        decodeHexString(c, "18e3fa3d861ab810e4fcd05206b3ec4987c16000f6a84a28e2e89387b4010c840f796484d4730c5b3a46e37c99e5e1ea02a6d153d50e9719e0419e58e9f6254ba3b9ca80bb1b27f70a05c944cbbf9e89"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_13(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6149060c71c6d6fac0d3088369a9628e"),
		nonce:           decodeHexString(c, "6a97f8199b36b3ca"),
		personalization: decodeHexString(c, "231c6f78388fb63cfe9422ded41caa7a"),
		expected:        decodeHexString(c, "9d7cea9927e5e9552de9da9a8c291b9400e38fb32c30dc334f572bace072815bcc4806fc077b7ae6e4c82ed9a80b281fe186818c38bc1d0f16ce05ee644450d20de5ecdba575e436acb8526230cd8bce"),
	})
}

func (s *drbgSuite) TestHash2_SHA1_14(c *C) {
	s.testHash2_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f368b81501338a3cca948353fe16970d"),
		nonce:           decodeHexString(c, "fa9adae924417150"),
		personalization: decodeHexString(c, "dbad22c389c527715d21a5bdf38c1fad"),
		expected:        decodeHexString(c, "a18d57e672218956e6c8cb9901d02888f3587177c3e11e1a99ea72370347b953a9f122c9446dfa109723b27f36fbf15edf103a56741c24968592479cfe30bc0053fa7b9818e9debcc494db64d15d038b"),
	})
}

func (s *drbgSuite) testHash4_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash4_SHA1_0(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "66b3c78fa8c86dd891aab0e53f3606de"),
		nonce:           decodeHexString(c, "84142c2d1f1cda88"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e60d83ed6bbe75351f2fbd356a4bc8904b970d45982edeb898d0f2e6f4707faf497471c3df7460783e4beff0015d23d8c7ba270b6f562c4a7b76c0690b2609ade3fe372b53f1c5ff4d5f0dd9a3966825"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_1(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "22bf7d4b28e0b0cd263c114e594ce5a1"),
		nonce:           decodeHexString(c, "209eab8979e7b59a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4ca3bb37cf63c589edfd062abd77116542b5b753c3cdca97497eb6e13beaedde8c43beedbcf9a72cc8715070cbddf0f6ddc6146971b22ccdb1e3c9ee730da1b2126bff2c3cb0efabc871fea49470a7cb"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_2(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "20807f2c0e865514f6fcdbbbaac59895"),
		nonce:           decodeHexString(c, "e60baa003c2c18d5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ff897d957d8be86391546129ce6c98ddc43806784c24a0d3cb3080e9eac3c20605ff6d1caa24bd038d8b683f07b24f3846aca8236581b4c4d04eb8b87020c07b55888347a26382d62f9d10d4121a21c9"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_3(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "be8d9fec6b80914c70a9c28ea6bfe7c4"),
		nonce:           decodeHexString(c, "d6f7da93c2693341"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7aab1f408b871a494b9df42208d83bfef1ba6476a51cc2f3b70896816b1c1e410d506aacd3e1f8916dc8be0bce42f986f67bd2f9f02395fba1ffe499e5eef70b3bf743f519fd8ca1db694f8970f82421"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_4(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2958128df4649e1ae1f0dd5dd3740ce9"),
		nonce:           decodeHexString(c, "181ce194bb3aa4ec"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b7cda6ec47ed3ff8dafb78ed04fc5c0ec2d6ccb1869422665dc4bdf9842596eee00fd5934dc17cbb17c57fb970ce9a9bdfdca75aaaa4263a875a2ed012b6d56049f13b51e2a44acb37f922f8d13a4d19"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_5(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "91eaffb7b63f5dba7824d562f863b053"),
		nonce:           decodeHexString(c, "fe530ca5b6e3243f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ea3708f56e3a515b5eef9e361c4e0a8c385f38c17e8216f42a2db58e4ce5b48c7521b2ffdfe2e0be55d430150b6a2121de11ca7197167ec0d3bd6383be4b3b47d9c57fc224088d050114757115eee002"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_6(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "22c89c671b478015cae3da530356852d"),
		nonce:           decodeHexString(c, "9632ebd13ac406d6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "861aec2488df56ea7f0bc4bd142c9162ce6a64b73912d94981b715aa14dd1fd649ad1d86fc4a5365c2307d9f6771ddfdb72d6d89d98a10341e440562c761c9ab1190529bf721db2ac0d00cfb618e34a5"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_7(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "eda4dd917fd7765a8b102e831c39384b"),
		nonce:           decodeHexString(c, "255d248cdba3cf78"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "83263fec6c1c70cbc088e13dde4de31f142d7d2042457d79f0c033f0d790621f75823c55e41e9a4461ad7ccddf52377340d51f727b0f9b812d151036cfa686bc28afeaae995e130a1ee0dd11104e5ab1"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_8(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4ef4978078ec29820636bb177ffb4b2f"),
		nonce:           decodeHexString(c, "e4c9c345cedfc123"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "22c7eca633dab483688139397a2cd8c426506f60dde1bfe5e4e799999087f7f2046f7d8e0406179d4859ff619d70ce6db7573ec4a2085c4824d7e82d4fefa6fa43cfe23b245dab95c624866a72c167a0"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_9(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a2680750d8731cd093d6284f570466ad"),
		nonce:           decodeHexString(c, "7658f300666b66d2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "da6cdf3548ef1ae5955814e36c73b7aeaf5b4d533b037afce49bf72bf0416c911825ae05fd97cc5fed2301cbfb20545a20d56096aa474a39b3dabfc888a8a65ef3230e69f2ce5b0d7d30738f708d5f58"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_10(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "238f4a64db2cd8d140f9fbfdea102338"),
		nonce:           decodeHexString(c, "b19af3bc12552fbb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "27ce1efb77df4a848f0eb72451c0771f08b80f45e290091f8c3852fda0b71b281d01a070b380daf7efa94697806d3d138e945113002a628483dd7e341c7a9a6f836d99577b39fb0f9a732f14459595fc"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_11(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1a3a0333340f1d67dda715285bbfb617"),
		nonce:           decodeHexString(c, "374b8f8be9f2820e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f28cd91365d02d204fa71fe86ee40fb05f477864be556f2e8e0f212dcb1ed98ef59adde485cb28afee97ac44a789626550d533e6cb8a13e0cd039a7d56f270b892df742c499f5c609ef74454f1a8cbf5"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_12(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d622c47e9838e0fcd8bfb209f42a3c29"),
		nonce:           decodeHexString(c, "b29bba7cfeba90cc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9340bb4692e52792693e8edc0c2883f54f8b93942ae36f06d5532964f1f9b581c02a86b9520566f5f796e3cb2194853ed9ec18b693bc7ac9a83c0f8db896d93fa20953d459afe443b63d1241d0b47cc1"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_13(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b54fa4fbefc63f96a45070dba669c3fa"),
		nonce:           decodeHexString(c, "dc9bb5e014df5f2b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "07452aa85d2416bb091b9cc8f49add2dc897465998782a01e628e9fed6f0f185fd5d412dc40625dec710ebf26729d0346c344ef2b1d3d42a9ad60f05386413e40978d206cf3fc8ecf40950a280e4477c"),
	})
}

func (s *drbgSuite) TestHash4_SHA1_14(c *C) {
	s.testHash4_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ceb354444d1a29c0c3e8a1cc24d02846"),
		nonce:           decodeHexString(c, "86d3fd9fc51f8b19"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6f90ad611987a37bac54bea0782ac78215b7d17ecdd3991a81a36d0e263c6f0dda2c102cfba56b26c7b74b5dd2548be9bc81c7958e9d19821583c6f388132b9e19ae7609add9a296c1e92d66a2ef5464"),
	})
}

func (s *drbgSuite) testHash6_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash6_SHA1_0(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f0fd2199c6252628639976628cb71c39"),
		nonce:           decodeHexString(c, "e2daebbc0ce7a183"),
		personalization: decodeHexString(c, "5fa5eee4f36f5d42f593c57de87543ab"),
		expected:        decodeHexString(c, "3e1a75df8612b40eceade7a8c73f0c11ca4046a3a13e159af3fb9b969f38994fd1bf6896a268125555934aeea0145a8a83a780f2d71c12689caa9faec6d0d198758d4a0664250bd4d89fe9614adca3e3"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_1(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "75b8f66db02e8a39d48ff6bdb864392a"),
		nonce:           decodeHexString(c, "19883bc681293991"),
		personalization: decodeHexString(c, "1c5f890dcf7c4c81fbe59f12dfa487bf"),
		expected:        decodeHexString(c, "9a4d78b6ee54bc200488fbc522d967c6e397b12f29dedd2a44b4c2d2a5e0c5de7d19a5cd778fb0a0cbe1d9893865a378380d12b0582c35befebaa135da44dc08403165a001bb3180cfa5644992112f26"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_2(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "8ddc1d1aa73c797502f971bbd59efec6"),
		nonce:           decodeHexString(c, "e5b54a7af76fb120"),
		personalization: decodeHexString(c, "37ec2725347b4908abe8f69e22836d4b"),
		expected:        decodeHexString(c, "bd96549ed8c094bb043870424d38a71479e44a3f47e92ec010a1018ad5eeafe832fda541553948c975540ad8e73acb364868149504df3574a04b1c34fe7bd7009211c27f30cd34c1fdd410b83201947a"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_3(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3c03464129b13d93e4bc07f5731a59b6"),
		nonce:           decodeHexString(c, "5ffea12fd5f62dcc"),
		personalization: decodeHexString(c, "588204a022727afa3f94ceb7bb8edfbb"),
		expected:        decodeHexString(c, "17a2fb65d66d8a7f31924638a9445136ca6e5bdc3599a5501ffe976289297be9ee0028215901b4dfe66430fca4b0e4c8f0e0c74d9869b58c7b67b5fac560349f2c60318c79a7f3c143c5f61caa3714e5"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_4(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "05b17d9962ee6ba8cfd6f5e849b8457b"),
		nonce:           decodeHexString(c, "f6d7a5aea88a24be"),
		personalization: decodeHexString(c, "13d9c60de4b04fc63d07485d0eb2337b"),
		expected:        decodeHexString(c, "80a296e2082324e1d7a850abb5eec23694ae695345d57f07f3bc46c42e5d8012b37dadadaca5f1fcb0088c590050589e5b10f8bfd96722ec0c567b90bea565edbedd415bab2fa630d94738c444db14dc"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_5(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e536cf0138566d88525565c6b6cd2f86"),
		nonce:           decodeHexString(c, "d048a518569027f9"),
		personalization: decodeHexString(c, "68e2286ed468333ee27c573453569994"),
		expected:        decodeHexString(c, "615384d1982f75f8e8c008fd656b3be095dc6a1b15725cdc2206abb5b0e7d72514ee4f477d120a4b1fa81c40ec88bc7cb4048df83c94c7b2b6f7fd916ffc176781517d4decb9b8abe53c2289db4b41ef"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_6(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0f48eecd9913b7104ff8b8800a2b1316"),
		nonce:           decodeHexString(c, "6de036fe5a201b5f"),
		personalization: decodeHexString(c, "d00c237030adba874e1e6bcbcf2a47bf"),
		expected:        decodeHexString(c, "36b76562ae5dc30545e6ce14ddbce12330f1cfea88227b8ec11654e62b4e81063a5574758163f4478a2838af2583ece2e69bfbf1450f12ac6e37a6948e7ec36716db22c40565b1a16a4b06e26659c34f"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_7(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "662930e8bae14d3be87d9654635a2022"),
		nonce:           decodeHexString(c, "3836f4d7a508595d"),
		personalization: decodeHexString(c, "7460d16da01dfe504870de63bd4cf60c"),
		expected:        decodeHexString(c, "c99b9cea7f7610d54632d39b457525dff4f01c57989f50949d1857998f4aae14aac57a1cc7ad5138e970ca678a7d4cbd42c9d961f15b45665dda08ab2cb1eaff6890c7b62684e294f6b37f89f1119835"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_8(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3ef096ac9e72a961f56890f4b523f95f"),
		nonce:           decodeHexString(c, "1c100401a49402cb"),
		personalization: decodeHexString(c, "e22d6f4b7fa50463db12138044ccfd37"),
		expected:        decodeHexString(c, "4138091774bbf394d90b33c1b66017d842c7c5e7221f57f55ef0d60da4398c50c7d2ec9813177673b9f336a0b85a25f88e2156ea5fb2250b95ebc879a5ac58584af8094c31d771835e2624d11db50118"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_9(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a30092b4f481c74efa85a2836a92dc2b"),
		nonce:           decodeHexString(c, "cd22e3e3e7021c08"),
		personalization: decodeHexString(c, "8602bf589cf670e6ba787b32153b2d3a"),
		expected:        decodeHexString(c, "678f1bcedbc85c2002e04cf78ba8a89e7b1d56fee420d215a0fbf33e301de3f075acdeb3363b3c6c5d73ed1d5a284375fc3b8b4c73a27405d75703ea6bd9b295148ba9b703639cffee9b378082318940"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_10(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2516c22aa5aecfb06594db8039fbab26"),
		nonce:           decodeHexString(c, "2b52ac3399c0d7b4"),
		personalization: decodeHexString(c, "ed8cdbd10a1fc7c4280f399a93b8e47a"),
		expected:        decodeHexString(c, "b926bdf438c6e306a9ac0084294c1a97ef1368e106244edd4066248a20d4f8d601e43583b682afed5189f51b6f06ae004414cc668c082f8845a7075e5d3923158fdd8377d17351b9d924c8b8f38bea4d"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_11(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "35edf013d80eec2d3b785726629ee074"),
		nonce:           decodeHexString(c, "149c1260bd2b1d9c"),
		personalization: decodeHexString(c, "9212a95a4cf0855e3ee8c5257914ea36"),
		expected:        decodeHexString(c, "910bfa602583b1fa5c05918d3453ac7efc163040cd345fdd2b5b342d0dd6f42eb2f847932712cf1219ae29766532ab16e6d8112cd6feac569f3e9942c0450b9fcca22cb9504b289094c96d5d1a7f7c3b"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_12(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "88ebea4ad88d9e35187cc70503d773f5"),
		nonce:           decodeHexString(c, "53ad0f40facc3f98"),
		personalization: decodeHexString(c, "8095d8ab6b617fa1d115d1bfe517f4ef"),
		expected:        decodeHexString(c, "256c837781fa60cd1f775db1d4d7b765adbb3bb5dacc1716d39efd718f8e999566f09cebc1d8d038c63a3192d6ababf5b3eb38f8795662be594e63589d7adce57884ab62dc4099c49c1d25e88a99283f"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_13(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7e9d7f2d749fd44674714d0f6b098b47"),
		nonce:           decodeHexString(c, "2970b716b2116895"),
		personalization: decodeHexString(c, "57acd2520d9ebfb762b759b998fe5f36"),
		expected:        decodeHexString(c, "ea846303d9e1ac8469fed0163deb49c6d6f69da2443dd31b66c72855ac30e7c02e06558d78e733d9f5a0f6e52763639cc2b8c4c0e05b8c69f6a3dd84063997663ed5f4e690ddbb8642380f8e8c9aa8a2"),
	})
}

func (s *drbgSuite) TestHash6_SHA1_14(c *C) {
	s.testHash6_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d20b5ed70118ecfeb2dcfe8cfd7e6b6e"),
		nonce:           decodeHexString(c, "8368ee0e29d35c67"),
		personalization: decodeHexString(c, "f189a80d5619f53cce878ed57522a468"),
		expected:        decodeHexString(c, "aeac5933065c33ce2ace2531a193e367f73c83fc328f61ee2627f6f3841914c6b8a3ff767f96b3c3b685bac931af9ec10c6f3efe25b5109bb647b120e3a3f6971a4ec41f4ef0c7a900fdb09d7ff3b247"),
	})
}

func (s *drbgSuite) testHash8_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash8_SHA1_0(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ac1f51d43fafea519453eaca3ebb2f95"),
		nonce:           decodeHexString(c, "a6666fe26d8702c1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3ea69dff9d5633699d27fb4bab4ca972536daef15de584427384d66f00312c31a21ef02d88ec9ca79583b69fca776e2f67fc6a9a1ca2c519317d2523793dec48e11cdee28b1fc610024b03bc234619ba"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_1(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bd6768788f02e84a2fc3580a87b469fa"),
		nonce:           decodeHexString(c, "e26b8c9c4bc6128a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d4e900b0a6ed2c88ca0b28ee9212faf0657d28d7a53d393f0475c43ce5f0f2207a3f18cdea08d96a2a533647a69005b675758c9318a8340979c4e1d0bb46040e3f656a4862d4dbfd0780cae9baa4ab5a"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_2(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "514cb05af192b0b04435e21a13de0a2b"),
		nonce:           decodeHexString(c, "278c9a83acbddaff"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "31f864417ac27992788bcd5e07fff7886e969d06e747fa5c73a48a194a54f612327aecc3127b1e410a5d3f564aa56b978350e93e2b988b99a6d31cb0fd8b7406aaa2daaa5a9ed66fb746e3a58cc3614c"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_3(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "8a0899c465949b4999619c06086997e6"),
		nonce:           decodeHexString(c, "e1ad18e17645df1c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "39de5b2b5dff4aad99cdfabcac9d7b3c0d0f9fedb1c1f03704b3b5bbd8c8ea2cbd759b4e668d12708550bad5d5d315acec8c0ab952bf2ac869586aaa27863d68d9183960d508133e4adb9c8af3e41f53"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_4(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5dd1da788775b4a30669b92a1c992eba"),
		nonce:           decodeHexString(c, "b43aa41b02eb42cf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8a4562f76621610004f401fe72f5d1406dbe6adaebd926c2065f57466bd788306b20d13c16d1e7627cdb200c2581eb23b02d588dc4e5251d610562a084c18940f2f4d5ec306c6eee83ee257b93a749d8"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_5(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7c4637dc79e29f7b857f65700d6fa891"),
		nonce:           decodeHexString(c, "8ab36789a68a4a94"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4dfd7bdee8966c260331adc8a1763bd4d15ba713d5ce7e291d274387d59a98028b3675c5a58c237d8f40638bfe4892a16c6f76e92e8b4335f28a93ef41018e6022a9072eef6cf0aa833d80f056a8898a"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_6(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "46f15e711ddd172ed99469a9d1758011"),
		nonce:           decodeHexString(c, "b22c685bd5463521"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b2b00d3ef6a9ec8a8ccd827f828fd56556ea3dbdc47a73a315f07253d66e14f8fa020e5bf025c7adc5f0b81b2cd992930e43e4b4e2d8dfb926fc387f9fa98c58f29f267de1a8235c5327ae85486fa3ba"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_7(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "89486609b21f4a77d44903309238cd10"),
		nonce:           decodeHexString(c, "2c65e57dc62b7182"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "044eb722caf85f4aa4586459925f7768a595674092f559f04d78ef6d94db382bb1ebbb7b9e10ba28896e84fa54b100715f6de5d9c313832338307cd480e7caa5b958d39f4899ef8f1e0926e9f9de9642"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_8(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f1322328dff8c7330d7408315f7476ad"),
		nonce:           decodeHexString(c, "3026a9607bc8d5a7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b5fc472a4a35d59a0f298ea5fc1446d150820f8c78088511a45397f47fce79bdf5fd62af96e7d97a83ef505459aadd81c244bbe4704196bd1f3124f6d421f7a82bcf8be40e5460f0f74e6ca8ec39d7a3"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_9(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0cadd9c27360ad9cf3de96b62056f6c4"),
		nonce:           decodeHexString(c, "b2eb6a839574c019"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d28a38ebc8aebfc41d58116df36a3533c48c877bb8992c30ea17b46ba2945967c8178a500f271197c67e8766bb552df5970f07a76a4d8e57fd6467b4148439dc163cf700781c7bd81c1d1b2fc3848510"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_10(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "12c2b495cfa55a4482dcee035923e85e"),
		nonce:           decodeHexString(c, "cb5b88622d933589"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7075312c4dc21e54a2a83346ee8d3710a2eceb34c02dcdab3817f8a682cc0b1bf7b1c777cbd2af1e454ff471129a94059a253c82955b5ad9196372d1c93416500a65f962151a32c63bc6bc6b8443ac9f"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_11(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2fea9691d8258763d5d0e86954cfd8da"),
		nonce:           decodeHexString(c, "3ef71a3017eef25a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5956ec9a16bc61b84bc0014eee2f5615cc259008bab23ad6a00ff7e36687e0f6ee90ea4b90b3c7a9e90c8f9d844c915b4caaea7c158b0e9164d98d2e9531f02f5dcb36a84bebcdbd7b7a91a7f8e13538"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_12(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "624ab76f3291da22fa54d49031fe02fc"),
		nonce:           decodeHexString(c, "d401ec34a7e4ff2f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8b862d9ba4adafd17a458c585d8706f1132aeed8aa119ddaf4412a4a5716ad442c974f6fb367bae76fe0f33f84d3117887ac4592dfbc8599839b8e436fb22632fe43a8aa77ffd86d09b4b378a39c6137"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_13(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1da2ef227cb78db77ffa872e407624c3"),
		nonce:           decodeHexString(c, "3c17de55283fe66a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "682a991fe836c32b611340e698c48301c4c0b14a221f2f75e37e68b4db4cf9a26a465a8bbe55589a8a5d006093917ce859f93b0f016d43e2eeb4ed739a77e65fa5c08806ce7a89d305405a720e296d25"),
	})
}

func (s *drbgSuite) TestHash8_SHA1_14(c *C) {
	s.testHash8_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b7ddb82f5664834b4fb17778d22e62f2"),
		nonce:           decodeHexString(c, "52461924becab175"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8735d06e26814ee54b5daca4e1da3e321a5a19b062ec0c3afbe3b16f23332a687fadb29e65208130c3d667c075660ff70aea96430fee254c472686b8e82ca359a57bbdc3004bb3eb641c1f97e4b19e02"),
	})
}

func (s *drbgSuite) testHash10_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash10_SHA1_0(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "91d99c511c2f1967d31d20b313e5382d"),
		nonce:           decodeHexString(c, "1eaf7f1d0aa36a19"),
		personalization: decodeHexString(c, "31e6b04d73b1a970fd3dcd8f089e4402"),
		expected:        decodeHexString(c, "1c95fb985cf17cb9cf0bcd53959972c8fd4bbc725b2ecc8ee843d55e494bc7684d1765931c173a838dc7b4344cdc14586409066d4f1d54ac214ecbe5bd139c65abe199525fa8ffbef59304e47baac9a9"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_1(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e677281e871c28d631b2361107240c22"),
		nonce:           decodeHexString(c, "87468967e455d2da"),
		personalization: decodeHexString(c, "114ba92f794518015c067f7c358c4041"),
		expected:        decodeHexString(c, "59584ff00c44a0dbd15c1f35e050c184e8d587e8859cb061c8409c454b953924f5e6ee1fee4d763462dd6a29a6cbe4a373974c01d688ee5728cf712bcdc82cb0ad15419229b8cd114ac7851e37a3d7b2"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_2(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bd4831a85279fd767caff44ba26053ae"),
		nonce:           decodeHexString(c, "9e56a808711827f6"),
		personalization: decodeHexString(c, "69e0fe7b804c65bb8c7ba89a8b4c7c6a"),
		expected:        decodeHexString(c, "7d1fe8c9de79611d57b51297cf1b2304591504a04694e60e21fdd70f3d782d17aea35173efa30ef2f235894d696f1a150bfe0396271fd8cba062823580a9e1de8e32d962bdcb4b4f47b942fc39849abf"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_3(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "46bdab811f76b752551a2b11b708963e"),
		nonce:           decodeHexString(c, "8be4fc159fdb7515"),
		personalization: decodeHexString(c, "bc4f4d95927b1aa666791c4aa818700f"),
		expected:        decodeHexString(c, "c535859cef074916f7a3785537285be385893822a953fd41aba600f56d80e6efe2952f92ece5cbec15b2b03a229080de98c6ebda741f19d3557015a90ee0b2a0de9c0eb64c8b8af6dccf8f74e7ca1c1f"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_4(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6701138a46b148a2688879989ab4da96"),
		nonce:           decodeHexString(c, "1bbd5c7f095534cc"),
		personalization: decodeHexString(c, "ced04a25a8bdedbdbb28534376bb2414"),
		expected:        decodeHexString(c, "b4c2f0e989bd858ed16037f8344557b0cb35d044191d680cb1afcd2d8563686a92fdff5e1331fd3fc87d14f3ba10eb14ee6b16d648181392335c0ee4c2ab275881bba36c553d34810b8c689aad017343"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_5(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9df820297bc0016d246a93cb64192073"),
		nonce:           decodeHexString(c, "f2dcff78c90a15a7"),
		personalization: decodeHexString(c, "7059433f58646f5794ccf171ca188a95"),
		expected:        decodeHexString(c, "06a5c61c664503469af0ff6714ae87e8a76996c35d80d45b0208bb26735b9e4630eacf50cf62ff3530214e8dedbe4240848638eb41783f8d1d3efa6399bc1d9554f5b5a386082498a33f8ea4fa5309f1"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_6(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "244cc3baa000afa7d547511770165f70"),
		nonce:           decodeHexString(c, "c583942d888828ff"),
		personalization: decodeHexString(c, "53ab8f3e392696ffb6b06f45af125656"),
		expected:        decodeHexString(c, "67d1735a4cd37be67e682ee5a3c99aba138b74887b90c8291e9e4e7156c786ef5626ecb2420e47d64b6a044fac951ddb302d184c5ae01f03c42ecf633a1e539fcdb4f926a472c48dd8ce30914cc229d4"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_7(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d8997d36ed9d8d50a190ed4ff8160acf"),
		nonce:           decodeHexString(c, "d9b4add5ce5a28b9"),
		personalization: decodeHexString(c, "fd9f0cfdb80ee581e83676cfc4fa09d7"),
		expected:        decodeHexString(c, "6850db84a868eb1f0de75a3881a4ec79a1156f30b8618ca16e55175ab6f840932d21a340d9465fa12a587cff1f878627aad2e9c82784f650dfcabd12b36cdb1b10a2d1751d9756b5e289e8aa7d2302eb"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_8(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0285da431ed1c618078e1b4ed9effca4"),
		nonce:           decodeHexString(c, "f10a22cf4adb6c3f"),
		personalization: decodeHexString(c, "073b537b35c6a497e478516ed79783ee"),
		expected:        decodeHexString(c, "12f8f357633b5c769665c333b975a81ed97f940f50094bdab1e278126356f9f9dab21a2fea61a0f491143978894238c04cf4956ae8ffabadb6abf0ac4efef76d5a581ed797948c6672008a8973e97567"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_9(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d6b735fda7419f43231d9051d73541f6"),
		nonce:           decodeHexString(c, "7e095b38be8ec549"),
		personalization: decodeHexString(c, "27872af730f3ab90a3a520e324c908a0"),
		expected:        decodeHexString(c, "f684248e039a9919773e178086deb5581052ee66ec06236a4972e4459ae16f7d5de66c7423189f12e1c9a105d1fb1500010eb280f346b45d96ac90389ff5174cc00911ec3a8972ed028f74eba8347732"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_10(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "8706dece8a595f0c4885c14695ff29d9"),
		nonce:           decodeHexString(c, "96587c6f34d29e6f"),
		personalization: decodeHexString(c, "bd770a8f31f78482b2ca2e1e4b24b33b"),
		expected:        decodeHexString(c, "4d30523fc574d6352bada3d2567178c702805adeef69bd6820ed97146bb30d09c16fff502089a90f9c993686c72c401825a83f094e8152af221d71d55e6882a10f4d17aa08dfbe54b263d2baae0b83d4"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_11(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "32526f30f361bcd4df5802724442b01d"),
		nonce:           decodeHexString(c, "1929dfb17d500442"),
		personalization: decodeHexString(c, "f945c1e2eabc435193134628bc8c03e1"),
		expected:        decodeHexString(c, "e896265457d9251f4062a14f08d16ae5c4ff370b4675f20fed9511ead999a5e4ab7094ba6678e69abc7a95916676280c7f78cfbed7dfcea46493f57634e93dd18700607e1e19b78a57d1e47ba079e405"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_12(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "874b0dd42d1ddfb3d3835271f5731629"),
		nonce:           decodeHexString(c, "87b6c89eda28478a"),
		personalization: decodeHexString(c, "7d5b80247411c067797dfc10c1668775"),
		expected:        decodeHexString(c, "699723859d25ab759a9b8b3728a67bf639e02b805d5ea7b6e6d614ec29728b68d6d9ed29a93ab1f1c624d3f2d5ca1826cd09cc1c5555604537567fa6fdb1f6622d29f2d81d1dd7c23179d75c43d72f06"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_13(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5162636e7b1a5cf9b1c14d723bb3eeb9"),
		nonce:           decodeHexString(c, "21e5b177f119c477"),
		personalization: decodeHexString(c, "6513318d80218546385c2afc56e4116d"),
		expected:        decodeHexString(c, "c295e6515abf2598122752b24b4bb1493d821e6bb19561c2690dfbc06119c86539c0d21002d2448474762d60751ba8a58165f66fcaf6342dcd4e468363462f94149da6636c548fe5b9f2aad138a54a43"),
	})
}

func (s *drbgSuite) TestHash10_SHA1_14(c *C) {
	s.testHash10_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f8a1566d14fff92e8de379d168ff3cfa"),
		nonce:           decodeHexString(c, "4e838a124e4b53df"),
		personalization: decodeHexString(c, "163e393b290a4d390ab0beb392f52d26"),
		expected:        decodeHexString(c, "76234afc296ea36a44254f999ac31fca258a24427cf4bfe2c54495fc41478ec4a00b540659b3b9461cc6188bc1f57c19ae414bd18aa81eca7b9d765a784f0ef24335e46c2c77b8dc915f5d12c26bc653"),
	})
}

func (s *drbgSuite) testHash12_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash12_SHA1_0(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4c2fbea166f7920af0f0521e22487266"),
		nonce:           decodeHexString(c, "ef58d39807d588d8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "54d8c2266c0fa6613e76768856883da0bdcd0d6621407e8599451e2859b5d0b56e588089e39e229ddf84f3267ba5acde539e5c0e4d33aa51e18e0758e7b52a240d3994a77edc4bd8d3c254bedbbe27f1"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_1(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5d839ad9eda931021901b262e48ffc81"),
		nonce:           decodeHexString(c, "efbee0dcb5601086"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "de5d1198d1da55806056d79579409fe72415d181148db8273b0cba1e9ff0a8f4552047ded2f565e6ff7035ed420478ebbd8e4f0e301de8a5b558f2373a57708e05f0017748c40f7bbda2d297be23cfdb"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_2(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "803171f06759503e5aca87ee10d37fbe"),
		nonce:           decodeHexString(c, "df19527df6da466b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8f71d35e91480b1931174d080c905abba4e1179476a35eaffb18df538b397d45decc4a4c9fbee8e8b74911e7e379d67cad77873671248c65c21c7f93d9c2116284e795e941c8efaf2de0d1474e81e70d"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_3(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "beb33d42e9be573bd9e1c9e1d6aff44d"),
		nonce:           decodeHexString(c, "e42f6b8177fc417d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dfcac439738b84d03818568b2bb9d71a0f52f0b962d93d913e2b909ab464a378e003640ca3addb46f1f4607543f2985f561fc4def408b47fcaf838e25468fc97dbcf057edd51d88c342c81d6ce92b020"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_4(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6bd49cb7c8ac1d6a04db642d8b462ee7"),
		nonce:           decodeHexString(c, "73e7cadf29be5f35"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "aa5157bde2c8332f7ede49b6fd590d90dcb637aa2c62272d721f0f80ba8fa83f616b901dffe3b9e236003ad01a959d95bffb1e24f18cb4445d4b64ae2b5d1e78fd0b5830fa4aec73ee189f17bed79b80"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_5(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9306eb88e8a62744ff5dd01d92e5fc4e"),
		nonce:           decodeHexString(c, "582de62d3c45e9c6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b73714fb42e91620d1b81a80a416f5239ed3856e4f7320fc5726a63207707710803ea3fe11813e6bb7d5c2b9565eaf059d8f3384f6dd1d83f6917ff3efcf9290e34752923e54774a103d0a5135ef2fdf"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_6(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0283592b01b7d932dd79be815a325841"),
		nonce:           decodeHexString(c, "4fcf02c7764c5a3b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2470de1ff90fd84c4e17eac1dcff65634799716aa0d027a3a9abdf92ae956a18abe8b23742bbf8317aece6a6d1ad2e0041fb112b7c857150f337a15927095f0a9e8caa42b347c65e750b0737b0a70241"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_7(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d1b81fb414d0c070ee8469b190c33279"),
		nonce:           decodeHexString(c, "43f72e66358b29e1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "caad4638fb82e619665a300cfa2f88234eb65d414b9d1ec9f9cbee9429626393366c8148be55b238c08ff48935738ca6e840cce024a5805de92146408993547380cf53be7c6e455daced820fc8fb34e4"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_8(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6123ec40c42f3bed9cd178d4004ee91f"),
		nonce:           decodeHexString(c, "0264712f52edb23d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d58b3f091a967ca13b55463e8529045d60a60b9602f43ee7bee075471eef83823b2d540b3ece6d637e1153579e2c179ec155250a18c3ae46490c61e4643143464dcee94c88c2afb41b7d516f65f215fc"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_9(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b1e632849427bec02897718c3df8865b"),
		nonce:           decodeHexString(c, "c8c1c64bfd80be1f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4985777745c4fb29d01967570937da62a6c644881a4fd03e1403992a6a86dbeb98442852728844429dadbab434a0b03594c8d6ae41fc2b4a9ced5f63b4ecd8d4064f80acd3ef50910c9d84a0290c2615"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_10(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f6b732cd0aa7200aee6784552d0c38af"),
		nonce:           decodeHexString(c, "2d69a600a42674ac"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "47e9738a0d0e09ba786d5c9d0a14472679432aaa363bceb12bca2d85248d61cfb2e4b712ea4ccefa14820227db3a31f063e98c40ac21bbbfae3d6326c2fd59046d8864976bcd517827503362429748bb"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_11(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "49c494013bbe3320859fcc0cf73cd472"),
		nonce:           decodeHexString(c, "83f14a32419cdae2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b1f3aa9a90440b35ccb797f7e0b7b4b70715796f320439937b5e7cc69ceac6691d3cc262bab35708ac845d9c44c50a0d45e29401e52be422460e0c0f6b983dad6d5e61f7f6929d881f430348bf16de94"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_12(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "498c61223bfaa533da307e7fd79b776e"),
		nonce:           decodeHexString(c, "b362d90663b1c921"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "80a2a0f2822985428471bac8c5c46cd5dbee0f9fb91d08b9ed69a557700134738752310eefc23ace021fbcb82cc67096b58aae14463607a5077072ea74af4bfde68ee91f89231bd3bafaeaaad1406b39"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_13(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "33f724717aeff485543ad0d5c7703356"),
		nonce:           decodeHexString(c, "ac4558a22aaefc9d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "810be2ed84cb7bc205f6ba6dd691186e454da073955ce6e54f9b945445ae698a3d4747c973052aa1cc7e212208ecd4cc58b2f30ff6c4f2acdcabc3727e8665f55de7962f6fcbbeb406869924c6166ac2"),
	})
}

func (s *drbgSuite) TestHash12_SHA1_14(c *C) {
	s.testHash12_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f484b922f492d19b58407c242ab90e76"),
		nonce:           decodeHexString(c, "8952a0a4b666b0c8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2d77235fa273cab3c1bb176d44817cc25300b3f0172a0b5aaa66b282c015d426edec5f1ebbfc0269956b85994167992a71002586923ea234be6c5df09f47d89132e440827b89f7ff97e032b3f74fe32f"),
	})
}

func (s *drbgSuite) testHash14_SHA1(c *C, data *testData) {
	s.testHash(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHash14_SHA1_0(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e4bac955a3e820e5895194e2c13ef9ac"),
		nonce:           decodeHexString(c, "8f4d177da65ed48e"),
		personalization: decodeHexString(c, "06c4c601145a9d137a490c7bcd22f41e"),
		expected:        decodeHexString(c, "e967d2fa2478775342ec5ca153e5cb13c66134d4e17a89cf629d7845f8ce268332a04f0d7e2282368f4033994f20bcbc7d4397d5facc448842b1e9246c24a68e029fff99e90853bb19b7e6fc9f29e4b0"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_1(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2e9518f753f59a4a53fdac88af187dac"),
		nonce:           decodeHexString(c, "9b926c223ad3efb0"),
		personalization: decodeHexString(c, "bca05ffdbc7d8b928c7979c083d65784"),
		expected:        decodeHexString(c, "055fbe1d5e276068f7883094c3df679da1bfcf38562ebbff64456c2ed4fb03985bddfb352122adbb0bdd92672d454f7db516209cfafe289bd28bdbc50bc22f03912ea694ad2fe1c9f2d57ed39893e801"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_2(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "299fb649ae002b0bd29f23fbeb221f08"),
		nonce:           decodeHexString(c, "6140ec1a5899ebab"),
		personalization: decodeHexString(c, "acd2160d088532e0588a888c5dba863b"),
		expected:        decodeHexString(c, "1630fcb482956b0f9a1f2c248d06d8069669ab2c90aa390da636954945312607d645a6ae864c3e3f823e2aac900075728548d784aca351f1f098fb401fd7e4141e2a374c8f252bd72aa8f55dc014a68c"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_3(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bf9508828a6df39ce1957ac53a216ae8"),
		nonce:           decodeHexString(c, "6cf30f3288512f8c"),
		personalization: decodeHexString(c, "133f95816e48f9c57b5edbb22c6ff97e"),
		expected:        decodeHexString(c, "478399dbad14a599027c8dc6bfd79d26ed36997de488de51b56671d1c1a3fed83075fe3b5c930c5a0feb42575317e8c64956207b62414896f599164e5da7afa69d07874bf168992bba0a9f9842fd1d21"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_4(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "15ff59f07c18ab878336dee54dcb47a4"),
		nonce:           decodeHexString(c, "396376c48a1ce343"),
		personalization: decodeHexString(c, "924ddac14f9611ca3f81712021c7f7da"),
		expected:        decodeHexString(c, "76be3c7f886ab38c1f982cd68e0a2c4485cf69627d670159673b9f3185de190fb8df92e51643c661ee84faf91e4ae7ec26788df47672a1e3c483dd28dcf48841c9f910fb0d46ddda6f16791afba73a83"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_5(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "dc5fd0fcab490b8aec8db121543e750c"),
		nonce:           decodeHexString(c, "b0ae04cce14b1d5d"),
		personalization: decodeHexString(c, "159d87275dde2e356fa81d693c5171d7"),
		expected:        decodeHexString(c, "bac7c6c0fcde7784f561f66b07a12422a3c745d0ef4d17433ae0e16a02e08d8cdbe0ed5a968964ff0aa9dddd9abd5c55904ad7da95f9ca6f745f0ffe4be0a0a880dcee0a631d3492c99f6cc5e05457c9"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_6(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "eca59ee314b9598f2b9a79b22bb791d4"),
		nonce:           decodeHexString(c, "8382ba70ecce359f"),
		personalization: decodeHexString(c, "821de63abd7ccf3f74dc9e99a5f6e398"),
		expected:        decodeHexString(c, "1f35097f7c0806a6fa9399da1c45e8eaa07c6b1c8fc3dad96667de01a313938e376490e214207f79e10c2434380287b5f72c67b9147a8f5682cdaa041abb7bf324464f589c06afe1aadbd474aa51497d"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_7(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "243dec1c74b6daf75c9481de3accb394"),
		nonce:           decodeHexString(c, "63a8361f5b8c9c0e"),
		personalization: decodeHexString(c, "79c60f83c9266b48e351648c991cf4d5"),
		expected:        decodeHexString(c, "a85f1e42f6b73b34fb63e5623047d2a16e9e03b9ab8b2bd035669b7edf18a71f7ee96de85f8b2ceafbe1347e9194b3a62df8ee5e069b8d1f619c2050fcf9d2db1010a493e9c0d36f46fb98406083f335"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_8(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7fb905a5598e3133d3c47489b11eaa17"),
		nonce:           decodeHexString(c, "918cf0f9152b6294"),
		personalization: decodeHexString(c, "2815187728790a95bb6d22d7b092d2c4"),
		expected:        decodeHexString(c, "1556a182045706d3c860f2432ec0bbe968955ebd528c2e8fbcc5c104be889c7b76ff91350ee5ba6908c7fc18f8b11afd9bb9057281e462f5350fd678e5d872df1991017717197c21b1374b79f6f7febb"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_9(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "01fb28bfa403a719e1ae11f61aae035e"),
		nonce:           decodeHexString(c, "27036cd4158f1b7b"),
		personalization: decodeHexString(c, "6e181755168169ba43c269af58ec40fe"),
		expected:        decodeHexString(c, "1de83d60a0e36f7f4f7edce03077bc9268da4d64edd24859d21a190c06a09aa3a5c791116ba12e2a13ffa5e190d1338b8f655a8d9822b84d8650958bba819bf9b41292bf5d66b49ac6ccc02b9dfd39a8"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_10(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9649465c60879b3725b92aad1fa41077"),
		nonce:           decodeHexString(c, "8e35b287bc32c273"),
		personalization: decodeHexString(c, "361ff99634ed9541e710b951b0105cd3"),
		expected:        decodeHexString(c, "0211e8083c4576a815ab2d68f1c4ae8979198d8e44a5d14f80987695a397cf71d257edec3a32bccb2e293c59173fce4a1f975e4e9111cadfab18cfa0bf5f392e4e144c48279da563bac9d03ddf0c7357"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_11(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b33dca3fc104ae072a781ecc2dc4aa35"),
		nonce:           decodeHexString(c, "92d974f0278111a6"),
		personalization: decodeHexString(c, "f271500a57f6d0fa653e2a9761a5118e"),
		expected:        decodeHexString(c, "c471044678d3bfca70b7c0979d82d0d3d7c7efacf878ff6e1d30f0f8ff48aff4d639fb189acdab5b3c31826c960f444073147d8a6c8ed508188f48c95f401d002ee5dd866f0c4b05d0acc4840c6becf2"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_12(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bf2d50d29b7337e71ce129ae8f8611f1"),
		nonce:           decodeHexString(c, "3cffbf94c8462df7"),
		personalization: decodeHexString(c, "5263f5b6eaf9122c2b57c563aac6583c"),
		expected:        decodeHexString(c, "1ace79cb19719f58f320bb68e5aa531ebf5956bb2307dc09cf9ab544bfae36301a908445e4195f334e6287c90ff8a8c579f4337f88ccf9095ce23168702959a821ca7a92efb0aa748cd252298a59ee96"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_13(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a2c76004f52292ae30744b3bb7b9746a"),
		nonce:           decodeHexString(c, "a26e98090c9c4e16"),
		personalization: decodeHexString(c, "dfffada152ebc2c6e2dd7121d5844ea0"),
		expected:        decodeHexString(c, "675ed1b8a28f8f00c3b6efd9276daf5cfbff95fd592ce8c94c4b5dc9793b67eb2d9ca37aa9c0b60ec5c9a2a56839708809594894cb7adcf6c9cee794471dba01d6eba2d1a631624b6d0c36804faf6a60"),
	})
}

func (s *drbgSuite) TestHash14_SHA1_14(c *C) {
	s.testHash14_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4a1b6e50d2854866e1c1ddb65377baca"),
		nonce:           decodeHexString(c, "7239f92b63fb3dbe"),
		personalization: decodeHexString(c, "8d2e2ca3985bd2538a71f02cc3eb5568"),
		expected:        decodeHexString(c, "0e4cb328c03faaedbec7215725851069bceae4332de6a70e3521dd065f2f7923485969571ebd7f24be460fd901c6b3e356da6ee5262ef2d76ad14eb0f697f8fb92af2f46630198c5f7018860886147b3"),
	})
}

func (s *drbgSuite) testHash16_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash16_SHA224_0(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "39af3b5438eef3242073aa3aa7a3cf1b713cd38e230fc782"),
		nonce:           decodeHexString(c, "45fadab7fd239df2b9a4783f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d86792dca80f167184fad6eba188a08160b14c324c5e279d98e5de1047402e3de71fe92aefdfe5c8aecb416757a67dcce3d0523a50ecdc381a98da93a511ac95f4a6b7a9c3192ebe21bbc27fe005bc413c1c10a1995b24078dd05727d55da602ba93a392769349993552a157f5699f16"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_1(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b596a90d7dcd893bdadfc2036fc9c69836506f1a3e7c70e7"),
		nonce:           decodeHexString(c, "651cb16aeaf9514db4210a5c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "828c322f7de418314f16dc4b3935ece4151c7e124afcece08c49c4c12cdca6eeee36ab524a4896055afe4fb06c5ce2a5bcbde6e8e368b60e82592fd3b50dc2d4fac70911fde5bedbb6f0c68f7cc3a0cd5c4fa1018158830d5ede3e2115ebbbb9c38a11e8aae5696ef7e9d02b9808a01e"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_2(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5d3e0111bf4634adc2d5a34accb2dd366231664c7c6a31ab"),
		nonce:           decodeHexString(c, "bbab567ae9b2eaeb83497b40"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8de1b396ae524f4ae9f98a835d5951b342760bab11628a13a7a4dfd033ea8206c5e27c39066cdb18f82ffca68ac2829911394d71817fc7e35d17bbfc67b3bd2e9e40f68277323faf11b9559fdc0d25ef447718e6f923891d65f342506079d7fe22a33bbd5e57b1038d2348f936449d3d"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_3(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "10662fcce8c1c629bc829e8d03e55ad681b6c64b84133b03"),
		nonce:           decodeHexString(c, "78b0848a2169e9fd9e1436fb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ce1391c86b679604972e97123703fe4946777533c319ef1aa9ea7fbcb5a4f26e70cb92c7cd9a65e5151d88e56d741a8c208487f33d93bfcc7aa817acb7b239111e36a80d0b17102400c1894e896d7e1ee5dee8663c651813ce938b749fdb2f80a1b5d09fde101b1ba72c1ce56ca35bd3"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_4(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7de89e0492545ceb3b6b1bce17996746747da2cd6e1480ae"),
		nonce:           decodeHexString(c, "353c23b65d82f445161f2ac0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c7a6cc4ad4a983d548e09cafd45abcddd037f4dcd6835ab80f4af6922309eaeeae6f8ba5c7e0190806bf00ec749b5daf2fd2ee09e5f2095320bda0c1e26113153d207f5e5469a3979d2a7c0aa518db394643b42795799bf890d78414b1eaeb1c481f14035864a56f425d6bf38d6b67bb"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_5(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2411daf4e0ef271c26d7bfe46e25277b13244be8bbcf9445"),
		nonce:           decodeHexString(c, "7fd5297678093b80876badcb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8cc0db0f68355fea00a6dc1361a3f9c44bb87f3ce288c35d0e5769b7890c0774ced8bf5cacfa7cc4b774f83d6465128c23adfef61974ebf8981d6b48587604f9ad8fa943ed52302cf6e83a9c7b34ba9433c00f8d779ffdcff133abc9438ea5fa3eb0bcf9a2cd8fe39f947352f94d5bac"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_6(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "99048602ebf1ddfdb73d95d0d8e212b04d7c4170e0b5d574"),
		nonce:           decodeHexString(c, "b1dfe61f43696313b7411954"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fd3fb94bc19b82c15f4bb79768b5101be90b5c40813a3eb9e199b539b91df298749b7736eeafbf6000bf5ca1d65eb5cd642acaffd1e1315d8324b54a7c6fc6988108979ac1bb5646fed02f72fd4d3dde3a90a317fd853c771465110fc7049625f2ad9b54c0a04d78d0e584e74a7ade70"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_7(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d97b3e0a52771dad4581175a169a51a70ebe877e506781ac"),
		nonce:           decodeHexString(c, "f31e0f4ae9109c1c128ddec7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ebe9286c56e9323670c12510b912150ecd95f9f13ec5a1151df0fe060322144e81f68c24135dc0450d88cc370bbbb539437829da659622b27e1eb8645249518591182e126c8b1da02e511f59340eba10dab125569e56d51c41f61cd0e1c359dcd0aece6cde268b941a7681b1c78da57a"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_8(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "74d9e68b256193fd4abd18f6a3ed0c48558039a1a611320e"),
		nonce:           decodeHexString(c, "986fbf89ea3f65aa491bdff4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "79a3ed8db4ae607601dbbe2690fb01e19aea95f30ce563d0cd39b9fd537f4c048b5136645cd43ed9e60d77b21203a70085bd8f6bd16ae33fefda796b11cad5173c0af42ec369eb9422a4453187871a0f5be7b381fca79d4aa05d50c0d59ebddbe7974ac6a387eb27f70ce4f679fa3ebf"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_9(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cdb221e409443cebc91f9ee083796595aaaccb0dce24da0e"),
		nonce:           decodeHexString(c, "925ebd02da9e4e3be1bcaa6d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "826005339522db9c7c7399c390bbf4f6bbb5c552cad487b443a3ad1e5db3622a98ef61f712b03c5c5e975fd4979ed9fb6d057340855ceedd8d45a6468762d2726f313ea23a1dabf101bab8cbbc31eb67dfca58711aa16f07e553269c380266e04face8bea52dcc6f4c3b7f901df01bc8"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_10(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a961eebabb968499c010a92e71f0222119efcd4056961bea"),
		nonce:           decodeHexString(c, "daac098a7a136c8a847a8e25"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5584363551b2f93f31df0796d72449778e5e9b4f02eddfa06426d6857818d385343a553b55924ec848cabd6a1a6ce3b6bd1e0844e1b7d55d5b8e631cb24cdacaf7c2ee5452ad41ef419d08b53336783f93f108be30a0d9db24dfc7e5197adb2d53ee0537078bf946bea1b6174dcb06f4"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_11(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2e66c4cabd72b8c2f8094370d7b118fc63fa9d24e9a40299"),
		nonce:           decodeHexString(c, "7342a6af50601e3fa9d20921"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a55517be119c37c3605d3b1aa4680abdb8698d9ceba46e66f702b204c21c8cc980ced84759dad161a3a84d130aeb4c37ab41ac83ee696a8ab3c9656c5e4f7ca51fc9830d3841d29e2f38cace9d22195242626a7b60ad89acc32b11aedd82eac3401e246361b61c05da5226645cd6592d"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_12(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ee960f5e2de2b565c4c7c4cd8b0aeff9bd0fa294ef2dd19d"),
		nonce:           decodeHexString(c, "6aaffa9d66fc3545752b167e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bdd50169fd9a819f429fc7ad947394ee155cde628469df339fb479155e6b232aab084709aeede7564e1aa0cce6061760b1a3cb36730964d9060b970856009d0c6701fd61243e7c86f09000c2d91a9a429517737174fe99a9442967218bf8d9701bf4e37736ae467cffc343f0f2f5cae0"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_13(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "10aaabbcae9df8a6e9b45d93872e08d470a5b143fb349e60"),
		nonce:           decodeHexString(c, "2f2e4a64cc4ea0f25675c5d5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7bc574e9a6e0cf6271fd7fbf6f8878373763e4f925239339bfba8cdbcca600213ca667b6d75e8ffff84ef6963b3023b0fbee76d890af3ca4c552585219197faaf963d6007d23522d579d2e874ab1dc517c0c2092faad19e8e10f7c417adf02391c6da6e27be0f60af99d2e3b4e0904eb"),
	})
}

func (s *drbgSuite) TestHash16_SHA224_14(c *C) {
	s.testHash16_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "08a325accfe119fa807a95e8cc2cd8ff041ccad8e2c4cf49"),
		nonce:           decodeHexString(c, "c85baec1c2d1f3f189eecad5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2567712d6fd3b52364b508bb2e4ae18e34b155dbe99fef9acbe21346715d36c538dc380a5e5900e0ebde76c779006fabe2b3f171fa63fa0f5ba264748278549c9beb26db701c8fab7adfdf48eb63e48ca6f3be8f17131c5e9145f5dadb00fe666a651d2b1b9e785fd444b05d4efa8ccc"),
	})
}

func (s *drbgSuite) testHash18_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash18_SHA224_0(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9e7e20ab14485f3638d7c21057ba5014b64bc6b555c0c07f"),
		nonce:           decodeHexString(c, "a5123d9e723137f2f735d16f"),
		personalization: decodeHexString(c, "fab61ef10db3d14a61ee7c4923fd1dce1b0de0c74f3b1b5a"),
		expected:        decodeHexString(c, "1d5adbf9a0dcbc7754b669d49c4b36ad5cdf12b8a1ed0854797d11636f9c901a4be0fb295c459cfc36293fabd40e90419b6908f41fbacc4d8569731f376c35d78634530827173dd7db7eccf616783576133d6019b869ebae4f21524092fffd9b0909dec7e49fa3e465d07ae5103f0892"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_1(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "48f5b0e478ef1381ba5736a31ee174450b4f8c5a7ba4ffc0"),
		nonce:           decodeHexString(c, "b26b2667562dab396fb38979"),
		personalization: decodeHexString(c, "602dab661d8e8b90b39d12819f147360519a27aeddca9bd6"),
		expected:        decodeHexString(c, "32b06226ba0ed1ac99b2717841f7a32f1f749eb89b8aa0314db53fb6ece27b7261d1d84e3b942b65cfec767e158bb5260720b4958e2dc632f6703578fae0d97d60c944b373d6070fd276a442063f91157951c7461f25e05e024bf44c0deb5feb34828b930437985e0f627ac5f4643db6"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_2(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "595a904e81b8f0e78a9af3cdea59c1e4f1e8d1828c04c3dc"),
		nonce:           decodeHexString(c, "7b5ac38c3aa063227adadfa0"),
		personalization: decodeHexString(c, "e499452d048bb04eea2e19ea236e6c114e0684d886dba38f"),
		expected:        decodeHexString(c, "4bf95e071060bf536a681beecc5caba6c8cf0eb71e7c9647eaa953a3ddc8ff3ab4f8d8d76cd119cf339c491e54e010c7825a74d7658a8ce1924e1f24ab60a354414aa7109a69aaa3a50dfe187f7f562e30e1dbf7c9de546094192615646885841d55199d0606d698fe4b7342704882fa"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_3(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bcf847f45abc8eff6f7a0e158e1d27a4663e06d1cdf4705a"),
		nonce:           decodeHexString(c, "6887396363601d522026b579"),
		personalization: decodeHexString(c, "7c86288e9f3fc1b6f7433f020e231ae7d88dc23bd4b1924c"),
		expected:        decodeHexString(c, "696c8477989bcce357e6297a49ef021d5fa87add4b5eebabff8d5e9614c3be39dc432d0fb9168d7fe30c8aa6532c7499cbca5fb6de898ef785cb1ef1387d5e15cb07d699af4eb3bf4a2b70a300c625edc89e78e2539cbb4931df82cd5814ee2a2dd17829171d1b52ea850bdb79052be0"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_4(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1b2b172021f45e443242a0f4be9843a94ddd558118373558"),
		nonce:           decodeHexString(c, "a53e39d64c49013038ef6bd4"),
		personalization: decodeHexString(c, "94f9b7f659d945105e07882bfb1910fe37b524e22145177a"),
		expected:        decodeHexString(c, "39c8a23b7fb65e08574eebc2a13a337bfab83fe86c4357cb8b70b542f20b6326bb9dda38f872e1ac12af4b69ba2192ca791b8bf0dce95789356ccea93ac1f8eb2a8a8016a76cb11e24054af33d3bbd873d6668c25386204d75efe45841865c6ebd8e659eb3fe7b35a2f530c21660e377"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_5(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "98974198980fb7aeb80c1236888aeff4f3dbf3077ec9721b"),
		nonce:           decodeHexString(c, "b0bc98b7862d920714d45e0b"),
		personalization: decodeHexString(c, "d42f9cae63146b60778af96bca786400e39922907d72750a"),
		expected:        decodeHexString(c, "0ff30be6aa0ae9c5f88fd185775539ae3cc2f758e3e3ea8973421f1e80f326552308c3365a0c515ee402a70eeea86a9a6e1d0324e7af59c983ea0f55f74991aa86aad89faae5f4dff40e3ac5050d465323ad34586e9328dc6a8949c6d96d74ee1a266eb6f21593a43f7875289e6e6002"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_6(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "93f74a2657f77af265ff2bfe239dbf791b95c393741925d3"),
		nonce:           decodeHexString(c, "fb6b25507a03dab25e16e90d"),
		personalization: decodeHexString(c, "a7469a28f62717f55d37942a1b5b1e0b8826615946230e98"),
		expected:        decodeHexString(c, "3263b77752e82b44c1d50c89587ba17d065b75ed74060d3b6c8a7da560abf9477a807c415f927b501b323e83534817f2908e468c1381de28003fe84840eb0c00d38e4508651113cd718128ed139e1d73392a8680e3c6bd48c1bdef53fce3c7caf869e80d451b1ecdf9376ea8af013618"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_7(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3ab557b366e5db028976cb6a10b93fa1ecf15ed083035932"),
		nonce:           decodeHexString(c, "f2a593ec45593a1c5f3df02f"),
		personalization: decodeHexString(c, "b5ee3645bf2e69d19db24ceb4108bd1744581006d3cf40e3"),
		expected:        decodeHexString(c, "0b54712d4cc97cf575141cec2da8f0f454ea1b1e2160991f433f976132f3022045bb6d9f1adcb693a72fe7c7a73463c7eaf805fc1782bac89593b9fe313d1bdc4b46531a385d5885206c3b45a663beb8cef069c1fe5748cb595a23f146e8eb964ae312a53ab0edc870585bee280c0bdc"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_8(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5d37382677f0f018dfdfe2fe52ab8889fe66632ebef3b3a9"),
		nonce:           decodeHexString(c, "23ac3092d1d655aa549235b1"),
		personalization: decodeHexString(c, "fc0287a70afa3b32f2976aebaa9180d2f75a0cba5d60bea1"),
		expected:        decodeHexString(c, "50203b0d1790105742988c2d522c2aea0f214ea7838bfe74133f088673a443d861ab61286843ca8872827df9ee911feb6d1fefe207ef1207c469c8d782a1d8a3592feeeadc69e889db030ff56bb1dd867542aee785d00ef3052b846906d554be510db992400e58e8353b8343dc672eb9"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_9(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "08af5f91562cc16d21de2e752239c08968688e24b789f254"),
		nonce:           decodeHexString(c, "1c14e7e904d5d1a07a79f97a"),
		personalization: decodeHexString(c, "ec3736f64db617371be06196aebcb684d3fa9ac6ce1354ca"),
		expected:        decodeHexString(c, "7b78c3f9be80926f962d9fd68c53428a6de1472574691e88ccee58ac6c1de0bee933e701785fa97740cfa3e8ca305a2ff9ee08d8a496551336696e6cfdc9b1a543017461518401e5db39619d005626421d3b6b005c2cecbd36044e49388e5f8715341e60e9ffe241165519474f21664c"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_10(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "018714fb60f53fb1963cb015a48c34fa7dba0054292dd8bb"),
		nonce:           decodeHexString(c, "98a2df9ae9be1ee7d55263a9"),
		personalization: decodeHexString(c, "acb8b85f7b2d82035d6394fd5aa55e4c75d0f801c4033e25"),
		expected:        decodeHexString(c, "a4e60d42cb81c787e51fc988e184fbade8f66253988823e9d48d9bb1ffb971e5fd4ed5dd2587d957303dfac5d7615160790d0345d9ff5654dbfe2d67a6477c210d27578eb66ccae918d6bc1898e00e943617acbe4c3e7d7513157a63d40684da25a6a53fbc0dc5765ff14f961728fa77"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_11(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "73faa419e45b495c279958ce1711f05dc0c08d2c2f4c4e9d"),
		nonce:           decodeHexString(c, "b251cc83a727a5487d8538ed"),
		personalization: decodeHexString(c, "7896475d8edfa394f97b99dfa997353e4c5b3ae77b683288"),
		expected:        decodeHexString(c, "e4cbab42a9ceb0c61bd63ae1a5dbe79338a32a98874883acd69b9ce7f5360ee04f7fd18096dc4f03255b8f282ed648a4e6ede977fa648f658fd1f3f191d8e72022a65b14d7fd8ec98564117e98f123db1e9187a6d553dd576dea6ebc00401d8424fe3d0532f8178231e7ce3b6b9f668c"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_12(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "10176715b5690e976b4f24f2f2602a8ccc2be365c7627a7a"),
		nonce:           decodeHexString(c, "5f3c085a00995e66377decce"),
		personalization: decodeHexString(c, "737bd459570a832e5714024ab2bf23c82221aaeef17a67db"),
		expected:        decodeHexString(c, "6ab86eb8b59124591708a327c621781003b5d02b1ffef62746be109dea8d14eb6fd19787eb10f00b4c49eb444596019a7298260b58f0d4cb7f78f2b38ce5ed5ed7c8fe434a9352e43d16e0fcb7de0a4bfebdf3ad178e692a87407c99e7615ee578cb48e8cfddeecd779e795640797ed3"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_13(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "38fe230e10f88c866e6a24da2dfb2b673c089e35e0121165"),
		nonce:           decodeHexString(c, "f8c136acb3462ed183bd6160"),
		personalization: decodeHexString(c, "8cef1f8bc7a7fe65bc73497ae9cf14ce9b19aa89f0d7a21f"),
		expected:        decodeHexString(c, "f52a7ef834d1b1fee9ea9537aa9a8ce7ae1568501c03c865dcf1a9539bd90da4a0baa9696c27b55cf00a4012345bb86df73f6f735f50809261da19f737a2dfdf8f37d8cbc7fb1a37b4f07f47abd40c6c2941e1599875f3ccb73cb50d440b5ef8282bd7ea7accffe5ae23092e462c2664"),
	})
}

func (s *drbgSuite) TestHash18_SHA224_14(c *C) {
	s.testHash18_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f7c0487018b79c81579d97ce58732c2be599c043bf8d5709"),
		nonce:           decodeHexString(c, "e41f19a969494a2293ad0542"),
		personalization: decodeHexString(c, "f67bda6553b5e4b89e309cb48a336b78460aff498846c2e9"),
		expected:        decodeHexString(c, "44d544ac910b7668ba9c5524e388957520fdbf11383808a5a8008d119aff7e1e2bbe63b4cbff19455f20f3dc79ab0a83dcf0e403728f2a2b2a9f3b98930d9f285641da3b6b9a9467b2701ce1ecac82bad8214bb618c40999f5023dc2d97dc1a53a0296d44f6fc9d49db00959c89e9f5e"),
	})
}

func (s *drbgSuite) testHash20_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash20_SHA224_0(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9c65020f706e8c75fbdd78ea563f84cfc6b9050dce27e4ba"),
		nonce:           decodeHexString(c, "9f1c43b205b36fe351b65c55"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "99f53667646f88b47df606644c02f1c61adec7c89d50258c4f8a918d06a8e1a043a23b083012ccc86b3939e05dd97a4540e4e3eb9f9dde191a3187455c8804dc80142d2567abc93f8db756d03d16683ef754caeff10f58665aaa9663e5b17b06ed8cb7338532380613908eba86b763e3"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_1(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9d68decc71bd587f078feda4375446dd17615396a44f127a"),
		nonce:           decodeHexString(c, "e67844f498d87e8bbb8f57a3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e34545e29a6436b38bbb55d40f1570731816ce159c1154bbc9b872046e5a9035a7cd55f42c0cae7ff36388b8a25b0ce89daac4ecdb15dcf31b8ecaddf7cbf54a39916c829dd4ce9efe89d7e500d09fa31d641c01a6cb69da78d365f0b802ac1ecc4454d38caa02d4b42dfc8cabd75423"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_2(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4c1b729c232d90a41634350b6bf66ccbb95658a325a53253"),
		nonce:           decodeHexString(c, "1e4763e6a25dcefa047031d2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "61eb52fe649811b66dec63a356a3678e7cb207c36e58ad8ea8d91a58b94428f2d4e69ad49e24935da38efb2338070d8ac72b0cfb8ccf0add461b33ca9c5a9f6075fd06cd3aaa129c1983136c6a3cf220ae5db8cc6bba70b5092cc1cf8a679e01cc3fa76df54a96c36ffa684ca465515f"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_3(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a633333cc2827486dfe3a5d321f2f4b6b52661cac187c28a"),
		nonce:           decodeHexString(c, "1441e4d26478d9ecb0392802"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0d5f4c53a2ad1422490b29479614d864cbc533b8bea9eb6517aff19754f4399c29b536c7f114e41f4c477fb366c19242da40116e6d690717ebad47afb7903ee83537fab189e0f866c12b2d3029528e89d67d557e16b79ef18faa946900a45b863e7de3e3b33f899fe4fc6881b72b6670"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_4(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6109f13048e43c82a8808c4d946e6724619a25d7314bd6b9"),
		nonce:           decodeHexString(c, "492ab3e85d4fc964f97d53a3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2f9049109702d4a7e36396268a05531c43c2d129cb12096163d777d916a8c81c9495387e3d74d78e63e20670890bb47cf1ff08c760e2964a66ca22bde0ccf8c6cfed80f69a53ccb1cfdf7fc26d928cec7e6df29c9e96d71d9471e25290dc267247096ab90840566435655f793baeb0f2"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_5(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a7a8706c6aefd2ef52761c6e121b43e4819ee7a8e554b401"),
		nonce:           decodeHexString(c, "531f90167a768935c3ab9ee3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7c010a60a29fdce26bf05299ebec4237d0b003318e556f65283d00dfc95253d93d18da301d7546dcc89634c1eb7f68439aecf48d2bb43f38125cf8be191414861269df59066f2f6257b6df2e36c2dce63348a68c778bcbb62e8328d8383d0c3c197aabf858787462f737c34ce99abc43"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_6(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7c240d7bd377145dcba9299c3f2566f0661c09a21ba7424c"),
		nonce:           decodeHexString(c, "48e79c69684578e3759d9020"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2a9bd64b633a397cd0d5f3154fc049da73a2db8c58b46c26d8d7eccb0c92e2979e959ecfa6abb8c8a967f80b7c530e879f93933acf230bc056755324d9521453643b99b6f8d6403d65e75934bf905cc6b55d629237a3c12d8e8c3ba9c75e66773d1b755f6020ba0cef47964138bfe8f3"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_7(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a14bd07bb34467ff2e0bd383e8a0dc270c60b9306ad644cc"),
		nonce:           decodeHexString(c, "e33f6bfc74044cf7c222cd40"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "61d7e0d36ec226d6e6873cf1e06fde37ea126b217decef90d4a33e4141e3647b09cd80845c3efc701df4f374f91b5aee0548534999903640fed0ae12c1101d1d999b0357c4ce2daac8f7632e6c3f176edd4b5a2fae1798efb488795bfd39b53a881b4b53768d123d05c159726242849a"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_8(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e727491d18e47a6a0729896d98355f62ca4a36ad73eba327"),
		nonce:           decodeHexString(c, "05f43e9a8a1eb0bcd450d51d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "253429a4ea44ba84ca5985779956bf7763fc0b60c3c93d51fe9d514b9aac7a8ccb80f798dfbd0581650cd84d4c23c6367c9e5078fc7739f19b7e2c1850ce694e80df4a7c639d9167de53132905abdab64311571d437c3d985f794748bfa78ce5452c1714eae0c125efaecd8339eb71c1"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_9(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ac963e16bbb33458253e166033ed0bc4924899e1e4aee9f6"),
		nonce:           decodeHexString(c, "fa04ef8bd29881239220c38e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8495d2df82bb3794ffc19e43dbd3097f181fbf4c5d801907b9c74a9be5f2b5ccc43aef7c137cc367a98bb58577c748c9780db7926af184db912c3fba177cfc64dd28dc22f1d423c1df3e92c5485a0d6883c828491766010201756a6f46184fc9bf65bf377710a483144ec82b83eab26b"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_10(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a822fac1fc504878de7d02eae642fc803df432dba16f7a27"),
		nonce:           decodeHexString(c, "fe6bab4221b751687b3f8714"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "77de4777faa5fa60ec7aa8fc1803fe8e63adcbfd3edbe67325c6eea9f7e1ab0ae572562aa6a4707319c8d3324d6eb240545264258f6caa309778c44dccda298ae7a5cc973562696d7eb07a21a019631a839fff3e7b65f4ca6b1e4f336494d5f58cd738d7a2e515b9ca771d96301ec58a"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_11(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d5bda6bb1db8610502b3c38aff5f68758e0cae2bbf948014"),
		nonce:           decodeHexString(c, "388ca55b9b21b61edb225b13"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "abf73fdbe8330272be77a28ebab485b9e32d368b38589b62bfd24e2b18b95eec681810de939b9c297a520c2938460083c86d3a63b86e1f2dc6f2b27e73c6825ca780b4d80d1d7b46aad53047ef73b325bf80aba04567320cebb9b69411d3d4858079cea3df45ad8ed77ac0ed4abf7fd5"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_12(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8404ae2e83a8acf41b4bba86cc32400a2721f0de90150473"),
		nonce:           decodeHexString(c, "66dda22b74aa8abe9d70b62b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0edecc03b6368917de3877ab5478f8b52d211e9460ca8ccfd3c84d5f3764997fc15ddfe77452e7d1fcf3169215cc76a949d0a1487127604cfd7114330c7de19b958e0d70a4c2f1bb051a4afa444bbce831f9453399bb14ee241e58685af5d981f43d3d0b3e7d823d4771ba3bea93f82e"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_13(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f33d76bd0a5f52f3e8bcc23a3ee312dd2665ad2a5352fd7c"),
		nonce:           decodeHexString(c, "0b1a57561b83783b52efed0a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7faeffe318d1838a13fef2c6385a89b6a59095d9113fe70a49b83f89e4c87abd47e427185d6b2e6e58da388ef903fb932429dbf918190e3039f4e8a105e589a45f9f26a48db4caa13a7b8dec6c34351e08ed538353330256535daca6cb917988e7a3285100d5b4d3fc0681d9afe51a29"),
	})
}

func (s *drbgSuite) TestHash20_SHA224_14(c *C) {
	s.testHash20_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a71c303bf17e128c8e0aa07fb61ccc1f40fdb487a955fd95"),
		nonce:           decodeHexString(c, "d3ca16fb12ae4709d411e5c5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "61a51fe1eca4cf947bbf2a77d643e7963ca2c587e0eacc8f7fab3b3f0e166197a4d15184cec4f0858de2773d8becb339bbb18ab2c10c8b246ca66dce48e2a0938fe1ab122b4930d603b937491ddd3d10abac731957f2e1e030eef33f7f311ed782b06697914145e266d0b967914d638a"),
	})
}

func (s *drbgSuite) testHash22_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash22_SHA224_0(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bf6003e9570026651e8cf7e8ac75b68291380303d65c7b23"),
		nonce:           decodeHexString(c, "7780ada8e5577a0fc81f8ead"),
		personalization: decodeHexString(c, "961c0e8f9723d8065452be8fa8a4f87cd7759110a5e97aad"),
		expected:        decodeHexString(c, "b2fa39f5c5527462831f0eeefd39bb9eb42966199addcdb3df94c1a7410e464efdfb06e057826e7f1b03bfde277ef84954a9ecfd5b83ff8a39b77a7ce2d98e257d2903732ae6605bb624923250c91926243354f134e006a43f653a80c0809f4d53828b9fc0113ac2265c1f1cbd6ec6fa"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_1(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6d405a2430af83447de6bb4eb49d0f2a734320b6c8dc01d2"),
		nonce:           decodeHexString(c, "25fd9e8673e6a1660a2ed76a"),
		personalization: decodeHexString(c, "cc5054d440c96bc2a367ed15e3a8cf0813ba92435ec682e1"),
		expected:        decodeHexString(c, "c4af166057f60236d28ac0ac707edaf0bc71b380146c8ac3e7ccb8739d78309e853bbb69e6b9b6fff954d292b79e6f7b0b2c7dec071c289819306a2097b3a12c637f8c5a46391485c92173d4c446d75d7a7e886a13cec8d8d0accc724f6962fc6759194f5b51ae978368c46232913de6"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_2(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fc56dbec9fe303db2046e838ebdb1a86dfd2e8ea2163433b"),
		nonce:           decodeHexString(c, "cc8ced973c8d6dbd314de957"),
		personalization: decodeHexString(c, "c23dfc21deae8c28e0ce302f0a40e835e0f6418e42f062ff"),
		expected:        decodeHexString(c, "1e652571eab5c7fe644d492f594bbb65f2cec1cc709f59c914f8d5839292d71e3e9dbb7a30f7536097211a2db3d54bb4821cd6e19867cdd35d5022e1be5ff0baae0d3b29a640f0c4e3ec1fe8bb684ef042b5f2fd569054e4273ae5090345e1e919163a29a1a85540c25885ab7b86c060"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_3(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "13182a94147ae4d3003d849793c8565766b6e5983e7b4e24"),
		nonce:           decodeHexString(c, "a46fe731649397ac3fde715e"),
		personalization: decodeHexString(c, "b9ff01eddb2d0a4bbf93c7d39bbeee0eb2b819ceda280efc"),
		expected:        decodeHexString(c, "47c31300337c2cd60fa6a335f8facc96a801c180ba6802188cd180b1d9f0240eaa6f93246ba07734475859c0d2cb480b17bdbed437ec1135bc0cf4440abbfac52d6e973a8f38eadfec8aab3e7828873e9bb9d98fda0daf7f20bf588f2fcd11b9cd5b35e63a8762f7719bb76e33d30b01"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_4(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "41a22ae37622c9e569165bf8e49f343f0aaddd1e95428ff2"),
		nonce:           decodeHexString(c, "03959dccb3997763b67a493b"),
		personalization: decodeHexString(c, "bbd24c4ec6973f8bafb9480f387dcff2e0597409d3c52897"),
		expected:        decodeHexString(c, "2a233dbffdca2341db0f8d3a34d9e4370d4e9ee329f4a12853eb0a1792369965f1e70500b02e4a3f92a9c4fe7df8ed7c94082c40db6fe098f7dca1e4a84e3c93fcdfb8f053ec20ea09f94805a51ba657bfde5364cc049caf8bbdfc20fc0a47ba4a753785adc3f91d262c03eb38f67cae"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_5(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e206413826911ca6f48a356f19f7f68c721a3bf61583bbb1"),
		nonce:           decodeHexString(c, "093b4311281b519f803ba9e4"),
		personalization: decodeHexString(c, "d26a88780806f78f739ac7a7ed7d0c24bef62f4b72df63b0"),
		expected:        decodeHexString(c, "4bd1a7832e7acfd81d413b2d1d6eba8bc20547d3a956b11231317a3d31cc062952023e7eb65410c1da56150befaea9846180a850ced118c01d251b1baa271aa695a420edb2d24bb96a0d7fdb75bd35aa384a36262ec139a9db6b46a5a770bfda54306341f0eebd693bba2f0f73761fe5"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_6(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ffe3b136da099d974145c3e1f287121c57bb3bac337b5000"),
		nonce:           decodeHexString(c, "630f2dcaae56d5f80bd98996"),
		personalization: decodeHexString(c, "abc9a770e6f2c789270693ab1914e1a07eda7532c1bfbd3d"),
		expected:        decodeHexString(c, "8ca7d3f48f15df2c2297a3624f193752f806fb44e0b8addd14cb83d7e68b4798b9a5c291f3c909e9fa2beb780da20213d2e0a5d86385ef268a6ae8614454e9ae53c23e20adb444336376fa2f512e169272cd8ab4b47999d6f9cac52c20464f2b433c9b92838bb71a45d1e676253911aa"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_7(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0fa18417968db22fc28f3bb8a1c2ab94114b97164ca354a9"),
		nonce:           decodeHexString(c, "486bd6ba73fe4c9c160db841"),
		personalization: decodeHexString(c, "47b1f40ab253c3d8861b6e3ef53f4565a14021c00362ca08"),
		expected:        decodeHexString(c, "18b1e0f40ce697f5a889b514eb6c2b2c2886d3c566c5ee90733e7105bad4f10a05a115c164112019f4d8413b218ac3cfa13b7adfb0bc629f440617678b0951613bb660068df8c74f416c6e329123ebc60f0d6971f03f0d932948f93d7cb42a2aca4644e712194b0723817c38757543b9"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_8(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fe57ec71c62d1915b4f0cc7fd55fbabe922b6ac434d16649"),
		nonce:           decodeHexString(c, "9085bcb0074fb874bd645063"),
		personalization: decodeHexString(c, "c9519a97b7986f966f5da687d147b3bae7567fa87142aa1d"),
		expected:        decodeHexString(c, "1b4a7a400a666f49a01394038fd1ac43efdb32fbbff5a3dbbbe9a100cb640f3eb72fd0f23d647972ce7aa6fc7a1beadbb0d2db154ee023ce4931b9fb3f9b7d10f6686482a0dc68899769e5ae6733972c3bda40fbe0cd009c671083b6a92aedd9727d8281f45926bcb1f5c35764ebd50f"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_9(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e3dd8f02b72c2ba4fd7c2975fce4f7fc8ec84eaf2afba222"),
		nonce:           decodeHexString(c, "10373bf894dd7ffd03824d3b"),
		personalization: decodeHexString(c, "b9b6fdb5d5c9aa4b4d3df3049dfd4afc57161fbdae5b9db2"),
		expected:        decodeHexString(c, "429c6f96b04987a320a5d176875df21ef0ecf76da2eb829f9dded0ae8ec50964237e0beabcd25f6d79dada7925c3108efe1b800170504083dea192b2b67754c5dd8ab3cd4a8f7597fa49795d6568a2e935d4a7e823c9bfbc7f8a72fa7304dab208885a7b0932ff4fe1c7a9e5b1934c93"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_10(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "dfc61f3477fd2877399d37785a63e16b2eb111b38cc2dfd3"),
		nonce:           decodeHexString(c, "d67ea41ab522165d1b07563e"),
		personalization: decodeHexString(c, "f72b1f8b77f1a6c6e9268920cde5b2c8136c5e6b7233fb36"),
		expected:        decodeHexString(c, "a671c514bfca26220cfc979fb13e05b4a59007d2bc96d3626afa46f68b443f003672a557de10fca5dfdedff67f1e9a3f4cf0957d8d2f6c1274854b4c54822ac4b94606a175dce53decc5702c94d4bbb35c7175dc28cc0a0ca8278b9abd8b056ead8af721e4a20492e40706ee71e7b497"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_11(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b97a5b9989f450dcf32018d7a1441de61612fc6462ea0b6b"),
		nonce:           decodeHexString(c, "1966ef1b54cfad93852dc7e3"),
		personalization: decodeHexString(c, "b64c98d70757172f168eb76bb2868409442ea80404a50a89"),
		expected:        decodeHexString(c, "4dade80f03040c7c89e5ca7d8c601de677bee101376e6a7978c31f88623aa8bb5c7084318c23e38be77e747b8b328da520bd5f1a3b2626d71e2963f59691ac448c507cb9ab4acaa3c4e52628f6c9fb0bab576a615fb0af942ec32a50de682fedbb60fb5f1d1a00ac018be7d1c4647dcd"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_12(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f4bd151844b44bc43d10133fc27ce1cac4f5c3cb71ec16f1"),
		nonce:           decodeHexString(c, "16035452d515d67fc4115673"),
		personalization: decodeHexString(c, "ed9707c88d5900915e278cc673ae1d4a0c5b62049150437e"),
		expected:        decodeHexString(c, "1f6c2ba5223668f4e01da36b763f9cb633798ca06891f37a6c42f2a70b2cdb32c5d96b46a9f8e29ab132d90e3ba7f63849ae513b063778fd92f936838faef6bb66d78f13ede5a4c46476f71b0766b2127f64351e5949b40b47953b06430dafddc9fa838d2bf9f90653b975497f609107"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_13(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "79c9e1064e67d917ea72eaeef13d7a98318d948f8fe06d45"),
		nonce:           decodeHexString(c, "6af7a5efbda335d0276bd740"),
		personalization: decodeHexString(c, "eb08a942b8a0a278dac3e3f0cb0b1a1829157dd9cbd093b4"),
		expected:        decodeHexString(c, "98c0c192010ae52d41b0fa86dd5e77029200491eb876976b9f72b860e17646365b2a31894f44daace5ecc70ed85a892b6792f458687dbd72eb5a6d1a8daefe73f4f4e0743e41bd8eb26f7cd8c2888f636a77a38ecb243e89cbe3deefb76d0b10ce266e68fc6b6548323f3394c13d4550"),
	})
}

func (s *drbgSuite) TestHash22_SHA224_14(c *C) {
	s.testHash22_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bc74e505f0d4db45bf15edd7950b4a54bbf99ae04e8c4e04"),
		nonce:           decodeHexString(c, "838d1c69d8408cf0134f54e1"),
		personalization: decodeHexString(c, "f08a964b386eeadc4bbe57164d3b3a0c7c0068c49c9bc5ad"),
		expected:        decodeHexString(c, "d8af077476875fca2ef9f04013976c3c278d30592361b923bab2f7e3c8af4affac5408c390b4989da254eeb97ccdabf32f5e246739d0e532a6ea317e7dda02bae5051ca97a445f5e0696a041e5f9f2c077b26e575d749cae344859864aa00f262c1c41b2964b78f72f9cb98abce103f9"),
	})
}

func (s *drbgSuite) testHash24_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash24_SHA224_0(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4359f7e431da8a2d30c6e0a53fc233d09b5f2aeb010f91b1"),
		nonce:           decodeHexString(c, "ef430d7678c1a5efd64a1473"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a45f79ea40f5032fa17fc43bbe41eeeb44067e389771ec66e5491d0aba88f28d1ecf415b852296f53f18c1ebbebb03c5e5a69421bc1aac4afe90b7a7978111c41bc80c12152b641d5482e4feec1b751ae781055cec4e28e675a44984f9799be3499e28877db87c127ddd388b80fb044c"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_1(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a9858542925dc08bcb69d3e114191483dd93428b761fdb64"),
		nonce:           decodeHexString(c, "f6a387906d68ae5116ef345e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a9b88c7af4e02648956e3ad8ce26c67a7157436134686b4124b0fad82d08a29eaa90dff650255a0cb7a2f228151d01e1c9ec46c5528980f51695f35bcaa249bd9992ffeee5523d062201d5eec73602290fe883ad629d4b5df6acbcc9b5075b2025a07a782de9c0b3a1b04c6bef8070f1"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_2(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "144e6b7499db6fd3aaddd9d373c8154ffd2c0755762070db"),
		nonce:           decodeHexString(c, "bab79a27bab306e2d23ebf95"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f6253496835bb5af6488b00987c332296b2ae545d3e528b4680a020a705c12e5ba02264d0aeca53dcd575baa35eb56ed8a0f04a2b48ed5339072c7b37acc0568e59cf03c5dea832a96a980eb3a1519121545c8d089ea0cc91cf17f1bf97f0970b57402f7e01b4f6dc1409c9a0155a048"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_3(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f576df3cd49a7fb3ebc99caa21d022d0472bdad51d54b0ea"),
		nonce:           decodeHexString(c, "5fb61a2c347bb89d74ac36d2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8face2b28607b247f82107dd616ecd23a51cffa2a2800207dd60da0d5e1e793b39e438a284690578a911bd42a33fdc4f25ff47dd93dcca05a8e5d5ab9c07dbca211dd0f4dac999223233e5d7aac490282dcd981012aa8228c14417ef5cdff331e47c3714a930b6224e024e5aaefc195b"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_4(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "194639e5abdb1af8fb1c69a58a8b9082706a1994f5e7692f"),
		nonce:           decodeHexString(c, "fbcfa94a79ffbee32237fd48"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e5fdf2167e86ca9c25acd3e23815ee202241f1e848538c9dd271a2b4ddc958e2d32aeaed437fb9623504874676b35d242edf2f1afbcd29544dde8238bc611127b234ff6dedf7138f19a214d3d9f3a42738737e71e6afd0d06ca8752d91ee6a41940edc2ab14764a32e00ceea20a6996e"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_5(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "80dec8a6b5f61419ecd68ad8f85d6541983e661c876babad"),
		nonce:           decodeHexString(c, "5d36cc4fc35f703228585159"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d5768005ce952b9a92bde19a65665f672353b3f1ad9fccdc0504a421e7c7d6339e562f6419d1ff8ce08042866bcd1e482b83df49a6db756aa1a2b00557275540e910a7aadb70db4a570c8cefde394a712adfb292c93907fededc26540cedc10d75516f8232722457e56af1ba1b15cea3"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_6(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "105406056b36b6aef7ead09062234afd92ed1bc0a193dbb8"),
		nonce:           decodeHexString(c, "d11bfb602b2a0ad2c084ffe8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2633b64c11e6a22a8aefd5156397c9fcf55fe3e29e3bb972d20f25c9232fd6261ba029260608a820b23e5df227fdf1b8f2c6246cf510e60ddb18d5ba52a510dba8c65f98c6dc6f42043fc8e8364237480a9a7ae3b0eddc23648297a6842e9c1f7c4d7ae69f7623dcf76a96c5b9531eaa"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_7(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "752371b36fbab5be9e34310c523af45c7dc3942129a0e975"),
		nonce:           decodeHexString(c, "0e89683eb12924f48863acb0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "42a537d7d66a4ab65ec60f937c763d038d7a27b74219379ce12c2896dfc62903ea6bfb3e22bcc90004a7cca83dab8dae1c643c87f3fd4829e2236f4e1df25a71caf4baea73417d9ed0de7e52b13b3c4b8dd200a95c8ad77b4855796f67f5e5928a729657878900dcd85fa0c168a4bd07"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_8(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "78b2e69e1b9df3bbd9e91c5c1637ec8d4f8ff397a2eeca25"),
		nonce:           decodeHexString(c, "45b7fe4f558c74e873517a4d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f8d8e42a247f040b9e68a91efcac3fa2bdb0a3f800bc4bb2dd3dba7c30256722b8f4b809b4d7a8aa0fa3a594e2c6731eee1d3f3c2b08f2e85cab116a13d2691a88cd6541492014cc07955c5f8a587e4653ca1b46f9c55a9a1cd3f64d1a84798872cbab3d410d076108cd44f2f059af35"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_9(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "716b62ac333a62e01309364e1fd997c0330d5b7cbd98573b"),
		nonce:           decodeHexString(c, "f4c50be56f2ae092fdd4037e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4275d4cf2fc6a66d287a6dcac96c37f200e772a124e6e60ffe1c24d830e574950e3b8157d824ad2b574975df2b78503326a7b924597def7ed4b6aeb64bf1a6af7cee3b5eebc3ef5ba496a676724201fe818a4320bf97ca48dd8caa63909b66eb7f51dc793f613f107037567143d1cf55"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_10(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1125b7287f4b0faeda7d738d5ebada5aae877cf81f752286"),
		nonce:           decodeHexString(c, "22f0897a5bc208af54221e85"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c028912701d511c09541b222c49b7d86266af6a809848b6603a4e93d199f1ab610c2a674fbcb7e1d9beec910fffa82195f999a201f4d27bc3a30918ea155b7bfea4046d5227ea216a431ec2c5abcb99469e825495da6347de11d6c479928e456d4c23c367b6c2cfd848d540c8a0819a9"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_11(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fc78fd63632c2fb6ce6b2324d99e11e6cf83a33b6e88ac9e"),
		nonce:           decodeHexString(c, "2165a244df8d1a3bb1d94e8b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b7949cf6c67964fff1487a06168422e87b755e0385a68bd862089f59d76b0681b920389c5a9dfcc41bc95524fa5e040ec24f0b817c2830c111d233bfd3013ee09d3e54c10271399dd8f42eceadee0058abd26aed92ab9755e8bbc3eaf93998a7ab163cd607921f220c232ed32bbd78c4"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_12(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "91c1b3ef048b9427d6bc49af4333721882f36febfca0bb00"),
		nonce:           decodeHexString(c, "b58377ace58be8dda71b8f5a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "25c113c302faddfe001699270f83d242a00d49ec346ed0a97bdc503cd945f3073dceef5adddb4eed0084bb5ee18a07a8c6236f5f4232f47d0016965ffb9333757ca778fb7b3d003a77c26923798aa00c0bca1293c32490727f358a5b548f1fc83bf8e62c8e023449c9c20a9c93a5f04a"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_13(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6789002d8743ba72ee8ee2b30489e5b60ee0d9d7222be0ee"),
		nonce:           decodeHexString(c, "da4590b325550d0723683e50"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "01c4946ea5df3f1d2d8b7a04cf9056fd1b31b2c874e5cb2046af258fce4161162ce9898de21e2228f66c29cbf318bf97080d476dd501b95df1a0f9bd100ae492fa9861136d39121493ae3d1940d2045f248dde99e4b0e741d1ec8fc816b29e3c360efc27a4c24a578334b18ec793ee80"),
	})
}

func (s *drbgSuite) TestHash24_SHA224_14(c *C) {
	s.testHash24_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2a55ddbf673f4e12538e61cd2bfda6f0316277661f553c38"),
		nonce:           decodeHexString(c, "a0c71049f5c75c23cc11c7ca"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a88e6cc37617929bee1e14f74ee363d1e05fee618fc1eb1f8abaff42c571048032c84ef0ec7a6d8ad7e6c5a4a6e90d714d76643eca063287929032fe75a2b63fb1f83ab36a7fa12a12d7332459bba56b017654bc0fc29beae1897863a63276208f9d11a32780a627135b271efda4f4f0"),
	})
}

func (s *drbgSuite) testHash26_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash26_SHA224_0(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a26e9537dbdfdbe2c16ce370e309def06d088db2f3642230"),
		nonce:           decodeHexString(c, "4618dc0cb490dafdf5ba6147"),
		personalization: decodeHexString(c, "7c26b15ff60b195aadb5a9a4d25f70aeaa84265b27d73542"),
		expected:        decodeHexString(c, "9f0a324c3ce414ba2e966d3312fbc52536241ccf9bce590f15dea7e45d8e7806d715a4a62b541a8c55366d96583ad052ab2f748e47eac850ebaa2e891db60f8a7544e7d6fee7bf506421eb899c11d827842385473e88830ef8fd068e32e5752caa8b2b63b1be888dc561c2a553d42c42"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_1(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0d92b4e01fa4394d802b79ea8f4c73006287367df2155d7c"),
		nonce:           decodeHexString(c, "71050e82b95bf8f5d21687e1"),
		personalization: decodeHexString(c, "e74a641fbe4ceba851456904ec9e8ca4218e670a18019098"),
		expected:        decodeHexString(c, "49a66c2431185f175a2b881a0daa796e0f66df9bc96e446647769f5ebb6627a4ef09d299ed4deda1fe99b4c8cf7022dff28fce6b3de3124f92480d8f83cfc49e4b9ce114a922d66e96d1401aa6203e1655dc0b17f0412b61dcd4fb07f35d0c8ebceec459a4af86fbacab1541d82d6e7b"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_2(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f08d21c58984d116c239b6ce7f0f072c4d41b2eb32484df9"),
		nonce:           decodeHexString(c, "a54d4972c87520aa415b7e25"),
		personalization: decodeHexString(c, "70934927388e99fbc9b861517909b910d242b6231a8bc790"),
		expected:        decodeHexString(c, "c4fcf36a963bf3ef0830b08931960dd0fd62840610249884f89ef2897ba8896ff09639fd7cc136d2d814bae0ea8932a83dd24c1efb730d41f4ca10744de802f4a055dfbfea225722781a9ae821e437865146c6639e87d91737057de0882c270ac6f262cd2c478fed91135a4eaa81164f"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_3(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7a9f4ec4675e3db725e6f0cad3fe524d1e02d8180bb273b4"),
		nonce:           decodeHexString(c, "9529558fc7776ada7490f295"),
		personalization: decodeHexString(c, "054b2054c4ee9d9fe813ae63675fb998ac4fe0180fd13492"),
		expected:        decodeHexString(c, "c15cac5ecce3b57bcf5eea6d1d3ec4988d3c97b6d5cda287df44c2867e632db3eece965d3294eed71f8158653061b8ffee0ee8dae87d29474729451c0296597187c714d6897b3f1bcd1bda05418163ca557697277e9ee6b2c1a3c47ef5b261dd82d4f881c97de1485d0db26146ff9415"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_4(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3f87d110b5896071c058c809b0ca5008f09a9056e0630c1d"),
		nonce:           decodeHexString(c, "fc22430c4dbf9d4afcde32a0"),
		personalization: decodeHexString(c, "3dfd0c683bfdb483fc9d6ee7eb787a79ef910eb55b5f0405"),
		expected:        decodeHexString(c, "ff9bfc1d1e80d7f3eb4435c8df3e582eab3d12ccb9d7dfa33965d23e5728200eeb555e39c7ce00c964287a24a7c600dab589287ff82e12cac3534bd9e4d0a1d261f67a8e644101f990112d8389753761324447e78c6cdf4c447e59be5c16ff6d886a296805e904350fa62b498866c583"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_5(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "46aeebd8df9bfa3431b183cc1d4e39929fb52d3090deec25"),
		nonce:           decodeHexString(c, "6b3ce40b7f3fa7448a938e04"),
		personalization: decodeHexString(c, "46878a6a01cef1c4a30ea47066eba37b0ab9c5b7b76f190d"),
		expected:        decodeHexString(c, "674fafa55cb6a977872b12dc3c426f4ded58e51f176cf5f591b7d84352910f7f39d66f7f85e33e30158cf4e6243f458298467e01f9df3a9723eaf685f4643c4051b76b85f4dc153b1ce9d163e49e85929f9f95b9fba3c0d96b0ff990ffc6376488a86a990af180992128fa7f8d542d2a"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_6(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9861f6f037a71ca9c86164eb5c4eec91bce74ce6e72101a2"),
		nonce:           decodeHexString(c, "c2af429929d4829b4b94974f"),
		personalization: decodeHexString(c, "37f023fabe12c0fff44aa961f5412cbd0ca34f0828038543"),
		expected:        decodeHexString(c, "105a15364d15aebe50903e138cd32465b8b3a5fa2da47802d32d7a8cb75c89b5ba621c3d4ddb4ac9133c653a6cb2ccb971e9125b38634a400b8ace6eb4e99b109d160234ab4cafe83a1320354b55c89e3cd073a263d411482845d96fe1e032e43db88885871a8c27fe13e8514067dbf3"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_7(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e22a7f109f9a975a80820edfde25597b1778b821338cdf91"),
		nonce:           decodeHexString(c, "9c1a3b79b0bb3edd2bb1d118"),
		personalization: decodeHexString(c, "3f7bbe12073c941c1f6ed31fb12e255ac01b393e973dceac"),
		expected:        decodeHexString(c, "536aff6c0cd2e4bb32f11170edb87f7ff7e2e5e6dbb2cffefed60e4d5b6cd6f8f5df013f5e13aa800a8c7d291e659e17f935065c481bc852c5fd65c88c9d40fcf3473048cbcda84e3f279ae1e8d33e9d106cc894cd2c549d2f0d6476dd8e783c3e9be2e116915498370ce0d2b77d14c2"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_8(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cc934eb554741f1579572a1e145c5c752eaa5fa64789def1"),
		nonce:           decodeHexString(c, "d099e1fff20fccb16208d507"),
		personalization: decodeHexString(c, "82883f10a78958c6d5b8c92dec9110893e77ff09bdc997ba"),
		expected:        decodeHexString(c, "e56b85b3f9bf7b9e74425a4488cc087f6ce99dcd9f45f501321dcfae27618dea4916083b9ccc8f3384095408dbb2d02ee8690527b2374ae5c37b699ec7f3c313289c771ec82866fe79ea025405c15b5ea154e09319a075f71a49ad6d638d99b83ccd29f47e054146240bf0870aa89c2f"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_9(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f67452b2e842973883350d8866997e5e2c1feee6bb7685e2"),
		nonce:           decodeHexString(c, "9c0b03805dad87ca333db255"),
		personalization: decodeHexString(c, "0984d59b7d4a95bcf7f0f10f9245aa1651a3e3cca35f8e0c"),
		expected:        decodeHexString(c, "36cf230211dc74b6297c07b0bbfa542681c57c4bf41c5658af20ffc0ee985c892369a40629a6e713f5b4cabc3c38d2a0189174e9f5f1af10dee459f4419a4caea3613370ccaeeb9d2da810cc05064df3b4e5349f50ae5d2120216f435195432db4544f4aa3f72d22bc2286a312206184"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_10(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f69fb91ad26201a137d9358ed6a37c1601abc7fa2c4b55ca"),
		nonce:           decodeHexString(c, "df47344ea318139384b1cf3a"),
		personalization: decodeHexString(c, "517949f5451e9a4c9e38802f0e841ed51447bb634447fd7c"),
		expected:        decodeHexString(c, "9982b4fb5c7784d5564e6175bdb4b11238a3d2fca5ef396a6bc2459930e56a01baff452b5c422161a5257639f175648b6ff95612fb7a2a4ab933ea0dcba04ff6bdf36b84f09a094d234945d0e4248c0a4ca5805a72e374be263778e5f7b32d004d6690bacebfc7aa3df31af8c081f6e4"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_11(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f4e9a343c49283a26de114e6583bfb6f2107b375678df18f"),
		nonce:           decodeHexString(c, "f1e57f308d3626c8f4a9b743"),
		personalization: decodeHexString(c, "9007875be95be3b8f77e805204565649a817d2013b249958"),
		expected:        decodeHexString(c, "2a6a06189aeb79cf666aca755fb68db130714efaa27df3a6f0c87cf2b2dbad6d93d0a5c44dc146ab484c47e8814072fa9fda814bd6391cfa809631ca896ba762a104b601a05266eaaa80daa3458897d7f5038e433e171ddd15f1ae6c5d89d2b97b5b6513e1870c931553aab08860c51e"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_12(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9c9a3402aaa5d4726e8c236b94f9f6f85132ef650b8f0fbb"),
		nonce:           decodeHexString(c, "136c3e41a55f46428031ca1c"),
		personalization: decodeHexString(c, "c2090b993dc33ea85ed255d213100dc0f9352bf9ede57a75"),
		expected:        decodeHexString(c, "44989fc040f82db3963fb5a8dbdc6630f30e7809f0eb660675fdd906b87277961ecfe3291f6c70f59a41e0990fbce70d8b8c2c50b19812056cbf168020eb9e7debe996f7bc54a744b49e79f43acfa362b90217eca65d1a70c6f57c85e589a52b57364bb666b28313e78b998e30831d11"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_13(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "39ded30a35e0c0e02dc11b8fbcb9f01d54dbef143e27f0b6"),
		nonce:           decodeHexString(c, "92b92837b8c53bce250f4356"),
		personalization: decodeHexString(c, "628d19f1c82d07a6a03de095626dc93e298624c07d95277f"),
		expected:        decodeHexString(c, "61234e866121741a10a65b027797703c29cb7cf7347348aac1e600e460243be86b494102d1a8704afcc49c5eceb566cf5a0dee57cb60926ae46ed46724d1e4a2628370ea5b6258c0c187f4c385b8ccf9625a0fee3f9d11de23315a09d8090c7ef16f52afe605e4dea661900014d4bb7e"),
	})
}

func (s *drbgSuite) TestHash26_SHA224_14(c *C) {
	s.testHash26_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2a053d72f043eb480f1bae697a59f17cdd44b9f2ca9112fa"),
		nonce:           decodeHexString(c, "1ffb77244697c3d67a564d06"),
		personalization: decodeHexString(c, "62865bf0f5af2146440d74e5ac8787cbedc544de16db24f1"),
		expected:        decodeHexString(c, "1a74f62cc6bb05ff956d1af526926b937a84352830a78c7ecd2ad9c39a796f29f640d188ded8bda0e66ba81c941fed5e82f3c78543d9fca14335459ad9d573362f6b5d69861cb94c0bb055723ba5416b1fe08e74f27f23cdec9db05b50b01a20f0337cafec896f5f7412e1dbe7307e0c"),
	})
}

func (s *drbgSuite) testHash28_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash28_SHA224_0(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d51bfa907234595dbd898908e3e90e00791e275223ff7770"),
		nonce:           decodeHexString(c, "f3813570a475aac3b7fbe345"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c2e1c50b8a0d0a0a76b0a41b3f3b46f3edf1c81918d20ded790426c58a2643ac72ef1bac86579bd93de0b8426a30a1c297b54f8a01f80e96bae7f4f1fa03e2edc31b0e44c82f338a4c2aab4905a6e231e0e04f0829450c88d17177f3305742def23f6b20a1fbd8eaad8c0f4aae0420a3"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_1(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c16de117afb858ea09eebeede6c98959cc7d23e7d76e60aa"),
		nonce:           decodeHexString(c, "3a5cd5294eb7148fe0bf49e6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ddd1c2dbc679a1b8daf403cf549bb19b8e88610df4ad5583cf32c5d7b223e564d365e5aff9a1c358a8f22938cb7fd8be6f4c187cd32c2956460d7b27dd883c5b5548529e757a7b89eb8c629414dd6d05c93b362de92f5e59f546a94f8677e117f62cc01755bfeee85fa1ed34dcc83c79"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_2(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d4c80c96d8c77c32143b0910404d24c5c60aa6c4beeee7d1"),
		nonce:           decodeHexString(c, "0fe1715a585315e7dc190e8f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8c39007e62a24a425b607a918484664ce901530372dcb62240b2b23b7701e0fabcd27211b137c428443bd7b4f082c82d60e1b882d16d603062f8170f309dbf4ab42f243a6f3f53d131a33cb0dbb4b7bd256432756878c4b791ecc1b850218a018a0aa9e85131f34400592ee859ad00e3"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_3(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a79ce1a08f37ee3f37d6f8ab435b94cf28749da73eedb41b"),
		nonce:           decodeHexString(c, "0988b6bb35ce37d3f1624887"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6f048662784d28bd3c3129f0feaf7b50b862a5e02b0daf428bf90e97ac3501f378f342d987cc11a0ac1faa1550c2f2c78468cc6ad47f8c9d047f849dcb2c9b2cf6f7dbfa398ae3033ae02d39e492b8ec20e2283ada6864b3ae2057620887a369ee08cf1c812b23a31715be7f5af7d6d1"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_4(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f766e51848fed6b6758a8a74fa792f86e7ba840d9a9a5ba3"),
		nonce:           decodeHexString(c, "72210ebe17918750526f6b55"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "70215dc0057e036ff584af502fc3aa1c6c7563a87fecee315c1d42d6dcb5acca0d858b3042ee8accb28306cfa2bb5d3e6e355ffb2419214f7be6465b34a0062538d6898c81feff31657480f67bd986cb1b196383b19cbb8f91a8d0c72ef9b0e884c98f6ba46ab9cd03533df2381884d6"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_5(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "163dca82234c9a423748bd5e607b90af327f1cb32f64bf97"),
		nonce:           decodeHexString(c, "9504c77f0e342d14557157bf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c295cabc4d521a9da9458718fcacd74bf07cc142d3d09260482100faabde35e329fe46e4dc1c36308199eeceaf4f8208a55e74cc4b98bedb9f63568d9f855d8a54db3c30fb0690096c0f5c3ae819110d000283f3bd8575dc532ad4b66b7efc67eaad32018967b43b4c9304122c11a863"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_6(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1ca226fe84594d89cf82967429052f6d1788623fad8fa0d9"),
		nonce:           decodeHexString(c, "f45f05d64f558ec02141fd3a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b3fc16f281290a7d7a2c3afabd44f717170f6355c1453d19498427216c7e270bfa7f5d1e699881f1f105bd52dc41d0790be4dc0ae7e1d73e13c34e7f892f658cd8bc2e811bfa1fedad6070b33a8b90d53e2b40d1763584a59a688d3f887f9005919e5604ecf4261cc283da76677f8989"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_7(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d576a4fc84fd78a40a40b521075afe5e261c048cbb9d511b"),
		nonce:           decodeHexString(c, "17fdcffdf7eb1ae65cb95b1b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bad25947cdb63f878491fcfe8580f1fd18ef0e83e853877090e8aa4782713205810b1736e9d71cb775ce9664c056fa94ddc62566072e04acb1e4def924b209f9a097ebddbdfb8f8cdc3c7f1f28ee2526ba36674430398bb2de13fc622c83025d2ac61c7028d6a113c3b6ad98e67e895c"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_8(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2e98287a92bd9a5503ab95f4cb4a554cc0bae99784b44c26"),
		nonce:           decodeHexString(c, "cbf0010846e067fe1a6a3560"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "81f7dd83421637be81f9e5de165e71b6a09d7c0a6ee26f6d9408dd88988c160f1f179bc730d43b96be2e7e14072ef13531717e65600a3953c40f62362f2c457e57b2dae9c759bc4af38c65d50e6f72760fe07f8dcec219d033d7e06980fb9ac4e65843b370cd8300aef092252208a07b"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_9(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ed4e03b2b75ffccabeaee1ecc37ae454123dfca7bf852d1e"),
		nonce:           decodeHexString(c, "ad93779cf99817b01412d49e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "da2cbf5d47a4df44b3b7bb80134af2c19c0f5e628aadbf4c0fac5d0e6ca2babcca83a2396922d02c58cdc2771de74c82fbb48af8aaff04181076019d8041341c3274dd2242ee768c6bcd1b0aa542ae1caf4209819a30df44bfdeb7a485ff1a02672580b8a8042b0e7d4425286842f994"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_10(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1ff763c25d909bae4442e148129fe050eeac7ee2f08d1dd4"),
		nonce:           decodeHexString(c, "3bbbceb8183547518df61ddf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "763a7f1da652e50fd8aec81b81d70b58eb054e5b0d79dbfca87f1cd44600606dfb0b3e4199d2ab56a99dcd01d23b154428e5b8586a4d56031e0e82d303915ead070c2e77b5b328a3c6de274f25b57eb60fa1dc53de84fdc9449a9bc8e2d85c6ef5dc96f83690c06cef3ebbd0a28ae64a"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_11(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "52ce78ea0da6c9e4d5c47dc011fb6a0445b039898e97c961"),
		nonce:           decodeHexString(c, "9446829e092993fe6c009f0c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c79890800b6c62b38b9fb12e8d07e74d7903c130e006cd28c138167e8851ab938cfaebb54db84829bfbb5a972a2755b99e051738b6d22f916d77ddd123e28103cb868545b5a0f316d488cac8bef473dfbd66846d57dfaa906aafdd557e65f2fdba750f9237523df5d60cc43290eef572"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_12(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "939f7ca40e30cc2fc4a1bc8ccc7e274a55f9249e31d9aca1"),
		nonce:           decodeHexString(c, "9f3589315f1d5851e52e0736"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9aa1eccedc69e688941c876b17589ed757d8601da125bf4d81ccfb3dbe3a8776839839426f6f434155ddb82118e36f10242dab580fe588e6396f2a9931b0d9bc4f13dc38fc85a990f8b9f4968110a5dbdc8aec5d5eac0c084c3320e757117b1c9b6ac1553fc23c291bfe39f41ebc8605"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_13(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "20247aa9598553f13234e8d8fe89ab145644293de871aaac"),
		nonce:           decodeHexString(c, "31a04e9b534bba701eab1093"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bd955300e06403ec6f27654fac1aa5ae176f911c8a90103e5d2b5001b37e0cb3f22b4a8c0f772f706bb954428283ef2dc341c143c1e1522f97a1a711e4c7a56d67f1384471db8eff43fd58f1fe5b61332707a08bb5624580b1ef102d774feeee046764b63e80792d871f61aeafecf90d"),
	})
}

func (s *drbgSuite) TestHash28_SHA224_14(c *C) {
	s.testHash28_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7c8a961f01c1888456ae6042caf338c3ab8b5be28b34d15b"),
		nonce:           decodeHexString(c, "61edc22b49e518eaa9e4e04d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9d2eb0a41f7b03ccae8e4e3c61628e6710f5999f3991f04ba90fb3007275d07ff169d325ab26f3446e585c2d454ff8f6cd4a520190afbc06f30ec9b49668b09de45a116b171c210f5f888cf3c273c803044b17a16b06b44bc39344f2b2acb2f21f4b0a7abafec8c8d406d26477db9b7b"),
	})
}

func (s *drbgSuite) testHash30_SHA224(c *C, data *testData) {
	s.testHash(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHash30_SHA224_0(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ad09c736cb8dda3d7712cd5c7202f2b35aae8e300af8c791"),
		nonce:           decodeHexString(c, "2ff77f55e60ff80d39407602"),
		personalization: decodeHexString(c, "f5679ce508efb1da2d956972d3b60e7de12d8c1ade1e9478"),
		expected:        decodeHexString(c, "0e56df58b8807f848adfa323418993b3d7ed775241b457f11d4897920c16d477d0fa27fdde930e936d241dca0ca7b0114b52aa778b4c8e7e01b056184a164b8295884831221ee59f00076c73d4597e4682b7be34ccb25a3f33bba38cb1f92fa64812f250b992d4f7279ed42cea6f747d"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_1(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3f35b7c4276fa70aa68003827acd417e7eabbf1d20b916bf"),
		nonce:           decodeHexString(c, "8a0be31a81791c537639e863"),
		personalization: decodeHexString(c, "b5eb60eb35397c2d3cb98d1edce6a2211da99e7b9314ddfd"),
		expected:        decodeHexString(c, "e1692317a5014ac1b8b45018b968cd7fd536c550846a9810cc5ace69dbc6dda7131738b529379c2e8c34ad57cabf3e91083c8a5781a00991365aec36a91d465d6e88a6f2c935989a95c8d5bba947669fd35d6b45dd83bcc26548d45d27f72e0a239cc1526a8623cb162d4a082e624b64"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_2(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4d461486b3f22d8ce8da08af84f25ec15fc10c4705110366"),
		nonce:           decodeHexString(c, "fcacdff9520c5d24a11cb448"),
		personalization: decodeHexString(c, "1be95db1c7f0c8b11a5d6f3701a7141a2c65d6eda737678a"),
		expected:        decodeHexString(c, "4b99ac142918528dbbaf74af8714885d674dfadf7600e82ec7aa83e37dd0da47d92b2550bf7c91d903d38f60a5e09cb0b1ba58a4175e47ebf3bc67e65a681d78282b2a1478af9d1540bc67d2bd5bb954a7e649eddac051360b5a9fafc08a24c1b77d59c467311c6803aadfc509651fc8"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_3(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "db072d9325597a235926c59464ee717f8b4810de056627ff"),
		nonce:           decodeHexString(c, "4f6473ce509637b9caa79721"),
		personalization: decodeHexString(c, "cae57c3640f4c61b94359d03c6353711c7fbc8f423edf99b"),
		expected:        decodeHexString(c, "559d18ab0727efd3cd27d984698be9fd86ef503a299cec2432aef179a969b51b101995114587390a4d623ddcd396ffab11991732dce0ad364462d9ada9f2ac85b4a58b5bd5575b9693ae8199826916d0280601443fbaee51e9c8d73c1fc622a7e825dae538a51b03faedc2f1b973f605"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_4(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f72f4f8a6833835810b3e0cc780f5ff555d95072197a7409"),
		nonce:           decodeHexString(c, "681a5457166ca6f83ed03328"),
		personalization: decodeHexString(c, "18718eb98db1faaaeb245072245138cb6c2da969d02c81e3"),
		expected:        decodeHexString(c, "07ea38d594c3cc10f98b8fea0a718814d31dcb0616354b0b4c8b6576ed7b77a086b673193d44de988ae90a5ee485ea6ee0030b79cb6532f11084c5cc7f35f3a8868ffbf5a77e3eff411129f1a70741dfb57ee017133c5c463b210cbda1f555ac25acc18bca1b119d99cf1170f4d267eb"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_5(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9f99d3a316cb6e1580ec67e8fc5167a7759c6c6fbfe8da1d"),
		nonce:           decodeHexString(c, "9c88d540c0095e2747c100c2"),
		personalization: decodeHexString(c, "a3007f783412cb79038f976a266d45809de66088cca7503a"),
		expected:        decodeHexString(c, "835f099315eaca6cb518b4fd087a95f72225a08f732c9acad08f014f3aae3f5759039157d50d9a1714c614a4457ff7ae6318c7c09f9dd11936ab6488032ed675c3982237ab7cac5fcfc2f7cc1f0138ee5a2b946ef74bd807cf26f7df81048c940ed3237067023ba5a3cbdb47c6361ac5"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_6(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c80f7d2bfd86ba62a67cdf3404e8a79c881ce8217a9c4074"),
		nonce:           decodeHexString(c, "1d192883a140eb8d8a90c301"),
		personalization: decodeHexString(c, "0767e17904a4539e99ad56e85f8583980dfe16c80122e0d2"),
		expected:        decodeHexString(c, "f050a9ecb38a3e524b43d987649787fed31d6ec4a4020c569e43fc97c346c02d54304c8548f3be16ae608ca19ed9c343863842e11300650ae2caec61340b6f8e342a701fc9aaa88a0d6a830ae05467ac2793067ade18693843c7af8bc32ef99bdf10bc4db86b3d4a0b978cfcfab89b39"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_7(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "66d5a510a0e0b51d8b028b87f152431fe48d612bfc2ad2c0"),
		nonce:           decodeHexString(c, "acec6d7148362a28e602dd97"),
		personalization: decodeHexString(c, "5001bf497d90587fb7d99bbb4ce1a4ddfe561b469e07de53"),
		expected:        decodeHexString(c, "080f9e361847528f4b8c78fe332988a395ecb87475239ea5d99dbcf819c4951e55ad7a2c140e2167cc83a14c98fdb052b155612b898b5a69f14bf394bd378cbe1a87fb2704a39821b23e2fb2a7f1f17b3f6c8530eb45d2d270438352d9f8af7f63e95f98d05099e6a36e0c8ea45a5b1c"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_8(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ecca6005a5f965238a48a0ea2d18c3623f07af97adc0e48c"),
		nonce:           decodeHexString(c, "2693e9da016b14e2530304ed"),
		personalization: decodeHexString(c, "cf50ca5152d134a6599a1806cffbf4567e340cad1b87bec3"),
		expected:        decodeHexString(c, "3f7860118fc63c701bb883ad136e4e29c0988fa5d223819f718f54ec4f4777d8b114de6eacf0ebac1b68dec8b0ca66e0a316197508c2c3977473628335e201e8a28e9d9221a5ae11cc26aefa34024225d250e8ad2d1eead2aae05b5fd222a7c6750d908bfbe9c4fda64ccfc6b72f99df"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_9(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a173c93315fb6ef19c2e3968482c1e9fe282bfd9f6ec2f1c"),
		nonce:           decodeHexString(c, "0672a5a7f027dc327cbba66d"),
		personalization: decodeHexString(c, "c163923974d37cf0073720da4fb395fc3979edfd29dfe631"),
		expected:        decodeHexString(c, "7916596b3214113a3272de3b4f30105ae1157c1d4b7343422467dec2e0f8cd75d7afe7b5492a4295e9060be4c366532e3de87b88a1a5d509a3057d2115e2d5ead68970b54ebed07a330cf994a0899b5666ca3f18327c8933464d57e145a4505426be34a8f486bab0cea64eb8752984c4"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_10(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4d3578f68331d9f93e3b0aa2c3e2dafa808975635f3cc0a0"),
		nonce:           decodeHexString(c, "504c206fe630797bebc50739"),
		personalization: decodeHexString(c, "68354010ec6e00d140dc70175a49aa6f11da22a112eb552c"),
		expected:        decodeHexString(c, "a38afb8c951188b43a7e8b2e5439668fa316c427bd0072f34be412d3a422e45441d19bfe4a68aa6ab346480bd3c283d32da19609e332d1c12656f20efca50141c6c65d17583c06960450fda068d11536a3cb7d4957ae54e1f564ba798072b4579254a2e91e217000878be390acdf9cde"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_11(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8a5ea0aa66a0207bdbc6bad06491d5e6b9301758a6a776f4"),
		nonce:           decodeHexString(c, "8a038ddfd11361cb70717ca5"),
		personalization: decodeHexString(c, "5c27e921a3a1747c9a9163a41d32f96ae33012abaf46c893"),
		expected:        decodeHexString(c, "34d240b19c2eb1872a0e9b1dfb9e04f1b157b1a85c712bd74eeaeee252a62f8870f9c3529016ffe8b854567d402d77fdb81938dd0bb5f87069599e09882bb30d76df8f2e16c0c075098bfd9ebd5422703461ec986a7c7b9ff4cef52b84a437f5c50a71ce01a166b0ae8df0432950c462"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_12(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b4b4575f39053a6de34b8670e564b0da6cf51bc92b918faa"),
		nonce:           decodeHexString(c, "1c5af0c009ba0eef40e13201"),
		personalization: decodeHexString(c, "88473e868b244d58965983ba2cb6b30519c46a287969a339"),
		expected:        decodeHexString(c, "88ebe1bd3ffbb585d9fb77a9c07eac151e90f1f53ba4a30a000cabff625c2775f2f2512560363f950bb77c7f4f55551c21eb769a360c358551203bcf96a57755e15b91e0bf1901338da338640f9c5a4c2f8e077d7daff35344244510da18b3d0c9e97ce264c3dc6823a213f843950fba"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_13(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0a53165a0acfe31772a6f362d1f6c690963a9ac202581722"),
		nonce:           decodeHexString(c, "77656bf507e3a5a512e4627e"),
		personalization: decodeHexString(c, "f99cd75d3174aa3733e6824202e49b454b1fe86302543f57"),
		expected:        decodeHexString(c, "d97971a69784aeb3313e65ef2e33dac16bb86bdb10b79ad3d62f2f2f5fe2240901ce0673bb2df1bb2781c3f45e56d786a22ac774a44777809b59d0fbd5b420335e04bf4046ba90b5a3637e255b3dbb89204e4639739dade26a313e2778ef93e16e775cc003aae8653a77542633c37ff7"),
	})
}

func (s *drbgSuite) TestHash30_SHA224_14(c *C) {
	s.testHash30_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "411b71a143c57ac4afcad74acb1c61f671999a0c00a9c6c9"),
		nonce:           decodeHexString(c, "a16783ada78fa029ca3fe31b"),
		personalization: decodeHexString(c, "b20dae78f254b07fe3eeb7c793334f3f432930353fe7f221"),
		expected:        decodeHexString(c, "081803927779c7b2039681db542c965fe48dc3cfde712a361e77da9aaf9f21cf38e18b4e8e5ae5a365910ada327b05630abe87858163713fd8c2988975eca44ee3725370f1c68117e58c2164605524102f22f3ea55f21f7e8fccd9861c59973d71c0aaca574480be6ec8e1fb9a163680"),
	})
}

func (s *drbgSuite) testHash32_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash32_SHA256_0(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a65ad0f345db4e0effe875c3a2e71f42c7129d620ff5c119a9ef55f05185e0fb"),
		nonce:           decodeHexString(c, "8581f9317517276e06e9607ddbcbcc2e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d3e160c35b99f340b2628264d1751060e0045da383ff57a57d73a673d2b8d80daaf6a6c35a91bb4579d73fd0c8fed111b0391306828adfed528f018121b3febdc343e797b87dbb63db1333ded9d1ece177cfa6b71fe8ab1da46624ed6415e51ccde2c7ca86e283990eeaeb91120415528b2295910281b02dd431f4c9f70427df"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_1(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "72da39d053c6e052bde22d10ace144cc74a65fa22610140168c6e01a5a987918"),
		nonce:           decodeHexString(c, "c015f7a717b530cd6b3db49fdf62c494"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2daae5267ee22d8488ec158086bca87f1abffa5fe76dc532516e0f93dea5ad30f6d179e977e2bba496868e535c0489227af41ae73d61909b2dba2d94f80530dd87a9292080f6bef224d1292d70a5d35c5b5b94f7bf7c0f70f4cf1475c27de210c5173875f7bbe59f9adf07a721a914afe3ad1c8729947d514d2bb33f6c298b4c"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_2(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9d98394dc924928124f67d496aff2744a2443512d21cd9b1e4741c0bae0fbaa9"),
		nonce:           decodeHexString(c, "9cd0880276376b7e1bc904605daf79a6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2067124679ffc89649ca204db906b8f3b570e809162e3fbfc84917f60655a907e79f6e01a57c968f366c30d741a6bee959ff7617c43d29a64c159431e23958a54b5aec1f39beb42ba717bc370588ef422d04649e56c2d076b18f3625a9ac3eeaab437942e77839baee63618dfa3fa09c3a2fa12a2a3c3fa4d355050b0015db01"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_3(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "123093771f61bfbf02672d2e51669095eac503f28260650acd956d66489cc2cf"),
		nonce:           decodeHexString(c, "6be500bed696f47639b637182f35fcdb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0d2880b8ea355466c4f2aae750203e497e8cc43c949e1fe53c51943b9e712e0e6c33c85edd3421e09d7d2d15a464f94127208fbfb4c36d986aacffffb6ee95533fcbe251a822bb2870dbcb3032acde54f7b1af63bf352a84f5b1655b756b56ec7f470b23f04224456c51db772c4d21b50bc8e6133f22c00644d840e34316210d"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_4(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8dba318b8188294b3c67d7a623e8cebf89b4b9a2e87cd318869d074502abaae2"),
		nonce:           decodeHexString(c, "3bf3fbd4a3f814e4d63b670fb2770ede"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3be2b8659f989e0c2ba62d019406c893a6f69135dafeb28684b6062ba16a245e8979808f4b42d3839d6f4b1e7b8c3aa2601fa2ac5c97bfb54b7abe172b4104a449c0f10525599d1d119d36993b1cac64a8807478477d492d614096d360a024063295fb05d4d686c95eb1debd7af9e5cdaf3960ee6a673c1e211cb3b7403b3f7a"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_5(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e003fe0ce5a6943e0b195bb7824ba31ba95ff93089a502367a0ebab5c819c93d"),
		nonce:           decodeHexString(c, "0941087af48ff89f0b5fcaf3b3585c12"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "85b83ab2a160aa214ecd024052352ca433b444788a968f83555c8c2d4bd9f4482d34d29fb544a00a764d21fb384e36e3799d94932bbfd2b7f0e34638febc7c649e8830f773689a0cc360629db21e604700689d5b9c4b5acb2f460a1e588a38203a5d412fd17c5b561ad843fd28f7dc17a3b3d8c18872cb790803d06374cb27a8"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_6(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "590cdd82ed0ff23e5b84861734ee42c53882e10b030c05057202f2c43fa9ec71"),
		nonce:           decodeHexString(c, "95dc6706b352dd1c7bde6fa11d6a9aca"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c664fa13b6274143ddf17368995d0b213cbda25fea4ba4373166d294d51541b8b1a1c6391480fa7f2a37e3a0f28d182ac5f2f1e8f956f776dbb7ba72a1913fa995daca4e4ce2031c1b4c64d3676b108d0c82772ab574a53d35c2a7fc2649836ab06f883aa5c044e1018cc348b45db431489f4fc16ff3bcd3c7374d24d2100f60"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_7(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a7166b37034444c20af70f98d18b570c289d6a6869aefddd2f2377b0c5c4e5f1"),
		nonce:           decodeHexString(c, "d7b8d8758add3d0013ca46f9c992a15b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0ec5a634f1878d5dddcd5cef2d6318d25b289b91b8c80cceeaeb63c27e2c3e3a0f41e21e213fb87f0ed7cb70651f5e4a9ec5ce2743bc828a25f1de8adf5d2bedbe9e02c17dc0070bf4e603bdea8cda856d64ba0b4b4e72c8c7618a3b154e759cd19b048cbb44280a67cbc985739bd325f8a349b72b5803adffe968b88b294705"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_8(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b37f0d04e8fdb956114f529ed685d810b0d8a71f3fcaabbfc798dd9e63f91c11"),
		nonce:           decodeHexString(c, "dde1f4938d25f6a9308934f0eabed3d3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ca2e784e37d1d468f1699bd8fffc44907f2369bcef5b17f256e4d01054e231142bec9582d15c40d858bc912196bbbf844033893aad7c84905e172d5736949cc53199beb42eba5c990e8e0b76cc4558e755ee5abaf40fcfdc6c01a43a59ae7fffbb7e54100d9734b8db7f575ff0d919c92d8eacff73d9f5136fa86d1c9f0e04c7"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_9(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "55943fa5274526031f20a0b34822a5c74702ba93c87cf21ad6ec17b99236abb0"),
		nonce:           decodeHexString(c, "95a37931988963066826e5d91c006497"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "575d788ca6f6388514e17c1b859d98a97b00d3d71f7ef8e620e621e2f7de4f5dd84a9bc72df70f7e65c50b49c3554d6d6288c776e51eddec155573861f87c961c6b3a78247f78db02413f17902c20b8e510834816873bfb225b667ecfb0fc947e28f66080c6f88faa289abfe821e6ae4de6d7bc4a1c36e187ecdf550ad41b9d0"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_10(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "34c06a3af1031f2c6b15baeb68ebd42162571d867713b5f572afe92226229d4e"),
		nonce:           decodeHexString(c, "c92092af647d3117533f0e894a3914e2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "76a85071777d64c95de7f5b6da5d98678b07988ba91e561aa47fa08535ba4dc25d22fac26dc844660a125a6913ec648676d6da0f4d9af6385b0fde771dea9f6491568356bb176f02452f2a330174ba3c9baa8949678ca94aa1fcd4d3bc7037fd0cc7872c407c2bb79a57991c328145b9a6382fe062b1f95b21eb76467529b251"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_11(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b8b93e7f1ba7d16778c2f0534f085aed65af14704f810255c52a2c2f73e286dc"),
		nonce:           decodeHexString(c, "692ab38ad1ec0732ebf1531f127f1bf0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2c3c63ecddd73ddbf468a98a16f9d1ff2c9ff51598923406b040602d874ececfae4cb412a11df96a75015171f93517c0571aa595a6b64c504626c5298c70e929ada8b3be41de2534808df4f5338595b09ca6d81da66cf7a1568faee77f7f23f5e481e0ada60422530c028332765c295a07fce0107c77a5b4aa4b34801834d178"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_12(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "13a63ca5e762aaf2a821853b87bc608e0acd52bb8167a0cd5fdfa2156c941eef"),
		nonce:           decodeHexString(c, "73d2167bcf6f89e1a548ad80afb13de3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bb68646451a871898c67a312f12f6217d6047551414dab2c64dd786d308d2cfdca2082f2d4d497e7a890da3c04a5613e9efacf01417ca01f303d3419871a97e3d7cf67b53391da651b2ddb5df2ec6448b8dce0ca3e5fe78fdf7d5955b6b205dafcbb74365e3493ae2b709c4638243f1d77f5397fe7ac78baaf337b23b5faa851"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_13(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "af58361acbbd1e254ce98f463d1a47f64998e4264780ea84d03ee67fba6d0a62"),
		nonce:           decodeHexString(c, "1ffe801e5c71a15d4b80375c066ec61b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "02a06a8cbdfc215476d526c91a6f2bff994e6d7d40c0fc73b3fb2723fc8c6c9e669af37df33ad62827ee9da452c9c7f46d24caa1f1ca99333e26ecb6470db9522c6fe319bdb1d34ed52037e4b5b2021d8f63f388b954c7f0342394196522bdef3251ffda5efa9f4f84dfbd3dad94ebf84e7fb988e6cb631de9ab73818e6fde3b"),
	})
}

func (s *drbgSuite) TestHash32_SHA256_14(c *C) {
	s.testHash32_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1194beb668839c47c73e7516f9ba09d23dec3553b3b5532f75b260106dcc2abf"),
		nonce:           decodeHexString(c, "3c8a77351e93065d584feeb08c8424a9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fabd48bfcdd07968239fe538c2d8c9bde2e257b9b244078f39287c7ee90de167fff56a693c4e64f45081635511b5fd031c0270a31b4a014e44c0516a55ae72345aa11dffcda4ccf8cda50f6948d5ae425d8d53ad5c74cef1364277990156796e1c5dfa1ef095c0d8983477eb24241135760b02c86c86d4ec3627edac8c1a7e32"),
	})
}

func (s *drbgSuite) testHash34_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash34_SHA256_0(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "dfeabab904bfe93a37bb5b1ea4a696f881ab5ab4be87ffbf2d4e8cdfaabb37fd"),
		nonce:           decodeHexString(c, "a2d458b475053a0346b57fc518849ba1"),
		personalization: decodeHexString(c, "d15d5d9a4a3a41877b4ea98dbda5079ee393f6ab24105dbd70f5bf145772b15c"),
		expected:        decodeHexString(c, "86d8c63ed4a8a19f3429b4dd57ede5ca573e861712e631400645ceee763c37cf950bdcc4d9c886ead3f0f1bf46a63bf22bd2eb39b2dac61d2e8c8f29e26045b3db56b2265adc8152d4f736c09ee90364a1e265eb5e77b0c5988c8fa52717fd33b6da760e78f2a7c27065227c47ac2134b95b7dadbf96e4ea2dad78ef200e174b"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_1(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2a85a98bd0da83d6adab9fbb543115951c4d499f6a15f6e415508806290ded8d"),
		nonce:           decodeHexString(c, "b96f96e1839ff788da84bf4428d91daa"),
		personalization: decodeHexString(c, "a880ec98309815d2c6c468f13a1cbfce6a4014eb369953da576bcea41c663dbc"),
		expected:        decodeHexString(c, "2d55dec9ed0547073d04fc280f92f04dd80032470a1b1c4befd997a11767da266cfe76466fbc6d824e838a98666c01b6e664e008106fd35d90e70d72a6a7e3bb9811125623c26dd1c8a87a39f334e3b8f86600777dcf3c3efac90fafe024fae984f96a01f635db5cab2aef4eacab55b89bef9868af51d816a55eaef91ed2dbe6"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_2(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c58e3fda017dc0757c452873657d6fae6b2af071e8bb2c0e7b55df8a9ec3dd29"),
		nonce:           decodeHexString(c, "ba0686d6f607c6d2dda190cd01fe0b9f"),
		personalization: decodeHexString(c, "c072a6bb045d682c498b88030f9a7fffae8912ee89c8fc3c2dd672df18e03452"),
		expected:        decodeHexString(c, "c6ababbe424a7a6a3f3a07a6cd566fe44280a1a15b2c8a5507ab0d9516b03ca7be90158531ca6c8ff4d6ca9589b8f62754e542a47f815fe869a255792b4bb6bacb1c50a06af035b61aca966cedf45f6b7982f4382532acf62defd68db41d507b6bc261efd9c00cd0991bdf589e1de807282468ff53288e33e48725830f4f0245"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_3(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0cc162cd3088cf13d44691eb9cda01458fb16c34d3c320d04210dc29cf1b55de"),
		nonce:           decodeHexString(c, "df875475252ad6d66afaa66748d776df"),
		personalization: decodeHexString(c, "326849e67e7439fd905a66f4fec74ebdd309a0a050a2a6d3d98f015a4aa876fa"),
		expected:        decodeHexString(c, "f52678b368fcab4ec1126a2c3d931ba8a1f4e90890ea6be5c3acea5234d6a71c4daa96d563a9be5044562821cf31dc962435aa8c0fb3c514590e7e293ff98a5bf9df0ec5f73bf36381e0e5df5fc842de44c7b5921023404280bc223aece659138917bcd9689bd3f2fb82cf47b1db49e91b5eaa0f10491aeab3ceac78f4a2f598"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_4(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bfc6258061ff1e94930600f5ef0dd56d6565b61b99add62ffcf87bcdbdd68691"),
		nonce:           decodeHexString(c, "80b249023eb6c58d62c509ac8332964f"),
		personalization: decodeHexString(c, "bc6d7c7af785c30082de5f83c999a3e418c46140ad180b6a8146bb8787a7b729"),
		expected:        decodeHexString(c, "d39a223384d05574896716912a33d2e113fd737786e6f25f44dbbe2df0903bccf141aebe3eba4b326f10665c57c630bcbcdc1362b9a0f244ee788199dc6d9ff99eca9f8b7ef76c4655851ccc6d652ea46ed2c3148f9cbe9ac534d888ef648580ee97a5b09ef5c86fb1cb99a4734b8dce19d225efb078826bebcc5a1712fd7519"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_5(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "31a463f2ac5e9a3a69c1c2a29bd15ebc089dc364db3596a0db6d6c6f7a599055"),
		nonce:           decodeHexString(c, "342776716c675bd0473cd104ab978cdf"),
		personalization: decodeHexString(c, "fd8d04c7f277caac8d96be3f9563333fb462997471f4e2ec16932d05439e92eb"),
		expected:        decodeHexString(c, "b5e5a7cebd1cc522b4d00c0aa7a1c6b4d13314e208f1eee85c7e1750f145181019c2f86d7b4ce995a14bdff40571edf6ede51c4bcfa88b6a717b5bdf7138c83ccb2aeaa8bf5375c483e04ea65c8340e347e63902ac986f6837b50d5afeb6f5ded5938ceb663259b66b6ae041dde1093b1282f834c1fc6e35a318832898fb8648"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_6(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "745b09d574d1c6369eb41e4c86f281895c3e6a035c35b31b0bce032010758f9d"),
		nonce:           decodeHexString(c, "36b69a1b6633b08495a4105872d64dd2"),
		personalization: decodeHexString(c, "94129bf095d49565414f83c1cc06e0109fa416511756d9096a95da27e00c8d68"),
		expected:        decodeHexString(c, "e273d0698423cb0064c7d19d3298feb9a15e7684c7e8b80f0bfb88459a02dd58ef2ee8f8bb0694cbc404c459ba22d10c855ba6a5f2377a4c6fc125dee75e8da4ecd291c1716c694191964060a9f7c0699a681bfd423858d67fdf49da3a44011cb92ac61a68db3718cc5eba2cd25ec5436201b4d6a0949d86ed94c985aaedba18"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_7(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1a13e1268eb80323e04ec0a32c8ed99ae4e2f18f2eecf29149115839f2c369e0"),
		nonce:           decodeHexString(c, "ebcb8216494217a7d32b43f9b866c13f"),
		personalization: decodeHexString(c, "e1380276e67134a1b2100a2239512095f2866795566dea7418d2ff95ca35477b"),
		expected:        decodeHexString(c, "f2bb0cfcdc7af7dc06ef410677a84b61d8774a8c2575126302751a9207ae21a5c7d76eceb6b81a438bf4247541476c0f2405e2eef136eb970eed83ba0361c2446717449b9598f5a78dd82c444594e82c13f49f34d340d2e67253c199049e1c44ccc1cbdb76f2a458e9987a8bb033bf69642865dcaa39c384930942c911eb1e13"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_8(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c1efb4a10bda29d83e46ff69b5e59de6174c34334300c7038656242fe3f6ce90"),
		nonce:           decodeHexString(c, "0baf6e6e5f7279278634a18824c4a7df"),
		personalization: decodeHexString(c, "7c234f15165216df8b7b5dad39cb860366832243bbbfe5d7d501ce9966f4fc6e"),
		expected:        decodeHexString(c, "0dfc48f2a0e0f9fe8bd2066cf32cfb1b62658909d940e1a16c492eddeecc9bac2e210328203741356434c553dfe84522f97cdb351c4d67d990a74654b223c2ccfbce95253223066b6f7561bb6a348a4050329c0c2aa601bfb8398a9578b87d686884feaa7cc4a01dbb646f788d8b071ad00440606182cb3ae65180ccb0cce4c4"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_9(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "59002231818991eb8b51e07e402e29b2c5c14d29ed37d315513ad9b61b53dea8"),
		nonce:           decodeHexString(c, "ffeea2ee73f3aa4791c74b4148772855"),
		personalization: decodeHexString(c, "71344e7b94d373d5fee3e28f7a3f98770b85e81ab9090b7c35077efc3bb2e744"),
		expected:        decodeHexString(c, "25ee5dafe8da2302ceb60c80e9c47bde1a45be8d4b190f24a5b0c9cece4041086e4c36e721d7c65f0cad043a0877e7de748336b2b68e833decd0279702aa45efa0b904efff95878055cbb583e21e55a1645b4936bfb5d6ef7508284e7e2ba99c87c70f1ba6094258e32b7c87f32c93210c6ab2b6874473cf7adcd34d94cdf8d9"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_10(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c018badb3ddf970d34d4f229c73c5053f6e74672afdd9066e0cbd7bc3307e1c9"),
		nonce:           decodeHexString(c, "56833cf4f4fcd47999dbec236a4d1382"),
		personalization: decodeHexString(c, "fb553107a28b004be536e1e15911a383c20118d3986b25686190000c894280cb"),
		expected:        decodeHexString(c, "cc168e495fe82793e3fe9b4ef497f09bd04bc50519598c07c7db0450482fa32d0ffae15f76777d6c047182acebe89f79f86a9e1a90a1a8c372ed8bac7adf9b03277204abceb5f8b487c437b79664628028c169f367e3508ab212ba7215105c3e01063a3a0d0db7781331e6012b5b465a417b05ebb4f548da70f83797e3753739"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_11(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f8fd7b39f1be4c6c7494bfa8b0087c90ef11f2302d36d3464a63401c0c8b5c83"),
		nonce:           decodeHexString(c, "22dc2792fcbc2a7c40ccc655cbe0fa8d"),
		personalization: decodeHexString(c, "8fccc783a77a175c1225ff4ef6e0c2733cea2bd61856e000980ef9d895ef877f"),
		expected:        decodeHexString(c, "7524774e098c3dfce4da6d839ad696fce268c24525f1439517633e82d52aae315373e36797e1e3b36adc67425e9aaf7cceb1b19e13484131cd0aff9335cf48d3068d205952fe231d6dbf74c7d97077453f7ab1447f24ce4ee2f61975c17bf671ecffbe2dea4505fec87021c5f56840271b87b90caf590c95983a8440de42d54d"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_12(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "dde38ed265be4426d7fa447ee70b7c811bfd0e74a2618b60e36de8dea5aa4af6"),
		nonce:           decodeHexString(c, "f8dba4c31093d140acf8ca561de80e90"),
		personalization: decodeHexString(c, "971af30ffeabc6cc3330cf52108b4a6d278af52dd4bdcbfbd99494f12dc6c9aa"),
		expected:        decodeHexString(c, "42d3dcd59e4a09f0781b28268031ffddacd6de651a988949854bb0958d74a91f2ab07a3b4f29eec666b516f7ac8867ba2aa915c08a27af59875a5a6673559eca0bd40688bc9ef1731e36150de1c242cdca4d734357768b2377768a8a73a627f1c7422bc985c25a763205d65ff7c3afd9e51064ce9cfb25ef37aaf902b86e96b7"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_13(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "39edf813bd7a141659a5962720c0ea8d91edb00f54f05b433252a076acf1b5dc"),
		nonce:           decodeHexString(c, "d74cba7ba9f7991c7f0c5aecc4788d49"),
		personalization: decodeHexString(c, "9b546dcfe080170378bc1e833674925d0da0be2e81656d11935f29edcdde9bee"),
		expected:        decodeHexString(c, "ad933ba15f8b440c0c08303389a3a11f3abed7dbff640f95e4c09fdb9dedb05606cba2e4ff419c0f38471307469be4814e341f74092cf7b314bc26177a97f1806d5e69570d7a789e8310f9b1775bec2562fbc2aacbe7d9ebaf8ba4e953998cbd9ebb9902ed98dd05381f44d9b08587be13c32b5dd23a6717102e3de450b82c99"),
	})
}

func (s *drbgSuite) TestHash34_SHA256_14(c *C) {
	s.testHash34_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "17176a26d4364c55020dcdf2f82d792caa013d63e6ea4610ac123ce2fbe4c6ba"),
		nonce:           decodeHexString(c, "de2186bafa82b0d08a0b8215e3424512"),
		personalization: decodeHexString(c, "d96db27febe22db935b117dc3068374e39c5b2119b497e3c1d858ef649e01de5"),
		expected:        decodeHexString(c, "d04435a8aab397cfcee5151f7aa24298ffc6eee4f577cda42d5e154b8d28cb2f0f945f11a15ed5b76486c88f03081cfd262d94a8e0b332e3c9c608461dcc8eba20d7db209810d25c226fda9fe218022a9b2c96876cb16c06c0553dd84ce57e20338c3d3e03c59ce22e668e25c2c50d5cc9afab91f50a28680964c2dacb9d2fb3"),
	})
}

func (s *drbgSuite) testHash36_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash36_SHA256_0(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8bb315fb43de660049bfe98905376379a133e2936061a58538d7a3e9f9727fc5"),
		nonce:           decodeHexString(c, "1fef1c133df5640b0248b246ed9ddf49"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "705e1e0dda60268015dcead1a889728ec6d079582eec9acf79e6fad850c8965cd264d3061756d196236053ff561972e231681cf89e96a4e1f6b074f5c6f0cb2742d9b5d9db3c60657db17e15b86eae41626bfb62e0d58fdafbbb3e6563407eec8f5d166d15dce3eb0386444f16ef72678d549d3c96c33b0ee89802e50e3b93a1"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_1(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3909ccca9c088242777e7360deb0ffd08305edd8f2cc975a5766b1cca4edd23b"),
		nonce:           decodeHexString(c, "ff6de7667baee1fe86b57b0197257b7b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9310fce4493058822a5502fb3f6d62568cd003f485a95d07f02cdff93750265771c0d58abf73ce024c5f8dca7e8f37818d51c6c369d03e67850c4904c5788d7923978a47a4d395d76809924b8366d50eddc740159949269f1107d3295043a0f25ac0064bec05cd868b5cab3fa55cd1f3bddc37048d4a30b05ce598dd1f9f2c58"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_2(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ff4f40e7427160c8ff9f802ac43053be76bfe72ea3f918cb1ea160956c5ff42e"),
		nonce:           decodeHexString(c, "18eb15e50b958a52fe4fcd40f259586a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "57942a072f37854c09e1cb83969397c896f716a3b593c24460fdd3677e06db3d6a6e08fb38b0e9eb7f7ec3cedf29d5ed91e261c9f7f41481eef75f1b005585909ed03e5f05a8af32de5a2378c32088df022d1cb3eff1ed0bd8b9572995760456f9ec1fc21e1690948e5fa9c6d6b95072ae8c8436a781e062856748da6fab714c"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_3(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3c9c77a0983bf33660e14dc595a39a589cf9ee93330dbacc7f9b090e62e09099"),
		nonce:           decodeHexString(c, "f52b0b2a38a6c4af309b604dbd08d822"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "24b811821fb55cf52f18dc812453e2379842e3674b59313b3cf1c9a397e79e0bfedc60db6d2ee97c83fb3370e6c6d399106f9897b542cddd06a9071aa2746c1442b6ec7762a7110c8c2ac7d3d94a1744a685c06826e2828705e139f78e6d23c3f7508f2ba98e2f47d47ab2e3b0d85a8a4d614899178643ecd0c669ffb39ceaf7"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_4(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "773d008ee1a1b0917fc3da03c76f6e52e74748d7869a22508e3b4cf50c0015c2"),
		nonce:           decodeHexString(c, "1502e2fc204e59de9ff39933c429d154"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f0ddc5760e73b7fd5bc560678b006711f25af13d7d05c1f2c7e1ca462b3418158582176b848b88781a583bc7ebde955bec90d9f3585f6e7e139b4c8a7113099be4ca75f51d4479e62f34a3eff1ccace97e7b3522b7956505c5e79ea18405aa1a129f5b5650cd6d9cc1604e854a6af770df3f984e47965119299173fa39f6163a"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_5(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "193da0a769483b58b66f059072fc8885d62635825c42216c034a8febf65001f1"),
		nonce:           decodeHexString(c, "f597da9635ca4f395fb99477b5447cdc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "52c2a48f73a509cf78e1fe5f2eab809140c5ebcd24a356e8a6d8756c8f169d817bf1e3344e2d79ca75843263455cd861a83866b64b1ecb2caa96b775bfc8102058dbe1986d1c1a96df3873da9a64b82515ba05751b32f08f19250ea9bc96d81e8d0ea0a6f2d36ea571724f1a7d30aa0fcb098e2b79b4556f7b68553ee6b6d282"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_6(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8b0ab289c5d2e286f8ae42ef04a4198bb10c11031f9d3ce49e3ebbcd80dc0e7b"),
		nonce:           decodeHexString(c, "67dccac1f5e4e921c9fdf450f9cdd665"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0f7fe7d5d75796201ab88997fe48de8d1e7f617c68b00f3f121d5ed76052818da98f34d3d0c91bfc317e7226619692d222b88757f5520da601d50729d1467ce6f74690bcc0efb48f3bb904ab4b6f5d8268370b614a7d60ce58897f0bce02210afbb57e5699c783a8725c1974ca165e70c46d6e56cdf2d1f3acaed83768ed9c39"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_7(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "870dc6dda31e7b6b6d8c42e4662d01a9b66db626a5fc00cc16d4b70e7dfcaee2"),
		nonce:           decodeHexString(c, "9e18a3c040e3f380f3f150b383721b03"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bdd6083abb14ae806c4dfb3c415d0e65b081281339708fa35bc08bd7788b39683ecc597bef877823fc32afc868dcc3ea72576de3cfacf5681ca450aa8ffe32f3dd5f16136c76ed05918b3588de8465ecfdb316c5bc3271a9868653f906b976c9558c2cea41d5fc06eae8ea11cd5d5129658a047852d4d4bd6a29b7d03a1d9a30"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_8(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6314cbed7f60bcc38ba5c68ed66a6e540acc489c64a757e8ffec995a412f66e5"),
		nonce:           decodeHexString(c, "ed635d56e7a0e6ec4ef471c0809676cf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b009bb2c49f06a1fa12554e5dc8d27557658512b70f3a4774594dc71b3c6fefe9c4000c9a4d604cfd1bfe54446dcf59f416382568ca7e50b0e4c1a6942ad4fbc852c363f6c8f47e19e23edf6eda5fa2e9bf33f1df10d2549cc27dffdf93acf638662bdbcbe9d3586df89c22f91d63db4a216b28fa5218edbdc8f1301421901fe"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_9(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3a7bb4e4ca42c61b49d4f4bf5fd2309f68864f663090c47ae014c38930c9dd1f"),
		nonce:           decodeHexString(c, "368e34c93980503730aa8fa8bcbc342e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ffea14c68a3121760c7c978d2e9b7f7dd2432ebc78b8e82a8e542893f4be5f9069a30eb425d51798578ee8ffe41003039fd09b58d3669c1a0cb18ba6a7f939fd62007da8401dfbb46941965ab79ba93e0feef9de42bb658aa9b1f4c2a758ebe8da978fc35f905d4f9688ed6a03c70b1fb6d76a054aa5f56572e34104e676cb1d"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_10(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4230265fef6d8cb9ed4472e8f1a1a58bb7af6d9348a728686244c362c48f60a6"),
		nonce:           decodeHexString(c, "d709d06ae6a992c14b18353cb5ecfc45"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4982902068289b598cfb64efa3f5f3f1edd06cb14c4d636c633af56b16f8fd1c4a285517c7d6b4e9a894ce9013a8c8f92fb951a335dd464200f0734968d286c8e111ae946067a7d840b98fc99ae17cd314bad538079898e55ec7d77a6d53c99b313745d16b7f60ba36eadde1c1bec39359e275d18a345d9562751991e28d34e0"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_11(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1b1b02ab5ebe5500732893112e792c4633e61c5e20d8f437394b8e82c35e0ce5"),
		nonce:           decodeHexString(c, "cc7579c3164a92f56ad93bd6091e644b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "392ea89da64cb6effde107c6ad12be67189979a145d03bca6ad7dd23b8dc48837ba3719a297141839295e3d41bf6d5eeb54da403e1451d402497649a9a98d66b5fbc0e7e38d9304b5e1ccc1204e465ab0634e1f4a5b3a6b11794df8e96c4c260acee65379e73644845c150679fa178ff8fe5557562ee2a94cd0fbf965cdd0995"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_12(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "eceea48f2056736e94b43bff65c091b119d9c2b34a78e8bf4f3de9a44cd6bdaa"),
		nonce:           decodeHexString(c, "554ae80ed94a3294851b89fc20e73ba9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "490b1f1e861d4eb98c282edcc6bcc7b0eeaa8892c6c44ecee0dd3fb5bc0ce0e4b8b24a927e256f8fa092720009c90ff2d2b684eaada7316d0b4ef83cdb8e22a3725796a2b4f557e9db98c2f0b29e30315241dd68d3fe889358c427c510871c797cc263f18b1b931c03a2af2ad315603d2c53b3d62ce0e1e1b4bcd6cea2655a10"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_13(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e610dafc442915f0c59bc9b5f6a05e297b67d6ae410cff56c4a39a8f2517299c"),
		nonce:           decodeHexString(c, "44a14f823bfdfab85bcc4a941cf9a4ec"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "65b3fbb62ff2ccf8a65ed9881e07f1d2d0c734aca7f203ee301bfccc4c4669ef4bf2b8491289457ea618196c2465a2310baf410835f94979dbbb93a42040f36ed162777664b475d6df38b00be98110002d74614322586a69112bfbbf52f31aaa417e5e729052db13e3328d97ab1bf2fca3bcfef581c55692fa17e0090d7e1a07"),
	})
}

func (s *drbgSuite) TestHash36_SHA256_14(c *C) {
	s.testHash36_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a7a1dbf7f828555610197e71e0ad563b8691589c5289ced03e9ef83b6f9ff938"),
		nonce:           decodeHexString(c, "4274788c5d80e26ec1ac3a57b9c7c0df"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5a907a26c1ef588219d4c69fcf4c5c283ab148a77588a40b323bd24e6dfb29551c4b6116c4d61349f5f8bd9ed497f38b239c37283902beb3c9700c768fa289ee4573f92316efb860a5ca4267b328f03c13138b774b4b9f7516003a699f7a0854a0efb045a5932753a771c2cc6119202b33336f10edb715bcce1d20ff503dda01"),
	})
}

func (s *drbgSuite) testHash38_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash38_SHA256_0(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a4857cf33fd496f9e7171d3ad64b6a35c5ae44af7b87912bc1fd540722796137"),
		nonce:           decodeHexString(c, "1a9c73962f2f3f2d4790a58eaa3d9096"),
		personalization: decodeHexString(c, "5e3677e8e9a43ac8181622b42e91c448280896f55cef2a9734e5e5527bc530ae"),
		expected:        decodeHexString(c, "fa82f560fb8bb4ba24ec563fb03be58792bf3a11c9c60c025fad0aa4dfa68fbf318ab0b6594be18b07bce52d227f50a44a650ac4df479b969d5b46ae60a66421dbf3ebfef0737c71b5d76b7b616bb9764b2edbd87ef52a5185fcda3c6a6dbc4270bd61c1bd50e606556343017001a3dde98a265f36ac3d124cb18a5dcfb37940"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_1(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "983d05878c13076379d2d4a0b5712256a7ee1c9fc9865d0023fbaac065077929"),
		nonce:           decodeHexString(c, "68379638e3ad024573e711065178ca7c"),
		personalization: decodeHexString(c, "b4c34d7bb19f2b4e7d1a3c33f3f036ec27a874f0d24fe4f2c33dbd3a85d5596f"),
		expected:        decodeHexString(c, "5e258d2f9270c6daa80434c98cd1f05dc26330b8dfa6d53d490bad58a96ada5b8098bdae39f4d97fce8f561a242358b832df3d2a352fc5ede95f6d041bb2f8ecc00d62bd358d3df2d8fa6e2841ed515b96c013d3fb321aba54c497c29422cb54bcbc09bb8906a03d63bfb9784c0fd04072d895c019c1d69ea5346d754601d069"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_2(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "43dc8c77c621519733c71184fdbe44c7ebd4bce8786c8f4cea5844c29610231f"),
		nonce:           decodeHexString(c, "c606c535e068a6a79eb87e25c6efe068"),
		personalization: decodeHexString(c, "bb15d65d180c4b5de14457bd6454b31c8a15047460b153976eaf65104c9b1e04"),
		expected:        decodeHexString(c, "bd4a55395f1f8ad37a7a7f3476b5ddb569ad42ed57d678f1e8af97905e4d151d3511d2db6b8bcf313bb58675768f472ae96171a0c362c4b2e8548cb3b4c9129721e2c3e0ec8d576935f150fd8c79eeea7d6cb25b54c86a975546edb32df6198b2d47138943f0379391ce8b5c7a20faf0d268f21652d25187afc04763156feaf4"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_3(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "56754c7b7825c717212481de3dbe1f11c71332eb01f395ed8d2dfc681ac95181"),
		nonce:           decodeHexString(c, "102bb5e8ecfb2cbabd0ccde543763853"),
		personalization: decodeHexString(c, "0cbed991d2abb392cfdb311ea5ec9c9d01a48839e5b216e58c3a67b749220982"),
		expected:        decodeHexString(c, "b4e382281c2f937287e622f27ed8de73cb67d99227265c191ab488573ebdd779e8466e9cbf26be26fc838c3398ca8fed126f755398b93303dbaee84ddb6746ef1cc1d8c75a38ee2e43927d9e295ab3dbf070528d17642b4c9fa439a814b41d122591156715cd0fe54e9bbfe03ef3974965415976f20a345f456e14dae8848b84"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_4(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bed1f25fc400357a1d25c2a54d65b9d128f3ea5c63cf46fa4b0328ec31a4a8ef"),
		nonce:           decodeHexString(c, "1462b598c9415f991e755d586929e325"),
		personalization: decodeHexString(c, "4f6b1ec3f487f7341088abec343c51aef8cfb60d8d46a0e9c68d187da02f14d1"),
		expected:        decodeHexString(c, "0f9162d9f5321552f080f9453203c3d589554c6232f04de0e3868a2adc2d288b4f4f03d118e9f7fdfc96271f77894eed97aaccb613da415206bf2ef4036ab882964095eb1e246e78890651659a5104753652deb54e822543e5c4c6bdd8164a49d5478436f1e74677d5112bdfd59dfabe21a8d973368f738c512aa66d0f87071a"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_5(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1dfbe58785ee77f0ef206a25466cb27834f314ddec65c1eafe19aee1bd86c623"),
		nonce:           decodeHexString(c, "ac5d723fa5faf45b114cbdfc42e2211f"),
		personalization: decodeHexString(c, "40e715a969293a45afb1eeeab4e8b11d5c043cf58a8a596e1fdb626d7f8fc008"),
		expected:        decodeHexString(c, "bd6bc74b7a0fd49fec46cb4fcd5940a77a1ec93705ce356ffdfa40225fc728f3cc8e3918dee65fd21dc94b6926407e7903a17856ef1bd761e6d089988ea5b0a449c09ee0de8fd4489dda793b96639bb35188029a79e8c8b337c0c40c59122c47313903068da8b77b21318b59bdb34310d7c16ec91cf46a69a567099d29afabe5"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_6(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7edbfcc031bb2f1b6915c4a7829959547410c2d9ae72bcd807905c7cf6ef3bad"),
		nonce:           decodeHexString(c, "ebde9ff05b417e6285b88eb4714ed97b"),
		personalization: decodeHexString(c, "3514eefe53e06b85cfc7c9e56ac4aad000000557420b79c5c17f54498244af86"),
		expected:        decodeHexString(c, "c8e418b8ade328deeda4e595662f4f18edab051f799df6d48641357035cf90147b2b63b452f6531649cc80b27da7d1b25a89979498232cb1695cd6e563c50cc9b7895e8bfbef2d6a098670d630c8b96d7e29e376e1723a617436a65cf9ed730448c251438025964a01dbf6221b9aaa1327add8f4544e6fa15f7f410def8861f3"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_7(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1909e66624d0581dcb233e385509d6be6ad3babef2383869df05b8d4ea6470e0"),
		nonce:           decodeHexString(c, "901d6f4340b6a62c9cd6e4416579b1e8"),
		personalization: decodeHexString(c, "87e0df2f0382030b9c075a7c9904cd2373c23d9b91e1a3fbcea1390fb2d3b94c"),
		expected:        decodeHexString(c, "4cd933385c35765ae534e6856b27db712bbd3929bcbbf1a178279712e495dfd0dce8badd62e2e29ac17f00b2bd2319aa9e46f43b819c48af364011543bdb3f96b19687dbe5ad3afd04ccdc888089c3ef2e5b7ee9e17520e36409b24007633a09f9cc1cb34ba5a403db103e987148c24f6d62629ba82dd8ed5ecd189a238e09a5"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_8(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a5f94511ff07b6bbc622f0f3fa2c6b60f285b51122f8bb314be2af0c947b54c6"),
		nonce:           decodeHexString(c, "b05459791bba70d4889369f43567911f"),
		personalization: decodeHexString(c, "aa196426a45d6f5aebc5792876e55beeb2e54d2a828952b5ce925a3b6d0c8cd7"),
		expected:        decodeHexString(c, "874e0417b59921fa32983c7bc3bf68a1efa3d954d1fe479bffc35f57e919581dce3d219707fd7a5e5cd236997cc57fce7d305172864228c23ac8873a2b282ac90d2c0f32bb900c047370f086ed06d3cf0469c3b82d37dcfbda0b1beeaa9c62329555ee9a5367221ecdcad623a778055e5c0a1ebb1d8b454346bfd1a78572cf17"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_9(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "95c199afd85fc1981ec2aa6fede6436c28c32eae52e6a44edddf1f5b4cf7642f"),
		nonce:           decodeHexString(c, "8dedd5c32085a23c1c6180f453cb4dfd"),
		personalization: decodeHexString(c, "3a162000c4097360c4ab4137ca5631c1c8e025341d1b62efae92fafd59a48e85"),
		expected:        decodeHexString(c, "c6227f19d479cd1fc49dc13dbdeeb0df06fc9f6ce11c6c1f3c6708675140463f2133c8bc6ab6ebd8e9461e14f75d2939df0df46e0c331c3043aa04d23ab93fb0cda15923e071087b22b5ba63f9484e7e496b2a9a9e8823b9a8276ab846b4c9a9de2dcd6691fbef71100ce82ebea79418b870eb3f8fde931bfdc6258f74b72025"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_10(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "fcbcef50028bdc7ad212751633a02914372c6129a08a006a6018e4a347236a87"),
		nonce:           decodeHexString(c, "01f3250094b99f81778642d3be752d10"),
		personalization: decodeHexString(c, "45508dce23e691f9e70c6b2e1b2d3ede36b70e7ad23ea78db232666856d2339e"),
		expected:        decodeHexString(c, "ba7f0b27f7ff1af636b284e964c4cffc8ea96e5d8bafde594fa95b3508af6901cadbe73898200265a4aa7fc4401767da4395b83bfa1cc331161f13a976946eb5dc6fbee959ca7db4374a4a9456939abf1865a41b16c146ddcd655878011182a8d244c6e2b36acc47b3c2e72f9c03015463ab9afb56c5e169d27a8fd61dd2dff8"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_11(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6dee1a672ad15390a3aa8726f010069c9b7fe9478f14e18ec3f4c342ab133190"),
		nonce:           decodeHexString(c, "313177543441c2ff222d912ee95334d6"),
		personalization: decodeHexString(c, "898c40045cedd2c82de0b0f83802aeb3ef575ad9635405a95c8fbeba921c1491"),
		expected:        decodeHexString(c, "131b74ff3efb83e60c5222715eadec6e0e75e6467eb45a31f253b63c01dfd5029339a5312889aa038cd0fbd16212324db31556fbbb06f86ce99383f237a194368e3540bf8cd4c6d3dce85dbe1d13f6a3aca30f93093d9d0c9e73122d1fa718b2a8d245fcbb8db13e89e417fbe95474dee914a4746acfda507403b9c222070fd0"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_12(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "df6c135f471686d1af5ef05f297f25595c5f05e4fd502a1f693d9ec44df1191c"),
		nonce:           decodeHexString(c, "f6ac42f54beedf4643e4423892b52e8a"),
		personalization: decodeHexString(c, "2d8d07894bb0256782f300054d95cfb51a9d19fbfec922108a50cc2995aa705c"),
		expected:        decodeHexString(c, "34ae97069cfa8629b801b8db03f1ba0db19d9322b817a7eba89c3cfd909cf8f07ecc0402ca9bf2c894c4d3807bf3b9b4d674ce169b2a26eea3ce9ba64994dcd393be35eae7c8ec640185aa290d8152bdb854bbadb33521f897553b46297e4b2af2d0a9b1743ceff7648d60a73b4f5805d5f06fe5296ebdf0d14f430e7b2f2f3e"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_13(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b92b652bd6bbe5b5dec2e1d736f9c90f1b1df723952638cc6aaa8023c029a49f"),
		nonce:           decodeHexString(c, "37ec9e6c51a7bc6bae0f526c83c86bcc"),
		personalization: decodeHexString(c, "529cda96958ff83d39a5fd469834a0c140b3efb8e4cfe663e2d5d2ced7fa7616"),
		expected:        decodeHexString(c, "052bfa2f45ab5459f2911c0a606f90b91124eb6bd1d9af30e56299127129c464bfc66c816264c8a71f6f1fdf4f2395bf00942cc23b99d05e07e92ed8c172de7d608db41b35154dbefd625d06172dcefcc0235dd567d1fda69d255aff1fa5b698abf60aea6c0e7b13ae3898609ecbfe3c90b737ecd7d2b9a3dcedd647bbf04181"),
	})
}

func (s *drbgSuite) TestHash38_SHA256_14(c *C) {
	s.testHash38_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "46d644ff515f49a39b743bd15469d7f96b2737037120a2a9279f564850027a3d"),
		nonce:           decodeHexString(c, "ab7843b73ecb4858f2cc5e9dfca803ef"),
		personalization: decodeHexString(c, "dee559515084d8ac49c3803f09f3d5fed3b307946a2752c267677f22786a0125"),
		expected:        decodeHexString(c, "a12f5e8ea3bb174934c15e5d114ba615da33210c98c38d7fde4b5aef9aecdeaef311d929d7fece7fee11db67134c3326b413b8dc17766ba4fb881105db68688b148fd95d812f6538b14f25afaae84d39025336136d270bd643f2a6c7164930372fb1c8f4f0dab60283e9d8d3440ce8dc66761c5d5c4c13cc3a367feb4869b559"),
	})
}

func (s *drbgSuite) testHash40_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash40_SHA256_0(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7cbc54c2e6a7f023a8f8999a5f1acdaf7507cd5d77114cc9b4ac7299dc1be328"),
		nonce:           decodeHexString(c, "3da78de7b8f5e46ae8d906702d5a4bab"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "13d4bd6089a740b85a8e90683adb29bc8ede7b21c2a96c96b79573b2367fdffd00de609b786f751020f8d9f94b7052f0a14c1c4ab54cfa093b1e7237f3c72d95aed30f79b501d2e2616ee51f124e656e9ec94ba64e399c88089233928fa3fc0399bdbe145a275be1787d73ab22fdd54e142f312d4050645c2a45884506f3fdff"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_1(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d60129547fb2f419089a6dab653274ae805eac0affd7b94250a258b56524fbfc"),
		nonce:           decodeHexString(c, "95ca595db46dabb4c2fbd72585b96850"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "849069b5c73b05db92cd63a035624fe247e9d84f6d489ec767ecc70d14ae87e23a097ec145103a85728e8c85a8c8b3ffca8d7c8ff080e8b6a8fb41697d5c9ce10ebd69ce9e57917ac488bd1bd2ca9ab97adcc9c769a6ba45a2a812b15c740577fd13d20a4257220e3436c3e517a3c49fb16a7d17d48aa7a32b49279c6c5ba06c"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_2(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "97d2211c473eee50c5de5cebc764c096bf5e3553cfad251e1025d8bfe7629263"),
		nonce:           decodeHexString(c, "e44bf914f9c6678bf6dc14dc37d3c7cf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c079e2405ace7085f70a35120826babe44989f559765ef368475e643ccd09fe1ba61ee7a3fef478fddc44914877860658ecf0c00b5c32944841bebbf73ab716b113e4f55cfc55f974c3bed717255ff5632d29f66594d72c15425fb7525dc814e28af2dbb0f3f2435becad4f1ff67b6b6758a7cb280670a3b33328de6959a997f"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_3(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e4054f80f7b7713e5969d74bd5947366e6b6c91904fc6b0833b2a9215bf16098"),
		nonce:           decodeHexString(c, "560a78b9d9d918182ff199cd979d4d00"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f546d5d35a4d82f2741e9619afbb746c36843a486dd9932a4add1ba92ac58e7da6174f3c7168d30009823a946140d9f7cc027c4070870b9e8775da22f8b7d46e94eeadf89ab17932ab9fb05da08ead3b011575d50ac991d51f5dc46515e9fda09cd8e1fb24cbb70a9d412c111bac94b27845986106db3ec3523374c83ab0b366"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_4(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "445adb190686c6f01267f85a9417a07891964db6d4912ca0104d8b1913c2d417"),
		nonce:           decodeHexString(c, "629f5ad6ab4c9a53b855a89ef9131b6f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "025d2c8da422f0cc95863cb879da114311c00c0bdfddcf5b7a7fdae89aaf116d5dbfc97e0a610bd5883c57d2e07668730566e6e0605a1810e6ee818246588f12a965c0db4b639e2ff8d3a8085b3f1736c46a86e1c7752a7538bf240f33b817470e69ded4d223911538e6fce9e39a215ac1c70e978a1b82c6a85066cf0e341b2e"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_5(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "663442555b663b23c27815574b8d6ea4181baf870a5325b22364efdf27acb811"),
		nonce:           decodeHexString(c, "13059175b7f5a2990691f8b6ead2f9b1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "159ac7471027dc356b90dc757ba922d84f2e393d528bb851a91c46bcf82e3b08f73a3fe6177cf5548b542b4061facb28e936f153169c0e0148284367cbc21ed8eb577a31581c94c69c7c8245213c53168f268b817667860122c5c2e1e06695b7f2db2ee8254fe3c3c121232f4000c2ab5218b4ceb1eb129c93d821616586ab8b"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_6(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0471b2c922386cd7ecc4f58a69ade3837118a3ff31c2baecc0761231cdcd1dd4"),
		nonce:           decodeHexString(c, "21cc4f15f288ac2e391802d9c25d2989"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c528cdcfc606beecd15152e89e564acb9dfb44d760d557aba44cd8c2d7c1918abb49aa4ef4184a189672811247e828ae5ecd0ee1afbc03831e7725767da12b61b4173afe68aa71ab34bdc69dcd9e744194f3f9d5b3664548972df82ce61bf1ece49b61d973d153c286f510ea6dd165921cffeec2ed4a3867b7fa23ee933e0342"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_7(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5fd39bb79825e10cfcd9c836059672484d68caf7572f03c7dc7c87cec3b09157"),
		nonce:           decodeHexString(c, "11e932c81d29873a46836836cdec4a93"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3aada5139ed24c194427f0e2102f16da7fa20faf88bc0fe2a91799566217212314ef60e3adbf7fe3fd0f25737cc0c6d1c469b99759c6672904c5faa3214ceac0bfb9115322e2f277e8a7d963a5fc9bb1be05105375a50b9dc7468b91ef8d39cb04e1d80d756d7b4260e3edd22c94fddbfdcb9f74f47e4dd4368045194893a4cd"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_8(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "fb1af2b3a8e063696a0c98a69bf3185a60b81c5ab631fed390780c4c777ebb3b"),
		nonce:           decodeHexString(c, "09656fa3bee0b69678e11caa1ecda431"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2aef0263d44bd904d62ec386b43320f6bada030699d1e5a1b418364b9159b24db47be608447f4b313bdff6365ce8b07775b94c30a03e7a73fc06156580a2fa35b83e62bd502d3a48cd518911c05611a7b3e7787bd4c15e8f51f52bcf1bf748225704b7fd463c74ee34f86485a82e495455e84b67f2859e227c90a0f1e8abd2c7"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_9(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9ad917a384303e4eb02a5ad4d4655123441d015be4c79de9b75252f4966eee2e"),
		nonce:           decodeHexString(c, "7cae69ae330b83357d52a0c60db51dd6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4715b2e627ce240b670868fa0d2c2db6fddf79d349debd8d1638e96d4fc75367e216d5c1bbc24e7f04bb9b4018799a5857286bb048670de20112cf19fbc1078fbc0494f867f73080663a86d020faef2ad639000e8f469157b07b56aa24cfd9de96503d5a497c36a76bb5f1315fbc0368ffa63c086eec9f3c2a2f05f39ec4b730"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_10(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "63b10164fad0f77497172f863e0dbf7b832ec44b130013f88a036cf35ba00787"),
		nonce:           decodeHexString(c, "42dfcf70ca6d0f748086b035893044b1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c174c81bedc81793110fe8afac7549475ea85a5ef44ab286a44ee5b886d5432b6c47c1eb37ef6df908a26f10fb36a8f7956c0651c2ed14a730456062d1f1b99d2048cf61e76270e1dff2262d69dff741f5e1785659a90ea81595ae0aeaa1b69f8653675d39e50423976523894557853c396b8d36b82e31cb9696a50ddbd51e78"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_11(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4e5d44e9aa525bed9b454072ba8ce8716a5bffbfa0048998d83de5f3a9d91d37"),
		nonce:           decodeHexString(c, "57ddcd4ab6b80fd437826cb65c86b257"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9b0869731cb7008c93284ba8bdc6d13502f4b702b3dadeec8adc49bd7c6b120ec05f1cd817b7a91c01976642c96efaf9a28513361f8bc91e6abf0937661eab6ae2da72dfe6b1010739f4bc649ee31c326ccbd8142add4a67cb7ad4ea43aa464611bf42d0ea566d5123526f13ac4be3be1f2d0c63e2019525b51b7de24c34a6f6"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_12(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0234b735e8ffbea694599073e9180ecdd4ca98ba58c75b9f67ba81d19db07db9"),
		nonce:           decodeHexString(c, "dd0b80deaf176186c758f3587b741d42"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7584d6ce09b80b66fb2da0300cda78bf4e8f6c7b9069fafe59279184ec53efed9433e12bf0107a28a5e6f570ea7b103060203af7cc275a846305e30e67204a4c09375cfa74c2ae96ab0eb5b81eb51c6c95d09ac5be8f1312834d47d1883253bcda11517f22138ce72fe6256ee21b62bef368cca98c1eb8804ef7d75ad9ed2a88"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_13(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e9377e9319cfbb35462c4a68e31efdfcf812a678dc4a6b09561d1f8d7cf83e53"),
		nonce:           decodeHexString(c, "f10fe7569a02299e548b2a374eaf0320"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "eeb4cb39f9a7099ca43fea36969d8ffc6035107f7f442eb93f47e9ce739c45c23d9080b00c5824f702a8b4a79a43963e31075c974a021db55e2e419ba7e76fb568d8d24a6fca1df0fe286802f0b51d0ce35b6dc2d105da2ad3a36d14743fa22eac0b2316933dc0c3bd56fbefb4239fead21e42a065eb222460d0c711ea2ed1b0"),
	})
}

func (s *drbgSuite) TestHash40_SHA256_14(c *C) {
	s.testHash40_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "dfa94c198483c5daa046f1dd1e4e83f854fd6c5cbc3465f671bdfd36837779ab"),
		nonce:           decodeHexString(c, "298de64bbd817d009a71c1424ae839f9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bfb9a54ce31406a82608aebc826441f8f633813a0c3bad723b802f3e905a6ee3512ff3513062aea51f93be17aebf1cfcd81868e85db3db9aa98680f974001fda8fe6a644f5efbb9d6e52e99ff606ef1ed7cd3b17fa6c6844790ed58da6df61aba0c200d7dff943588f4520891798098bddc65797b2f99c05efa090c60dc48a4e"),
	})
}

func (s *drbgSuite) testHash42_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash42_SHA256_0(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b1cf2861d5076eb18612c3f82930cc4ba6b9550736f741c0cd0534b87d86fa3c"),
		nonce:           decodeHexString(c, "cea21378eee439c51109b3f79c910c45"),
		personalization: decodeHexString(c, "24c0a8516faa85e14808e89aa0a2d71975cd68e0dd31b6c43b309deaeeef058e"),
		expected:        decodeHexString(c, "9ffc823cf7dcdf286bc53d8adb84f2d12e5925c660f365aff1faa13bd3ba78e65a457f1daa93e4e5eac8d75299455d4fe4ae00e801fc49a70be1ec8e8ccd63537ca176b2d37b5f60bf558afb5fb5073261dd488d10fd1478361549485e9a38e9e94c2f0a2afe5c9de2a8a33969e19ba5c23e617412cfa5acc8cf3782ed9aa883"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_1(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b2fbb673ebcc69fa3c0030973f6638b3c180336c13a54ac3b6e3346bb7efd7f5"),
		nonce:           decodeHexString(c, "f373aebed57ac427e23e2ebbc35d19b8"),
		personalization: decodeHexString(c, "d3303fb23acc24e13b28fa6fa333a1b7be244bf5ab3cfc4b13680c08a4ffaa95"),
		expected:        decodeHexString(c, "1eb240532d54a759d0607ffa55b59f01c6deb83ebe4f0c5e72a86876463e2386e33b7dcdecd7bb21ddd3af56602a2e7566a88d5a27dea795a81f6e765cab3c071e25ea3e33202a9ebe31ed2a4857dc902107449b6c69c7d929ff35bb44ccf22064bf382c0d405f08aa73cdc312cabe4c49beaee3d7726b77ee0a24394a4f8162"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_2(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "80cc1236257b9f5e35c5598b33eb0161bbbf23ec7d9a90793191be7c7475d770"),
		nonce:           decodeHexString(c, "aedaa60739ca728db6aed8bbca4c9316"),
		personalization: decodeHexString(c, "ecb8cbdcaf00649e9bfe53f6a06c7d004f2660f2b54f514dd9d2c9dce81eb249"),
		expected:        decodeHexString(c, "801627b51c768103363fe4bf5525a96fa396b32d76864a8dd81a35eb20034b870759735d7248d40f023ba59ec6de827468fb7610e8312a78474724d1812683479537981da2b2b17eccec2158b18731806be9d58dbada2214d810db05ab358dbeedb101e9d957b15bb1388e4a3916d13f4c901ef9c06aa034dd87f05ab1012850"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_3(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d20d511eabb09c81a79f3ba6f6d281af2a55aa20733d66c633adfccc3c634be0"),
		nonce:           decodeHexString(c, "7420ca6931c91336f864c5c8f8ffec88"),
		personalization: decodeHexString(c, "9fc3b3b3f6d39e533fcf1bf0b3144f481e52a7924406f7433bfdf244e96fd94e"),
		expected:        decodeHexString(c, "765e248b0db5920307b4be960e057142b3366b590d96c2e9924386a707eed69ca983c5cc60440f402239a1cee2cc221c314803d35c8a5dc49ddfd339f10943744fd3b7b8ceef2cc8d9cf902a8710ef794140eda8b66d4c91bca7546681b4eff9d3e44dae601ba5f64c4ace842e10d865bd42238a13be3d60f08c4d64195568fa"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_4(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8cad67aee7daa30e2a3278db86031dca6c49b33a475ba679151378bd60465201"),
		nonce:           decodeHexString(c, "386f929e5d599de61b93f49d7b2ea208"),
		personalization: decodeHexString(c, "7609160f2e21c410db396f68218702fbd8269058ca2c210b8992c7b89f8d4b69"),
		expected:        decodeHexString(c, "0db79419874923766f12b77fdd961b4384fad24e836b5ffc99382dc0832f5eb6e306b635ef220441e2c5331c9a22a3ac73ea487615112c9ce247bde7926bed0b17ec920f44ba6283289e9ec938da4ef559b44986001773e89d63934e15c467e8fd03924b12004df1390c267c29bb2084d06cff48913cebfd6cab5771011ff6ce"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_5(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7aec24d543632b4b17e6c8282bf780ae4823baa9d302025ff1c0a4212433371d"),
		nonce:           decodeHexString(c, "148bc4071939c0df24a0ee1403a91cbd"),
		personalization: decodeHexString(c, "dfc5432fdb048a77eb3489331063144a67119f5c9e9b81292e695603fbf36f33"),
		expected:        decodeHexString(c, "60e502787163b2cd2713f717bad799753de94875e423949b1f00d5ea607f62b25cf40266f05486ec0230340fb66fbcbc7825ee86e2f6aafb5852f8581e7ba6c1901d63352d60ad8266e6f4caed56941222726ae1035f66f380c1636c4b627694ee57e2e6986cfab21c6d78d4f073eb7e367df8adf4b7aed4e0a50df0237b03f2"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_6(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2b0f60802f16954e86360bb30f57235c6ae602abaae59890d4586943f7cbc6f0"),
		nonce:           decodeHexString(c, "da6409a4a3aadc73f4313da03f8ac920"),
		personalization: decodeHexString(c, "98080ac454e0947dfb872df6491abb45c361d58ddea368d98f9e6bd2a74ef816"),
		expected:        decodeHexString(c, "2b0be9b692b3a28891d635566b6358d5c17eeddc5e1795b879adb4655df7c2a241c8eee6b8f7b6168d55367c3a2899bfb530b67586e9f2b8940019d10dfad986abcf103b787fa982e009aebd24eb52cecfb916a1e2de8dbd8168c2f6a159c6fe0ef18892573c28b141812bde837d2c749951cae490b491d26f39f7e17a3ed7e0"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_7(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0b2f3490a83576f730ed04bd570e4dc2513a739a282b4a5f843dc42d7db3b60b"),
		nonce:           decodeHexString(c, "d4c38f01cacdff71be37c02ed68b4186"),
		personalization: decodeHexString(c, "170a9ba375aa92d5252586eb08f04658e7fed3a6820e5e2d3df7db4b29740989"),
		expected:        decodeHexString(c, "46778c8804b6e5ecb7cda8c0535c6257b80bba1d362b45bc1ff67d181c2a02ebd0f3cff63d04f6c4c4db5b0b5954d3c2037c6eef94ce36b7f24a0cfa0b00905d8ddabdc201007b6bcd0d7c60e219fe1ca9995a3527b1dba50caceb5e0eb7120eefd1e9625891edce039c4d7ebc7f6bfd3839b4f608b18ebf3e004d913e029078"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_8(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2e9ecbbfa3fad5e53c4321a800b5297af95f1471256b2a09453ba7934d02cb46"),
		nonce:           decodeHexString(c, "9d0e03e36ce2410a125d0b5173b4edce"),
		personalization: decodeHexString(c, "6bfd6bd8e4461f827a206aaad604904fe9b90f209a9e2337394971cc9cbf19f7"),
		expected:        decodeHexString(c, "085a72dbfab649bf383ac75b6a044eb694b02371cd880e372c42cd0ffa265ce3d9b5253f2782b3ba701175f8c4b81f280f9996c3ed652b1e409a3740c5a176a5624784c3f03aaaf2b0f721428fcb55c9aebed4b0a13ad2c1bb2170adfe64a25130a41b18066017fa6e5595bb5d1d4f6c7355e0a97046d892cb255b91a03d5f1f"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_9(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c9e0346eebd8b4e63974f7bbcb54c85f8290afa61432cca40a5bb2486c116f5f"),
		nonce:           decodeHexString(c, "28421ed541358dd585abf9e3415f3260"),
		personalization: decodeHexString(c, "297a6461f314d04a9a30cb4606e1a31f4eb5cf89fdb2c4c716e83d21588e4573"),
		expected:        decodeHexString(c, "2829cdb58fa9d47b5518ea8b34d67935ffd1b9d753ed340f7f6d0d76883ccfe0998dfb07f0d3431902cb1681de34dcc78637a34d3450c600af0bf67fe86674d5dd8b667e5aa5f1dd9e78039b2e634857a97bb2fcb566f695e678af10b5bce17d30876a63e11d6a4053d159095ee0bd6f5f872050cf9ef712ee600fd05865550a"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_10(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a438e51dfd58079f0cbf7d0722965f95ec21ebde892d4c36d3d95b5f5e8e9dd7"),
		nonce:           decodeHexString(c, "c9195a85b4748684a50238890b00d373"),
		personalization: decodeHexString(c, "c99f46288fe839c63bd1bc21e3211901dd8393fe3bd18c5567ffbba90eccf747"),
		expected:        decodeHexString(c, "e1ba377f1966c66329b6b0a3997d6fb62e06afa00cecc41f3dd532e6b0427d89c89bfa38cdc92abb90a512040d6ecc99bccfdfd9ef7f59c46ebf0aa63b45bca6e45eee02d0389e283c144ffadbcbaaaccf60ed958eba454ec31a026f0d397c5c5c451e8a301537e7e2569ec791b68f868e7e374a590b56381b6350dd5ab217f9"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_11(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c39b9c88b3bee8eb346bf86bd4435e738b450149d1bbdc0fb9c16ba9ef3a02dd"),
		nonce:           decodeHexString(c, "12918b5e939878686facf9264338b73b"),
		personalization: decodeHexString(c, "16da91970406d5cd9c29ecc18cd3d189e0f6cf65d86612b26bf6f2bd88dbbecc"),
		expected:        decodeHexString(c, "ea21806f4f2202cc00216f88299bc6681c3e0fd0c5608e8f4b6ee4522d59c43588f769fac9b48631eecd415c643665a83bb4b6d39a26d81de07eb3a296bdc406f7916b412264bff596ba85ee6866bdd64a56b6f15776c41b063b89a9a80a7abc3c54cafb7e7db65b5e3f781e770b5880041e484335165fb7d859158403d18470"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_12(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6dcbbe3731f95f1fbd6576433f97890b52a498a022ee4931fca4478061ec5bfd"),
		nonce:           decodeHexString(c, "44abbc3bd9db8c992cc7d3cbd5978610"),
		personalization: decodeHexString(c, "a4902e4d2530596e087584d55cb1175ba700fc66b1cba3cc9025a1c5fd984098"),
		expected:        decodeHexString(c, "a4f8dea1d06fa88c2eff31fc04c18f0611b63fcd6639b26a884d0dbf58f880d498bf2adf172ba9b3898ddc710b19a9f9f7cd57aecf588bf131418daf73f728e33f94348ee5d3d8b935e6461f9b30b33f83b1459e17792463c2b4527a1837daa05a976b62cacbb81ca9e826e7179a118ceb2096f3f5f6d8371ae67e6b91dd274d"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_13(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5b44870f8a759e080d05b26502d930e3014857c25c0112f46869244f7e3124a2"),
		nonce:           decodeHexString(c, "930524dc57d8c1666a375ba95a99e97f"),
		personalization: decodeHexString(c, "d880eb9e2df605d87b070c5fcdac39d18da0674d2ace57753c09cda63e0ad896"),
		expected:        decodeHexString(c, "89eec24a8954a252b43271c3226f3a3bf814d8f7d14d7ea53b215333e42df4441d646ae967055d29ddd127bd7c96bd30b21e4d379ca75a831a97d516b1f9141814b654dc55f99522af8a92c72c78f5207d49afd3bf1eb52e26f89b7d6fa3504341e6e627771c925990b87070867e9eb972a29e3da7fe944bb486a19c41d1462f"),
	})
}

func (s *drbgSuite) TestHash42_SHA256_14(c *C) {
	s.testHash42_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "88f77e49e275f9db1ee419e3629c942623becfa50072eb2aabc98730ffe5977f"),
		nonce:           decodeHexString(c, "ea7d3c3b8f6da0667d7f0d543c68d7d1"),
		personalization: decodeHexString(c, "86c20a7e794c887898d5bc00e98398276a4e3ad8d674fb808a63a44330490d2b"),
		expected:        decodeHexString(c, "ee8e21ff48af611a17d33e130f4e4224330efcc1402b6d55aaf1f514553b880f18df68c0e4279854eb2e9b904c552f69f0e1badc347ebe336b70456f221e07a2fc78df72551d99df3755997029ee1461e2b6e396370096d7e8c2dfceb73214a72ae2b25ccc60b92dd71988eda811ceac4b7c335528249aaf82826a14c142007c"),
	})
}

func (s *drbgSuite) testHash44_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash44_SHA256_0(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "10fcf8146dae3b9128b9602fd61a2a6bb009978bc9722a85bd60f8d30b83f552"),
		nonce:           decodeHexString(c, "6baea5c15e9250c9db5c09435c4ffa73"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "24ae5313ea0103b4b333ba25e22457259a41f85bac9db81b6b55f1caa621557ede088d6a0c4819a253c58bc562e00c6447499c091f93077dccbe8e911f9475da659ab9ae2a931f66065f67d8c24047be1481e706ea73ca69765a65f9dcb591e1b73a8bcf8a475ec946477b8cef12723c2742304578f0bccd7e513b78ac94136e"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_1(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d77be0a5a4fe465537546e994851fcab484262f4c697a2adcce15539eff5e675"),
		nonce:           decodeHexString(c, "8c752466ee270cd4870f5b4d3e6567e1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "227673c200cb5d2b60c44d7bb90c43a8b06cedcbd93c3000651f8fd0b075d56f824aafac1c6cb892e75db3be1ce0cd65eb2069fb58adc875f098d8224cf62d4c04609f4571abbdcefad66c461a0c3b893f2140333ee4b8a89cc8468f41748fc565fb65798aa11e030df73a285407e6db30dc4a62f9bae2a7b42203bc8a6a4917"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_2(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c162e8a2cdd60c3c63145741dba3976d08793c2a9eefe422ed2790f0388a7a9d"),
		nonce:           decodeHexString(c, "f5e38686bd46f8841253465bfffacfda"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "63701fad5563373bd6c3ff38a1bb7c8e5bd3a88b4cd182af534c3a120317fed5303efd8002709da280a17b39b506c4188f0eca9219db90868e3780f462b95902cbbd339543e41b8a98eabfa31399a0bcea9e8201efa961aca14a888d99556da529e72bb8158f855fd8c161cde32d130afd8c8691cd81a785e85ebe212dfac0d8"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_3(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d44e4e3e5347e90b4d2ee05888af66da3c26e1aaa53ffe764168c53f4e8c4777"),
		nonce:           decodeHexString(c, "ca8495549e2bc06e444e559ee0c2e259"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "77356279c3c7cac6f804f32c496078604db25290aebd9014fb54b2c6854134f11f8dba3290725c97a6908bfc266563652ba59404611351c4b010bf2ed2d53e0cb5bc9812a27919e0db208b7897ba426b2b0f7c6982a6c3d3d9343093a689038d9e695449ef5a5db0786cbcb9f738bbecba27bc9310c62955a99c2a079b3f0d64"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_4(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "164eddf7e5ac3a97f12fd9dcec6a2c28299fe438b2f2e528b85a5570273c49d2"),
		nonce:           decodeHexString(c, "6e8ffb04f424e4a44cf9ef1d23976056"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ad381ec5b480bcb139067d5c6fc34fca074e7582bbcc2950de130fbf5a71ffd66c79a5366bed8749a2fcca8aec48738024b59af4f50a8ea435daab467bcaf8be0b340022bbacba80fd6ce5dc31e83f86435acb4af5ac6bfd7ea55ad66e99c5d77332efaf734560def68562f44530a4006d4d861daf290a10e22305b4e629e716"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_5(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c08325886f63c7468875930cdde822f98bcc5a8bcc9c3d3ddcc93b87778dcb8e"),
		nonce:           decodeHexString(c, "91b70fec62c55f130b605687773d1ec9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b87be3fe492519398921db91d60ae31c99ee62069fd1b36d8e5f2e18f832ebca16e72b88c5898b27d8713718cc240b4517dd2cba73cc00fbdfd6cd94eb9ab2cfbd4c276b68881cfc9c612fd39599d73570a4614353795a9357f12450bb1c9efa096dc45a203c11291aadd765eefcbd20d2af70c51327453b4e8c3d67f13557b4"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_6(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e5e81b2d7aca827c8afdabf6d1aa2fd0e83ea5e14f44bca8210f70a5ba4a6efc"),
		nonce:           decodeHexString(c, "0a48b9ffba4ec92d4394aa47b3b5e76f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2f9b61ec113842913bccfed32b6b49ac99da8ed983d66757044b7d8ff01953a444527b111f78af5e2be174772008084f17c4ec950e1fe050dcd59c8e67f83338587e134149b363d46bbdc71fb5ca402a0499c72782795b128a2622d8c4934f0c4d9a59c5c71f28d6da1daacdb4b5a7e9fa7cc57ab9ea0bac9fb53af8d03bd906"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_7(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2a0e188c8c89586dfe41d99664ca7742a6351bb359d9f6acd1aef946f08d442b"),
		nonce:           decodeHexString(c, "ed97b1b9ac5d5d9dcdba2f83d6571c8c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1e242848fd1ec106dba9ddf8df21712872c1e6b99308f49ff48edb51e5d3af5f2d7f2347cdbef284a1b5377ebb06ec0d1318d2cb21185a0892db0dae9614a0e8886986ed9d3fdc2a666c7f853def036fb0d4ee3e4a0ce5a716dccb486acde448aab6b11789440c72902ba4a8951b486575d8d643a9137f44d92ad499fc2133c8"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_8(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d994f45a7cc96c251231be52fb9a0ee71598bcd9ea238d5e3bb0d9024b109790"),
		nonce:           decodeHexString(c, "960e6914924980f39ef4467995e7acb5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1e79ee0fb78196863e08ca886b756dd527bb26ffd8742517ec5b2a2db2cca7ff3d0141843b31500803d93d3081f6cff618d85a68b87eaa6467f3a5d4a8faee15494bc67d0e20ecdf0c045df362754d1eac229ac08db652421590481482c95469a6ff0d33c82680bd24879cbaa3422ebe2c21053e90ce3da7387f1a8ee2386520"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_9(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "cc1b4aaaf4bb4e6f780c01387d1dc96052b9d31df08ba65ffe03a3b81d266a7a"),
		nonce:           decodeHexString(c, "6e3efc6d37a59c41b722c44ff63228b4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9dcc10acecae8b398c336fee4a041d5ff8a17b814625ae8425e7c0544864985d63479fb89306f9b10a2dc6b3d125729b5be30d7657203b869205193507f495128f456e167d8ba6d61471e5306faeaa2377c8b5ec2d02a2e78e3980b5a980d3c3d775908cd7e22c84beaeca68271df7f5b9a165fa5c00ff1d1eb9719c6c5b480b"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_10(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "309d4fb899d41e6ade625394ffdabd2eff54a8894e5d72440c2132d51efeb9f3"),
		nonce:           decodeHexString(c, "9963ca2c47c1373151d4aceea538e81d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d8e507a090a690bf6dd264ddcf8440202d6f824d43ba695124a9bbae11486661fab6e47ca402d50d56307ded294c94ec0f3ac9f77f194fa3a0568c8729bac5a2af5687d0900cf8f173cf1e6b06bf1a1b319e0f8674ddfc97089119474a76bfe7f1d8607d667ac786de8f4f582b29deb9b984f0a3e07ea16a266532bea581e0be"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_11(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "dc50dffd0059b869f4c5c1c26eb84e7952ec88acc30981c22bdb3eaeba78573e"),
		nonce:           decodeHexString(c, "deb4925ecafedce0a2b22d34cb2c4db4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d439604e338e75bdf6913fb60bfaf55f351f59e6c053dc0f5b2d511f810f1a92c2c419253e8b3916f50c5e9c0eb562f78df2ec853b8ae11b5a13c08eaeaea511b2881232504df077ee85b401c81f472aa1f11c7d039eb1a94ac3637a23ac2930b8fa8147f907868b94eac0141869da3c87931735bb5c52f420af6babdc5f7270"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_12(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "92fc3bf974984f9319909b012857495678e321005b3719b20a29bcb66aa0d8fd"),
		nonce:           decodeHexString(c, "c7b8a5b55120c311a7ce4d246d55b3ff"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bd6dc280a58e046bb49d05ed62b3569d958b8d8a3578ff341f142c6903f1f927820c3ef4973abe202fcc720e8b672d68c49be711bb21bbc63703e62f91ccc496134a660e7f70e3d105b9f51a75b3c7e0b029749eb6f58acbd905abe6fd38dfa7d1a3bbba234313278265d2c5268641ef76e920ab413b8c2011a94755cf809e97"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_13(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5b1bf9aa49da3f434e5b0335866131e3539bdfa57e039a2e788d9144dfda66f4"),
		nonce:           decodeHexString(c, "3e30ce4bc1b60bb53d0bd4ca23a2f638"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "885f089848ae891ae62153773b0ccf4711563956e50b6f3bd4f35d3b55ca64b528146f28704bd2a81b11b644cfe83709c3aa038a062f4946121d5a71c39735ccdea64f50358ffe71cb015674c351af290971c7e2cbb8e8fc4e1d24132c1547e83ccc3dc64f4991fd5e317b771eeb7045835db0fda85c719b03828ccf1d001ee9"),
	})
}

func (s *drbgSuite) TestHash44_SHA256_14(c *C) {
	s.testHash44_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "6b9f904ac4b16d36e06a1bddc501d7ef98d5685c1ceadd0a6e1622e0c1e73716"),
		nonce:           decodeHexString(c, "4a42f39e5a241a2b96db29055159c91f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "785014b0460831b7b67346c6997217b0f6c8e7313687ea6ff4d0b09a0786bd6ac362a0b1ddc6ab8c9c624625a379cbec7f11cf30ddab23cdec054b986175cdae0ca4ba4610e0711bc94e9ab706539d5fa2c1a4fd3cd49042696b58dce465f8e09a200e7d214cda357021c62248a01aeb95f8ffa8bd49d354fdccf4c71eec3491"),
	})
}

func (s *drbgSuite) testHash46_SHA256(c *C, data *testData) {
	s.testHash(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHash46_SHA256_0(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1d867f5035bc9283f28d1c73c0694f9845ab8cf0183d88675f8f7c554161dda1"),
		nonce:           decodeHexString(c, "62cf61dff15053a91ffca7e72d5fc123"),
		personalization: decodeHexString(c, "549acbdbdcdf94e8494685f00b9845f3de370334602aa41f8180e198a35cab26"),
		expected:        decodeHexString(c, "9bf8bd71725c751cd6e82a288f50d9b710fda83903093efb49b06098fb904d08339a0ba0f489517c0cdfc12e1eaa3ab4caf00374e1fb5c776cb75589b1600b33c60e2d6f8ed29dba28ed08a183257c8b7635f987c037b29377d4c5348a46e0845ef7e13cb682345f99be900b3cfc7fc4e746a21d06754c14ebb5853f8cc8dd66"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_1(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "28b9d9578a541a44f581a0a4057e0f7150d495ff29d3e8f8fc34bf689bba5b4c"),
		nonce:           decodeHexString(c, "f960a9afcacc864451ddaf6a8b503acd"),
		personalization: decodeHexString(c, "68cc3f6f753574432091f165230d96c20797a61f2bf17419bb39251400d980b1"),
		expected:        decodeHexString(c, "1006fd00b5818f28eed75ec1649a28ed20781898fff9c162cebd4e84d3363a1c140c7a110a315ba1f300422542f191ab5239b658048dc701321d8e94dbd12ee985e317d680708801fddaa27737c32e511b496e9ee260e030c64618d40180117faac4a1f0a68359f361d3d3c6cf163246554856c176fcc6642e3b2596ebc59768"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_2(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "680a780fb5cdb70f9589612d22ee4e4120a073041d36e48ab2e68a71d37cd247"),
		nonce:           decodeHexString(c, "ca385301faed38577c2f378f1aa7f661"),
		personalization: decodeHexString(c, "eec481b1191d2899498a0cdb771d1315ca8037a562526a92a13cd3713fbacd08"),
		expected:        decodeHexString(c, "a23f2ae78157f70dd684b8a553dc3bc16bcbb561037d1d39313ea7e3bdec13c1c7f98091bb0dc8825a1f743696639b6a3a9facc0b06f2a4de50878b1295ab2ba8ac7c38714dceb9d7a3220a3bae3f4c58079e3cdd302f4d333d42ab11fef3b93e40deb44579508232c1028b36001e3e19d3f9d7ba01c149e8c91c773012efd76"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_3(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5b0c1030a67d25ad814be77ee43246aaa507583543d0af127af72701ce096697"),
		nonce:           decodeHexString(c, "4f4bf66ea5dd80e2f8a74e07f283d82c"),
		personalization: decodeHexString(c, "a6509051d055cd1511437a23c4c4ad604d77f30c7fe9576015a9d7d0b7aace3b"),
		expected:        decodeHexString(c, "80d95ba8500a378bcca272b2d062dbc9203a5e977724bbe4a743612becf097b00db35d08dfb151abe8928f8644bbbc74080136bb209d02a8f5fdc7c1341e60d4dc3f451ffbc05936e201a03281a4a2fab279b664142aa94019b75fb30a2954a877e327728bd8f1aa10fe675037a33138857b173ae96ad2bfbb9efbecc4710faa"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_4(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "87c8ce027600444466242819326a0965f807a39faf3a0b48021a65ff13ab266a"),
		nonce:           decodeHexString(c, "136b1cedfdfd4d603d8fc83309eb67ee"),
		personalization: decodeHexString(c, "0fcf8547b441ab422f0cf2d95c47cc28e428cf12d9a9ea2ff0eb42b0f7fd1bd2"),
		expected:        decodeHexString(c, "fc1155c5af51a61e86ab99c9f7cd56adf24f58445e3fb698e843b949b4662aac552443519dd7ea9d22208287190ae3228f089e32fe4f5f5d1151708dc3993e4ca645e9743b4b2f7f8180417b5645b77a066c114c3c742c3ac7a93b6b34e8209404c54c349f9128d474a0f2cbe311bc94880cc96a071ec1d0dd1effad9a315b31"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_5(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ad907f38567e95322ed5b3c2a215be0f7194b132e80619e35fcf57b3586b816b"),
		nonce:           decodeHexString(c, "8631ea64725c6ccc082c3d0af5d81f5c"),
		personalization: decodeHexString(c, "05553e60f6063389263229903834ea47dc81aad5347fec7e8ef9876fc37bf2ae"),
		expected:        decodeHexString(c, "b03cd5a6df9082f1e6dc342c435ec792119affde694cae8f5b37eafacf973c270344f1d729bc3d9e4c7baaf6438475a57614489253ed7125bb80ebec8672135e8b7372c457d6a0cbead529069872f470367db15d591293321dd1d6e90885c094e0b30761fdc33c0e6537b56a88d1de9d9525aa655c9466e0ee9e1945218f7aaa"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_6(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "795769b8351dd888aa92f07d6e8f9a04fed7296c15ab6d235e8a8316680fd786"),
		nonce:           decodeHexString(c, "ee62b4927f4c1ccc96e4c76e014afe13"),
		personalization: decodeHexString(c, "04c749682fc9b1cc67c679fdbed9632c29f18225873e4e6107661f6d6eb12757"),
		expected:        decodeHexString(c, "662395d3e6b7f213b8b4b59c97be6663da654193376ac232df472354e551edf83ed2737f935dfac99e025ae0fdefa2859d53197cd13d654eacba97b0e13f06c4541e9091c4a52362260a8015a7eece8b7f54f875dec083c16b38ab591372e4dab931171467a12be970e77131be76ad179aa9eee7b29856b2a60037cca58ea579"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_7(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4a5e73475c94f15b6d3e2f3a17925077a0f278f84254f2499a4730864e9fa5a4"),
		nonce:           decodeHexString(c, "6d585a87e829c62df7a844eafe7dab29"),
		personalization: decodeHexString(c, "628f527dddae90cbe378425f45c6c2838550687a3eabc00962e74f673578667a"),
		expected:        decodeHexString(c, "45a45ba2ecb6022043258fd8c9802fde9bfb96834e78597dfad861eb0686672de521e2f73956fada2112731dd4d4681c878248997b97cfe5ef41af7ff0d6b1aa235dd815ec7e907840b4d324ce144d6008d76fe9d750095bfcaef07b9b61252c9c2d8d925e950394636232a21595bdd9ac72a4e288884b3c9400b8f282f59789"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_8(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b54f138047988aa6444e39f1d6f6d678ee76959c8a60dcfbf326bdec982ad6f0"),
		nonce:           decodeHexString(c, "07d1124bf91d521a748da933eb2e84c6"),
		personalization: decodeHexString(c, "d5c439bea73527337a3c286475e0e1843a9eaf4c37f2924a802ef0063a6e0b22"),
		expected:        decodeHexString(c, "67aa568db726709a5cc6d5e157a50338bc898eb47ba8cc4b6fde07bda95bde5543f2e2773b0a557f91aa19e450db0b937516af6e80245d3cf60c3030fe8e3924d26f722c17442b534d7bf1a72ac8e0d426d36875e5d6d9e39c0bd607f3f041cd6c80c5a4625a8c3ba92189c8c35ba27a8647d09783aea4c69fa50654eae83aa8"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_9(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "598db9f9c8e94758ed16901120b063894e3c8c9b49f09084ef5d5b6ba4f95941"),
		nonce:           decodeHexString(c, "e6efac7fd9a7547b465765505359e8da"),
		personalization: decodeHexString(c, "1bc2ee7e72244c607173c82de730983a7f919980c3c9ea9220b13c008d21259d"),
		expected:        decodeHexString(c, "21a946737912de5069cd01dddc9fb261e42ac76d69c7c0d583dea9fdb7d464bbd1c4238ff21df42e8079a5ff33fe96a47e4f0767c3b91a1c1b3f415f257ab08d76fa8ffcaac09859625184eb29900637b812c2fee97d996f4910c7651bc587cee8483f1fc699466a30580ae91c5ebf7a75e20262c20538c855c154f82231da6d"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_10(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f34c4e31d24427b4baf883d84c332922be2d998b8cf44c7ab037730ac50f2f10"),
		nonce:           decodeHexString(c, "6de71410f79ea1e45f5e48c97f3bffee"),
		personalization: decodeHexString(c, "0007d483ccf2b8fb72e7d1d01b087d192acdf644366461af5356e13bffd041cf"),
		expected:        decodeHexString(c, "c517a99856ec0dd95556a0f7674deb0263d1fcfa09dec8e3448697e17bee0946d94cfb6979b429fd318a33750e61eb4649c0eb6b77e25884725c74bd0cdf08a204de6bfeca7b259fe0215175f5b7b8b8750eef9a6066238aac5d4144d1ed8e03710cc69d6a87d25ac00bcd0d783e07e819d05cc2cdb593ba535225d3c05b8c54"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_11(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f086b40e1a22e54642765b231fca1398b52df50232a513f2c6f88838785bb962"),
		nonce:           decodeHexString(c, "40b44a20f4f3d848d2b8309d70fb9a16"),
		personalization: decodeHexString(c, "4f3e71366ef7b27524834ff83baeffa8f736b38135d3f467e7a7afe65c640b9d"),
		expected:        decodeHexString(c, "db909bdb459091fd42334d1c59a89087b155f5ac97b02c3249a05d98c16e861b4368b5c82995139b608b7fc836358ccac44d9caed7a38a76c0a3d8462cf714cb3341c7ff21513bfdd0205d0230042004f6262ebd6e33607c9e7540d72e4e37ebdf4057d277031d217cbdc5f0eec0dfa9befd4473bdc046735e39ee8cb99e81aa"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_12(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "fbc3e284684fc31743e16443ad93bccaced82b9959a2aaed7aaa2f9c2e71e89d"),
		nonce:           decodeHexString(c, "b2a22ee90257c40d14f2a3409e7385e5"),
		personalization: decodeHexString(c, "318d3a036f26aa3abb7de9a028f74c8e3268197ed0ac9dbbc54d093435230e2f"),
		expected:        decodeHexString(c, "3256410afa0fb106c00a00e1c306c8bd9b8ad77b8b90512a5a7d0c6465417d93466c77408bdbd6272a7ef9b772291bf5d9c7af12a57301bb9bc3a765648d574ec0f3d51b13ceff5b7bfb03f5eca9f320acf107f9c755b45d914ad6beeb3436a1817bd39717c601dba9a715daabc28f35dce70199f432dd35cbeb36be1317ebf8"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_13(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "306c6de3fbc4696fc0e76b022883f7e076cfdd900a1d34840084633567ed5f4d"),
		nonce:           decodeHexString(c, "2f7d1ab58b6851661e2073619bdaf613"),
		personalization: decodeHexString(c, "adb09590e12e09dfcf790763f5a11ad8e9756d60e05272c6b294f58346c8b1ba"),
		expected:        decodeHexString(c, "9a92b93500a7285b299c50f54270a2e0039e6a90ce6cd67bee14a00e3965961b313f6ae16932bdca6da66abc350323b2f8b72a5362869fe2e46a725844b984a060de718538dd0f245e2f2c7e99f4730fc2061dbaf4833a9bd7a61981d8cbe0283080db13d6c4613369837c72f6a2504c731ca9ff4c7d63bdb491a0a7795153f0"),
	})
}

func (s *drbgSuite) TestHash46_SHA256_14(c *C) {
	s.testHash46_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f6c327302f4c09fdf6a622d304f5ba778020b00fb31321193d9c3feed76edc61"),
		nonce:           decodeHexString(c, "66ad2a0d5de624f3d709cc95e5c99220"),
		personalization: decodeHexString(c, "6f7f8f1ffdcf859adcf6020d5cffdd8e3e1bdcaef0b22e9e61384b888f1b3537"),
		expected:        decodeHexString(c, "1bc4cd76787f031df8e4f592f56a845f7d8aa200aca0b910e68f149cde112d0f1e127faa7fae25ca4299eacf9e49e132f3e4083f1c5fb0304b714f06cea122bc1392cbe18289d2411ae08642a9196b654a8b177c127b9215f9df815eceb254b8d9b4f632d25d123ceec686124e58b3606ff1ce51fce0752f42232c03694a1d8a"),
	})
}

func (s *drbgSuite) testHash48_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash48_SHA384_0(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9ef0b00381d6c8c54d08fcadc6f5ef331134bb986373f65c6a14f553bcb6c55d"),
		nonce:           decodeHexString(c, "9fce26ada7b1de39590312bd9d81c4f5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "663ffb625e62c4eb67d7177a6abb808a9f68c2d5840f19992c11ea3a635d05b537fae1f1746c1314e1a75e141c2e094187d17b9daae1442e41d3a0d1fea94d8ef9d840111379a52e6c7ffafa7ee83b244ced129613d5b8bb089e7ea25de1c29897735cf95695043a648a2ef6fd4aa74ce8328a5550da8ddb51f98adcdc108e455603f6f18f5a50016f3e8ebcb244a16bc6b6e554a7546153c12f522c75ca5f1017e01da36650e6203f30ed5c3da3b6078736465eecb400eeaaa2c876e37564d8"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_1(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3435d2929787173084e16310a1c407699b08d8c68760d2662ed844c98c2ce66e"),
		nonce:           decodeHexString(c, "e3ed52b47254ab2624de1c200a261eb2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7c8474fb0192b64c6b113d38d277a6825440bc2b484714c3a35d9bc3d35fc652b61741771e5d3abd7a1bea0263e35ba2ed4589a07363c1337895c40228ed6dcc36e02faf519919876b652f24cb80cdb044db786b240adf946ec0dcefcc2b406c7073db0f88024cfbad5a39ea53236f232d1251d640adb47c176cee0941bdb15e785344cd3753a7d77cf2a1b4a7048d00a94224de6822588e91cf3a1f2e966564a93bca54637724a4fcfdee95fb1f74550593f8367665eeb84625deb46307c21b"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_2(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "caccd506e5e63ed46c19edd7474132d14ede0855dc64069316b4ca85a2943d53"),
		nonce:           decodeHexString(c, "c26ae8b85baae65e669aabd4373b9f27"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "09d8cadaae97213ca801776fba9c58f2aadf19b8272911f7912905d030045fb77cfcf75c13eefd7a0bafe57b8c23852ca2f016beb5700b924f25cb123a5f527bd8cf2a34653446477c5a53f8dee827eab2eb6a2a43705abf22e1ac023ca92226493cc0a192f945cbfa62e84fbdb1afc3ecb31dcf6992d376bed81a9a3e426e770b12eacdeb32d9f3ac4d39a7bed6263c1422145b2ab84206b9c5da60cd5b5cf940be909033a3dd17246307fa428c6eacef705023d61538e781bf5d436c61d290"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_3(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "57b92173647a1bbfd7f490ac965739c76c2977ee2e5912d882c7125fd91aeda8"),
		nonce:           decodeHexString(c, "b5dcd934cd05ef2c4e80450abedec058"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f0ef1c21a8e3615df65275fe61c11457e1ea15089ae80efb72c55da4a2845d8b265efc9e7dec770857e6553f48da64fb05c0d381eca7452bb05c6126ca897c97d4440d28be66300bb1377ad9ef8884b077753865e8769343b498f5f4d6a0dcd9bb0d03733ae8522c0d9226ed079205448efd4f2f752fd7e80b5c01a5ef525be5285fe1af113a355b8512d0efa256eb4cf2b957e4fbff861bcf04d13c51a3fb586265df2c7ce6adbfd3d91e943944333619a16e6dea782392dabc0635e960c793"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_4(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a146876f3c486fa6d06880ce232379cb929a0b8b8dba3f9c0196c39325ebfcbf"),
		nonce:           decodeHexString(c, "c25a3bdcfd83770bd5041ab44bd0addb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "12168702864f57ffdd8234a4d2b163e5e010bbe1f8049e08bb59e834dc04ac057a6cbfbfcea30fd93c7313193af0f017989b872f1159b5eb7c331571b10089a1f8ac3fd68626af7cd615d7bbccc7a47a0c325a20804a8c3c0bbba23d139506ca61d52a651a79133c2c3b1fd1b54f3f96791c6923025d7a2ade36c4b3efaca78fdad3185437ad7a41e42ff53f6096419b5fd3bdaf2d292175aed4d067c85c7f9257a91a319e9ed29cd4d5c728a11032f0b355f31dc3a9e030d4cafd98b7e99381"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_5(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "97f4d4103ba98184ae39a50470843b72d11f815a1563ff06fb8d7e5518a180d2"),
		nonce:           decodeHexString(c, "d9b5a03e919666d1290fc42abde8f075"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "85b668b85d7f329e940c3f45fb0ea192c0d44f4d3a983af4685045f8bd23810e6c79644bde6870e83691392816dfecfbfb3e73434381c834d5a3a801109572f3a720d082866d8dd8845e4a11e4ff8542b26afe2ae78d5debc37c81295f89b1f1066d0d17af8795b011e854aa7f511285686db7b8dba0020cf62f9f33a141faa39ac5c6b62ec4a7353bf47d25d71facc5ed566cc3a83f52a5f03c1be283daa1edfeac3c2562a2c96931f5e833839502701389a934460550665e5fe0ac498e4148"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_6(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "72415fe7e91b29586157394464b95153664a3c44e3744d523e875cffa477e1d0"),
		nonce:           decodeHexString(c, "e189caf1cd88569844a8eb1ac41fbccb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f5316b3a02e9e4cc1aa16c1f686109122f2b3eb0e098233e1e2600913815075d922d038a57d9294cd7ccb7e888f7c186cad94228d62f33795878801362ae194cafddf39a2ef565378009f14b7fc5a17ef274dbf537d931dd3ff2563cbd01193ac77404b7c01f204a3ab63622c86ebf00ec5ccdf72f82b8c0bf75fd2385536ff4f73250a987fd557b52db57c4c4d7d110cd118d6df6b3b8579acd36382fbd8bf3ce84f0df2761717c8d2f9f199cbb67847bf6921e648873065c727cf7a4acb693"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_7(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1fa6bd2bddc62da7be0ccc4b42fdb0607d9004dfd64bc588d7e35d74b17138f7"),
		nonce:           decodeHexString(c, "49a6f6162647c60f8043fe6b2321bb75"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5aedbc8507377df3b171fa7665f12fcc76f5078a55ea0699323d67a1d6b22ace8023e20d00c57c707172bdb6d6989f03ed0c80a3098e07ee0c8974edd7b95205b01dd5fe41b4ef52a55fc947429381a91cafa8e8e0327a94846a21973da06d97d6ec271d1761f3d98319fd1067305d83a70cf61be3891309e1c8f4c60311492fd80177dd40040f6e4575132bc2e57cec17ecd849daef92b4f359689a70dac01d1a66248256c0dc9413256c70612356669ac12da3a41f5f66e3026af6bbaa0097"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_8(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b5065f850e8cf5dd50cce69848431785493a0aef850d46f5fd5588432cbbd0a3"),
		nonce:           decodeHexString(c, "750aa066e5cb008037f9c0787024102d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f481d7bb452b065ca03b142ef53352ae8685acd6983566e9f8bb5a9bd4aca77476eb8f4ea85cadd7b4cf653058926311a49d160e9f1e70936543a6865f793333c7342f379e261e63b2c5c4d2ff0d3a80809074de2c3ae240b0214738476080ec0edda729a0235e561894cf09f3a8d7fb542471e293147a7dcd8085e80e3d7295436002c8870ac2bd3bd6a8197a1e8fbbc438d5b56ec8809941fc98393a9510c8f2330f2e724477ce117d499fe94d20f81a9dcdd062379adf101a07b32a4f42a6"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_9(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "bc3c1154386f35b46813087587635c870eb94bb8f7e3d4fde740c05fb45fa8e8"),
		nonce:           decodeHexString(c, "c78502e2d0dc1f2c571dd7d2980ba9a8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ff7e33d7811a78e24a9d0d928619f4e0272cb0635e32e4919a55130aa1182019b713e54a5cc20fdb9b6f4233399db5d5311530503a82c6708600ac6fd3a69f01a0345e012e54002b6c9057b8d404d4e031e52965f4599c1aa65934a8453dd5f23bb158cc79cf6450c5024205eadf94ade87775f97526605b994c5a4208b6028d94a777ec909362eea4135d1dc6a8ea69196327ceadc8460ca134c54a377a373d641c97842606856bf8ea2038066705696ef61a2cdbe3dd355e14450a6e35360d"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_10(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1ff952239e146246fd4690675930aef07de1ad5bc8005c312b329be044a41fcf"),
		nonce:           decodeHexString(c, "03bbfc86b7997955e2bcbde229050589"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "03c0613f0563a15efeb8aa262150f024e55fc0bf887266f2d283741c1f70991106cef811af091cb8e7b6af56d1c1965700d4d5e33c2536ed20f1bb782901cebcc56226e8dad0194c816980dffdd29ab28fdb3f6dd9b1594b5f904e8978d100192ebb627dbb99a9a3fda6bfaaaac69d6c27a17ed4d262a641a0ffad042ceb4123b7505afe32567b544fe4154e3bc805d171cd707da2916b0647487b18c0f2782c2a6c1c187d809dc5124f5af19fe6effd01e0b507f5adb65d5a4eeade5e6fcf23"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_11(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "57f2c0ad254729619876820e3844bff93b2958b100a6d825a65088c1eda38650"),
		nonce:           decodeHexString(c, "b6a49e7c0822ce5b7e9c7155163cc5c9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0988429e260a33fe96f6151378effca8fb70d87744afb067264ea67717c5a55bb8ca7a02aff494eb3b64f90499f1ea75bd94a100e241be77ac81dd615b9a7e128bb4bd4093b0d82e3051ae36319df64b907523425acda58a2cea448c75f3f955c485a0955bdaa122001dcfe898cea2ee641bd3b92b98d203b0fb30b0798eb482c164305280d6559fb4947363e2d247fb7a74e63bb8f72a6019f32bc445760022f51d71313a974faabd6856deca0e5a465a00fb48583ac59c785e21e318adf36e"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_12(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3f43daa8ce5c8bc35dfcb7e1cefe5956cbf4c3f37a4aefc4547eb58502390d12"),
		nonce:           decodeHexString(c, "0b66b696c61848e76bbbb50b875aff0f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6160184556703fa73f49098c9db27d2fcd1ce717fb2cc537c205c5da96b9c346db63225c83d35c7ba3ba248d068eeb5e266dfdc9a95814d2637b6ed7af6fbc3f6caf21d210ed7ab71b48275321e3145efa9cb54ef5e37989bd6762dd412b55403f2da6f6a9deba87d90c01f5cdb4beb118e191753c19d5df7e3aa117bf6ba623125ef5565eb60d2d0b17fdc154579b71842941316104d3414743e484957e41a8fb3e697bb7ecaf6409f895e144d36a6fc204520c6d3b5216aefa31f101977cac"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_13(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e0ec2dae2f4ebcb630ae1ff2f52bc119a60f39fa233379df4d7d6ac3d9650bff"),
		nonce:           decodeHexString(c, "bad9acaf0c5b0854005501457c6fc470"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dba059ecbdbd45c9712fb704b063a624e883f6619b5e55831a172ce5797a78bb72c236a968437524b1008fc82202deab247015bd2adac38803fa38204a2f3595e14d8e39c19c1d6e64001a9f64761c1eb4fd874edf3b1f138f7249a9da5b74deffa8d17627348b9dab419a59f5d3c7464f7b9826aeee32de66c905082784ed39b34e7d3be4b03d7c211aef6e22b07ee73b11c4034e01d2e64a3555a7e1d844170a79a82667163c6a4334bc5c561b73d4a1620235a49e0d6de64ee61d0f978875"),
	})
}

func (s *drbgSuite) TestHash48_SHA384_14(c *C) {
	s.testHash48_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c0509068d88167921812103b67e734698d68718ecf42cd99e0f55836c162d450"),
		nonce:           decodeHexString(c, "71a50d2db258ea35ba69b5716bf68a14"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f66c05713ebe804b4273103997d260adbe8a7d0f6b2bb862b867ca59874ab9e0898102664af2a8db24a7ccb4637269ac67d5e834941303acab9076ebfa04cef64f73480afb6808f11e6ab1a9deae514f5db1c90c59ce988cc1d04012640a40173362de2689f88647268c665ca44f57534c9ad9b8316b9cd1d5a14942e94e90607acf6ad37a2398979e56e9c227c1803f90844d6140f10d0baf20dd789d808a647b4df54d2136d967461383dd4db9dc154dd89cd282a2766dd6086bf3825d095c"),
	})
}

func (s *drbgSuite) testHash50_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash50_SHA384_0(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d1b31487d6de11389313b9fcb6d47a80068e27e7dd4f5d19bcdbb5ba7737e433"),
		nonce:           decodeHexString(c, "97c18a1c1bd7ef912be91521be7309dd"),
		personalization: decodeHexString(c, "a7a2a558852c4b63be3502e8e636ee918d6d4689a647c91d50e3bf0b219f71ce"),
		expected:        decodeHexString(c, "e28462f6504456bfb2e6b96dd6a6a4d07feecb3eeb2ae93f6f12e0edc476caa9407d0ea113553038ee14077d368a589a20328a9ca3900c5b7b55fcbbfee5955e66aab957ecda339bc06372e152f7a150069404c20ac3829ac83559eec8c47e4cd297d091611b9c836d143c228726a8a9db34183c5a88ce18ea0f26c0aa166aa3f0d20e2612217d6d1088b28e09e4560970206a381bfcb1fcb2d623b0adc6e4090b3f85631281a37e755cb8b0f03eb9e0b6436034885919933d24cf8987b03d1c"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_1(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6ad32284947f5537ff84e54fb0b1a06565aa3ad9a0631bd92b6134896a867e38"),
		nonce:           decodeHexString(c, "b425d4cb33cb9b2f164b18a1858fa26e"),
		personalization: decodeHexString(c, "ffd4a433802560050af263470dfd4f3d21420e3cdbae3b0dfab206a6ca477006"),
		expected:        decodeHexString(c, "103adeafbea45fc3803e0632e8c1168d6a573126324a1d8805d225445f3de561215cebf6535edfc209ca34abb11b3e52de76a89aa4f83f6a3f6926e4bbf57d727312951e1d6ba41be3779cb868d954205f1806e230a77d5ae670008cfcb19f086ee704ced10a6441b887f155a7f0e67b6fad397668d5e35ed418110c56c1bf48264e5f3eeb0cfb2e3d95c6dff07edf106643867207d26a6faabc230fc871313240eede78b66019a039b9671f634908be7998c8122c63c92abaaf04c60cd56bdf"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_2(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "20f05b7de796da9c719b1ca95aaec82bcde16d4d6a12cbf838217dc35e64cd6f"),
		nonce:           decodeHexString(c, "b4bc248b81ecf604c46217a1f4c885a3"),
		personalization: decodeHexString(c, "5565ef9e4917df80bef6ec0e0f640c9c74cd196701382e3b4ab51abc4c4c0514"),
		expected:        decodeHexString(c, "07d464b783cc66f8333b800c0d0962d965fc0380c7fa013334a95bd5c43731493202aceadccf13b954548fc2962343ef5d0cf5b53811a13aed0edba9f89edfdb2f138d299b559cfa0447c57e8a68da97af4d04ec55f5195f3e4a0f62a54ca5ed2540d0c9440444908bb9417a60bdd946c409003a7890782c28524a4a1a3f7ae129b4c84282891ccd6726a7c8b87e94bc61680d8d147c3c753081aafb529308b1efef3ac701409767eaf17a7f4b08fcf31697728ecaf5dd9d797e3389323d4a4a"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_3(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "46e4ae18d4b4b0820eb45c0993e1da164544574eb0253d17c1e8b5b7ff172bec"),
		nonce:           decodeHexString(c, "ddab598c043ee6e39c2407c2d8ca5377"),
		personalization: decodeHexString(c, "e6fe2a7c315e586d3ea7cfe9e33003c8808373c82648849132a9b603169fee45"),
		expected:        decodeHexString(c, "a37393f43d3fa32cdaafbc30f2e28efcc0c099a429b49fd9e89e17367a45f0bd818dba8aa5e87e1b9b04f298253c5424628612a86646b27b4a763bc63e79d8bc9b27f84244dc8e5354f742b27563b14f3ab35abb8fbbff748788847c67042e09cede1e07ad03440b0d4711ba762a5ca7954d31ddaab26fc57ef07db7a3a4af18e9416c31e9a205651a669ca105035b5e35f54bd129eb766b7fa98b9dc9e543b2b5aa6598635351e3fd279c4970cdc639eade7bb302d1d6514614fdd1c65a517c"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_4(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2311845ad0e4bd78126d71360e01a8b15b032607f008e8c35a6cdd6d145993c5"),
		nonce:           decodeHexString(c, "4ad8c6d9fbabf571ec4561c2aefa8202"),
		personalization: decodeHexString(c, "8d3f2aa391a053b6855766742914bf04067369e03414e3d68439e07f4e7ee26b"),
		expected:        decodeHexString(c, "356fd204d7124d3eb0794f4563218446d1c781106d4da8d7763f1c849743ebbf5d01234b5f1ae93338616b9c581356cb2ff46299a8a5f4558e3cc53f631b340bd7af7a86337e4cab890c55c1a3c97e92a1ce15ce6aa2e32daf6d8c00f33b8abf1c05affacfe492d8ec9165390ccd264763ba3479ad83371befce8b40e36d0a8daae47c4f65963ba01aec198478cc99e7036491121b684aaad6b24d44ad2824c7a0175f0e8f5f86c04018aeec6751b0f0db07f8d75a9e30407d9afd573d8d4c90"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_5(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7f8e103246a2b0f2849410ccb45a82214d1aae70a31ec2e830bea88763a864f4"),
		nonce:           decodeHexString(c, "4d7799fcec689da7b9ac2de78b9ce699"),
		personalization: decodeHexString(c, "34103f676b7c6bee8916bdfc5a74fa5d3bd5a7844176978d4d0cca1d77bac99e"),
		expected:        decodeHexString(c, "cab956dfef85d06c81e7da03fc40e043263fe212d78ae13bfb487dec6488b584b575868b607b252ee5c27af701f1b670152879bd413c46b47cba2bc37d8d9a51b71dca801bb2f79c12cba61674db0a22817035e74403d85b9f8ff751d86d1ba0ddacf969ad12009370237078719c56e17489505bbf5382793268b75344dcce85b53882c0c7d47f671f6fbaa811add4b461dc73daf17c6ee58854035cee29dcc49526b603b7c8f95d54517113b4b506dd716ced88e93c9cc20cb702206a769792"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_6(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8806cd8adc9560774806f3743bcff600bade3e4f83a894c4a3040493e41d9b50"),
		nonce:           decodeHexString(c, "d53ef5a1e8dc12be1ace6fd4e57ee0ab"),
		personalization: decodeHexString(c, "a1491b48414f827d5c98ae16f301e12dc73c4dead9e6c7c0d7196431c3ae518b"),
		expected:        decodeHexString(c, "2785f18188143fb138091b1e4e87753d647d549b9c35b786eb6aa6f760173a872a18e883c4139b1e906852bf6eb0f036c302726cc34c562debb13dc908f52ca7bef533b591604964a34a802218b940434584da29efba25d76d12b06216aa1dc41f03281ceee0ee8431c14a7f2205e4b6712d090404a06b7607c7a2b2f83a0106c05aba701f1992611e90cf5727176d87a42c1775acb90d643c4f37a0a9af55c8426686019b0a9f6383dfcc70c6a7f68afe7cdc4d4de84c756b53003cde73dda0"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_7(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "edd1eb05c38dc7c1277ad85ea3099571b53514768ee71ad63259d10d58b28d5a"),
		nonce:           decodeHexString(c, "2fc0c76a3d624967c69bd2047a6c2961"),
		personalization: decodeHexString(c, "c73ed0a632db7a800d0cf2d309298685ae3bc82ffc6e32fa4af44315e2979779"),
		expected:        decodeHexString(c, "7d76f8730148d8257000a841227cb9f264ace803a580683858033fce9284f958380f416e0bcf72ab4966d74e2984f4f7944e4d72ba59d54fc8e84480487719d7c85c68f51f7119934d70d35f372e1c410390f7613e101cf1dcd5d748d9254fda42c073d46c8e834daf8b898bd53bbd8a99a6206fad1715931ad0de7f04743cb776f9c22db58acb21da72ef046cc9040c36f178c098ad60ac62e372b40c9dd6c781169863831c1608fe170ac4729913461a4ce7cd5f98710b1850497fc59b4620"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_8(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c70c64e47c76f021327116f283f1b8027d95ad71e927f1b3ff56094890befd1a"),
		nonce:           decodeHexString(c, "5f15c6adabfb9b9e715e58b4e531460b"),
		personalization: decodeHexString(c, "49e5e6186ed6d33611c300942e10797fb106fe057beb87206cad1f5e91e7970f"),
		expected:        decodeHexString(c, "0f4f6ed160d861bfc9636d13e756d508314f7a94adf247f73bd6b35fee25473d7cd8e7f970e1e1b74c1dc4bde70cce4bc10ea2bb9c3ad35133f820478d3b1010f314219cce19f1849dab890dbe2f22280eb0769c41f2e8326cb698fff45559b4b1c05fac2f5c1da8347659750388810f93ff6111a2e2b24e59c2b2930fd3d49b17d095ded0a8028e142be72edd9d60f17cb87c0cd3b600710779ff1695b9a366104e8a3844731ba3e995d6dd9de0eec34adb06c0ef5f197d23004e5edd514f5b"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_9(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "920167ac2f1e7875430f6ede151e6e1ef55e021816713d8f507d293755298b61"),
		nonce:           decodeHexString(c, "8923f7863865bc27e20525ef13f712c3"),
		personalization: decodeHexString(c, "31be01d9533aa6d5731cf0ed3ba80cf47e232ae931a6e24f0dbc0140cf83c723"),
		expected:        decodeHexString(c, "b20569b73ac501e1c17ff898d676a658e96bb0d3a69b9d62e0f11a50b04cf018bdf610a8d2efb5322ed23c4644ecf683a971e52cadb318523bb9680f6e6209ec6f1e68962fb3691207898cf60ab2fb423eaed082a5686a78ef00e2a9bbde6c4ac48506d78393a2914d00db2e3cf0b293362c54dfe78e123ed8439f37a93ffeda9a96aa1de1e9323072579fcb289a726a4b66c8e69a541c458d263fc9767655c3c5ec0b687f9e5b0878458f07c255ef709025225d30fd4f54bffd942fced1ac10"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_10(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5d7a94bddbdfc566f019d5df9f2bb6004d17bfd17f78ef55b0707200d1a5cb2b"),
		nonce:           decodeHexString(c, "b32410dd50ff9be1c397267d292fbc51"),
		personalization: decodeHexString(c, "6432eee53cc19589f1502d86f51faddd59b800e973c860c4ca251d86c84d54b0"),
		expected:        decodeHexString(c, "4639b0a8e9f1da8dc49b0d84701712a3d0f47bb98d57803df7d4f7b0aabf99af7dc78d38dcadbefc2e570c2c7c51c2cbb37d50070c6b6857ad75b605ea006d29737d6819cfbfa4824088c70eb51777fc7ff884613d2a9f7989ea75e3bdd51e0ac3139faa934bb9ef6d8a0b25035fee2acf2ef783538e7be8e4416430dd058a58c712a41ed6051b283aff5e644b9cdb89433a414b5fe5f1dc172040bacf145d8ee19cc75cb6c2aceda689d3226c9039e95669e11dd4085ea104444c0bc4e9af3a"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_11(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "bdaa691810d9aae1175a5a4f90505efe05b3cfc57d4497e7bfbe31227a6b7b33"),
		nonce:           decodeHexString(c, "14d732ea6bfc01fa7d6b865c9b764964"),
		personalization: decodeHexString(c, "fa1cad909364487bb524391afef23df89abe9f5a830ab86e1989ed44a02a1b0d"),
		expected:        decodeHexString(c, "57de79efc2ebf40829ca43a8e2e0c9bc402c3dc0f12fe27fe49aae94f9ffe31cafe897ec47b95fa2541036c5db941dfcbcf17f7d0c10c492189cf7c12bf03e8fc9334df9dd6484657638f8faa697db696480ffba3447f333fa6d3b8d71df9a4404e9671f6415f9701bb73b23accf5bf4ffc3ef8c04db8784067fffccb8adca7704c6c8a7392ad3ffc278707527ccfb670f5d2ea8a914b369b18419bfce64f605a48fb7b3c6f0bf68207fc601bfbc75c5d58094b9bfffdac5225a8e55a5a28411"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_12(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "472b189a407b5b8ba02b893f74201a93c6d432e3593126d3c6e0d8f44d445d4c"),
		nonce:           decodeHexString(c, "3f9332a1d6531aa582eabe1c0de0836a"),
		personalization: decodeHexString(c, "78f2eb71d0310d05b547fba63e57fd66bdbb705c9d9bd0aa957b8439e616f078"),
		expected:        decodeHexString(c, "f52fadf02cc573205fd654284387219c83ff8636997392397fa45544b4da3e757cdbdf1b58cddce1c418b24c8c89454244132acaf1e53f472713a925102d2e313eb850e4cbff7b282c6eb1b959643cb1f72e76dd12a6c8aef62b56773e7dba3a43f67cee488d4f608f8124b9629963b19983876e099bf1e5b8de90d651a3a001eb7234a96bc7a7d0d4d9d07e2bab8a841b44a6215752b9a8625c2490ec8cd8542a22f62f24a3d1f6682272002f78cd96d4ba1d5edba25ac616b33f9e6c95c589"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_13(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7f254388dc53c8011d891b24d4fd310f579cf4cf390212dd375bcb5eea787924"),
		nonce:           decodeHexString(c, "c7155c12d487753b7a3b25a23b6c208f"),
		personalization: decodeHexString(c, "522744097cee423dd9af5ed4e939eeee69ccb888f3b9d41049946085533f7cde"),
		expected:        decodeHexString(c, "332a6c0a3cf911342c54a6e9acd59d76a5b1175268208a45be86f265d7719220b2a73151bce99d83657303e9c010cf083f9bffbac065adde660a896548e7e443e219d6dfbadb57244b8718cd417ef01126c969f2219479e39694f67c310c785b6af9cc4ff8ecc9bf74244c97b91be77cc2812c897fd110d120da3d4ff8d1bc18381ec1daf3f1d434853c8852303790cb11aab0847b578d1b33be0d4ad1e0def891f883dc6cb5efb9a7cf9735bdf58d666b4c55abcfe342856d43afc019f092c1"),
	})
}

func (s *drbgSuite) TestHash50_SHA384_14(c *C) {
	s.testHash50_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f43136a4ebdb1cf771055e2df4fd26f5a83beead0d407e3137ec35cd95668e73"),
		nonce:           decodeHexString(c, "aadd62dbd7b34bf2021ea74a2788b17b"),
		personalization: decodeHexString(c, "cc3308e380672a955620fba59999ec4fcabf1b7f63089a124cc1f65d58b691e3"),
		expected:        decodeHexString(c, "6c39f49bb51765dbae1de8325e7a6f8f8aec031dbdd94b83d5c4e062848eb4e01e3912784f817ee16f9c2dd0129eacd3f7b8d5bb4cf9a4a2ef823b0505c2ac8e4a1ec30812e98564aebaec14ff710a77c1904ab1fa3fef3c3d09f2d55b047a8db860322fab6d939093385838ec6d11667ca843f69268ba1fb7edc462fcc285adc9b4b97f0f717c28ac1b6f371d90baa86e8728051dfe9b68f15dd31a6da35194253545a5d667df6a1322f6b73ba661c7407608fa42e1b894bd1b6e7641749977"),
	})
}

func (s *drbgSuite) testHash52_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash52_SHA384_0(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d6e0c22a71a37faf7f8cb744370a51b66fe2c89b42d50de1f8022fb32f96e483"),
		nonce:           decodeHexString(c, "e755e976530fd24517fd4bbbc890ceec"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "16372a83494157b62c4941864831dbd05d46224240e821a87f66f530ef89bd4087f2a50d2399d109303f03821ae62d6566163bfa94a23b64198f9b4dc1db5aa924ea06841509bc3258007834b44f3be34a7f9c7125af1794945bbfa78e02a87c15101bc3a079f932c4691f1e5e1b9639ea74af07c7f026da30712fb4f9f9de6947a27b71d7995a494d83b480a284db2d287e75bc9a813241ea1d480a0a44033663bed21adbbfe89fb2d27cbb35ce878bb4883399602519b387bdaef42a1f2ecf"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_1(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7d2e345d75538d97f3ecc1aa8083028cdd0fcf8418eae999c53f74e5c440cc0f"),
		nonce:           decodeHexString(c, "9f103a26cec74bf2a128fbe921e435ba"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6cf2c0dc869761d64600d643dd5ef745af81b4b4c6efa431a2f2e4d63f362447e64a405604a1e598674c0bb1524797d42ef08609b7ed70feddf4e09209b01e4a88c447ccbb8c2888e94fa99c2d47ee540d0e14430eca74e8b1cb95de9683886d7f01910633bc52dd38007deeeab8057d669de681adf2661dbc5c89c3703abe3aa948fd970aef87b69ac88d6fe92e4380873bf380ebcd3d8552501900e60a4bea791bc66043e1415f93abdc06d512a4d890f9465eb5b235dcb34ecf976093e634"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_2(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8bb875478eb91d564fbcfffe66fc6c20f6511898ea00bb830042d78ce633e0ac"),
		nonce:           decodeHexString(c, "04729420a565164a204ec7a38f16ab12"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "41e6abd28b73f030a3e48652d149e619e73898ecdad64691e0e683bd9088e7c3203bc46a49a23b5ded69e35d4d1a8f910f9fdbf80028c101eff30cfbf40ac1328a97a90bb31aae52383617b556217ec28a84ba3ee538ae81336fdc969ca7d50b1835d013671a5872c84dbdcfeafede20682f6f3dbabb66ef13e3585978a82a578e6de52fb940ca9b53003a40c15af2467b02de84882506afe2f40fee47cc5469caacd47b7b4456ab432d922320f320a02ec18e4b11a264219dc8c3ba0e9288cf"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_3(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3a612d8a0b7cfedd97b4f703428d763ee29ea921078a17cc3e48aa458934909a"),
		nonce:           decodeHexString(c, "3c7ce412400fff61d0eff60dd832b0ec"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "805d75ea3dc1043883bbe6f35a269342ef16135a4a38caaa9e6ab270bdaf76b5c2ada5852c083e1446c5e52ea0060cbd29223ae6f66643f5a20763a265252aa71bee6bec068f9b74a128e70dcf5d8ca5b1a4250d6545c5191db80097f50a3050e992dd29bda521dd226f4a9f57c888b616671d9892535f647c34ad51d089bd5c0766c9ec4f8557640245937bb63f030e8e9aecd718357b34235710c7741bd2531ddc06a3d2fa27f47e8cfecb5cfc226fea92df329e6c0a64072711ea21026067"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_4(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4dcef4b9b65c0bc00e19f802488d9cddc9e81f1b037325f3e3bf06d0ed003430"),
		nonce:           decodeHexString(c, "4e2f76d7fda5c7b10157569152d9d807"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ca3bd705171d8aeeb8ac1b6d2bf44fbf3429ad01f665be63be51607178b239409882b762113b9c927a01bd727bc12d8e60635c4b81bfed9b551647dc98070de799cae9b2b1c124d3e9a23f4ce39e83b76566ef2b752c6d7f9d68c1dcae984cbb1166605e19319046e19750e7f2810e60152ee5854d775df557b699f0b5c082b619df57244d865daaeadb113bf5e810c967512f5902e5b645ef5daf349e548b8647832008ad4770a8d59f327550e2c137e6d51288db79e7c2cec28e9c3a2c23be"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_5(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "68c0ed82a8f7d6cae4e8cc561b68494007c97ba71a7b8db070f6ea70efde8ff2"),
		nonce:           decodeHexString(c, "43a5e1a85c58613ad2e5864f471a8ca1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "55a4ce97d98c266bfb6de5e5d309e95d10ef5e0b37d581b16f8bd8b973e91d9288b17ec45d7b12872fcceeefbd9128b3395f9238fa8726eeed2a8144571a64728b6f8f79dbb926c7e638f753453493672a2da55e7fe819525ba7672ab4b74220c3cf80c7001fd8969bef48e2f3f3d4af8d9839b688172a8a672ba6ad9c356f2d185ea0ee180857b0f2f12d729f2dff8ec907231f8082d0f0b37b4a25ede5ee53bdf2925df51226b5b2b1fa10f7cea53996572a9ae8615617de53428516a63d8c"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_6(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c6acc1d7e37b5c60eeb5cfcecb59ac587e63089fa00735a3b6aace2c1c8e068a"),
		nonce:           decodeHexString(c, "a6129d1e7b6522735859e952c20f3d65"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a3679089cdada405d4ba1ab74ee6bf62780ac5f35259064c17d9429258dde96a5249c4656b25df32f3b263d33897f1b770a8248eaa3317fb2ba506c2a127c878762c0f14b25a0575fba8f2f38824213c62fe753e0ab1682cb5f63b2d0b1b9e2b13bf5039f54b15265d2d3b06e64aa3ab777742e746c944666b9ae1079c820575b7fd44e69e89fd89feb24ba911738a1d4e88c8ba7b1bbe144ed92382d0f46cf5ba743ce78908c61de2ee14fa077c5aad9f74e879a200159b21f5c1442226df6f"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_7(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c0a1360bca46d67702442ce5f87f902469c7bd73c4ff66e0683d523e139bde38"),
		nonce:           decodeHexString(c, "0d582cd3341b9989b6368e434765ab41"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5b008b5596c448d003fbe0f603cc322e4fc482680d9fa05719d39ab120a2eef03879afc3be01005f00ef1d2d44583b2a882305589dc854bf1a718689094ea9ef52bf6065b593b35eb7252cc9543bb64326e49b56b993e8ca5881936a87395bde6781e3db6d491cda72d1240b5ca30b3796394cb170b25a07a5a7c2b78f4c133009d19b95a910f025fe5940e1bcab86a9401b58c748af5d3bfdd632fbd3d992cbe3cd3be326532f4c0c49620199f860f92d8b3de61f671288c2c3a1c6dbe3c663"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_8(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8b6d99b6135b7ec97a4f3c360c9946761f66307bc8b975a7efea3fab625e34b8"),
		nonce:           decodeHexString(c, "00c7703abfe7768fba80a98e7e5914e6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fb5b0e2d676407ecab27604ca92e2dc8d4e1bc65813abe801952acf0841b3c588ab87a0ceca68d5e402c6b8e029ee6b6181568a99c247e2fae1f65726e4992c52ff22191ea50e2d72017eda7f0a2c9be4537513d9243be6d2af9b8f0d12e6bf93054ac34c448c9fd85e0e0d86f83fdb794721662eec37673714cfa7e10daf1f939dd8af9c2bf43e5a9d423f68e16a7ad4458a6ccaa39564bc3e3822a6acd1141ce1c6fa8029f7f752702b6e3f9e565864e99fc088646c4c893b37062d2e40136"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_9(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "eba5c7d36e345db4720d4b4911ee8918e6c87bf7a119e157b4a2984f3ec8acdd"),
		nonce:           decodeHexString(c, "32663a93c5cf65c628be04e578b5d037"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b23cf638f7245e309330a4743ce70f991b8ee317fda128dcebb3ce9e320be53fa89376b9842b8265ee0989993306aab234bd8912adcee5e0c25b5302fc52a06d19caa705825d414e9c456ef1d6585f530ccd2dc51659f3b1549efdd5debad83ca48bf55ef989aa362613691ee321667f5e480cedbd8376f033eb0250b6de795281e7d08f79a92e74f5063770937f4998cb27bffd86a6891298729a99a566bf63f80b5fb1582db22abffbe0e14606fafedf5546c2fc2cbb24e0f97432c3104716"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_10(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9594c8a4bddd9b3f31f915001691f189cd877cf75c637e322ea28e0fe749dbad"),
		nonce:           decodeHexString(c, "65fa788422a6bffdb3c078f8fa210811"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3a8e824da1646ecea7dca609165d9d5a0de86e635dc3e15def45437e6d486ee65f232179a7320b57a0c2556c0b3f2dd61d1788c40c893c01bd3407de2db57aa247fda07bf9f31dab68e906dea52853d5fa21bf33445348f4f1017c04f1c2b19292f6e60969242640b1fceb39cc86a86b36ff261c242f791108f8a62dcc2a641375370add670170d25614e7ace84c456a03a189164e93bd3b9f770dda15f9dc80f3e03ffe4e28b3b9f3622789d50d789903d0d69deeee07d9946732911fb4bf47"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_11(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e74104e5509896eb533e308c16dcbfca3676ce05dda54ccd729bf816d766cc4e"),
		nonce:           decodeHexString(c, "718e3b194e34782f288eccb8557820a4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "320f8c6e6c744ab73dd0d3aef9cd4bcea31a68aa76f8426a08cb78846674ea20db0ec1f8e4f581ac1b8032b6552b32a6eef95f8a80d738032354776f590d642676078a0e51277040249ab50e94ab11fbab1ef049f7ee5a156c2f220aa97af300cf8cc50e774e54c5da30dd42102916c47d00f465045cfa97e01e31c266347496214758c5eb76c31ac0008027521e0341c751be8ff9ab7b4113127076ec746425d1f1c4d1f541713efc8c85ee29428316e69a4f7face139b372ee040d53178891"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_12(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "565886b248aec5fa1f84ae53bb59c23ee62e944a3e6fbef5020df88fca96a5b2"),
		nonce:           decodeHexString(c, "43f4f2ac29055c105622c341abf7159e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "287ec9bfc3d229745529a68c8cd0b090298613ac2502a5f2ddc8902686a6cb367e2f3d2af3224acfa6f162464ffc670300cfe982cab3c236e8bdb0e3dc42f0e764004b6d2d26053912f9a80869dc012822ec3da13ffc611805100f4cfff1579e9ee8e6d9235fe8b272a2c0ba2428a4e7a974dfbb107c51643da50c6890e49ff5384668820ff8f330b42f6da796c47b2e113c4fe9136f4adfec36e063999a7a319a138c70d9c610f2b7625e0c1d13686152efe779ceabb4e1afe13ce464f6800d"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_13(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "20d35d6b462d216df8636a0843199a237036d645c6443ee404916205b34a8bc2"),
		nonce:           decodeHexString(c, "052f65db73c9f250c315a26a1b5ac123"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5127e4982babb89f73c65c9c0c09e36071a8f59395af06d569ac8487aab7de071c7b5c620f6d74debbeba1bac7c7a692d99ca2357e8efe8fab61531f6a3932f7f7c57e8f184cf957dfedf0aaf0b0b138acc47b0cc697337a704785b8288d594a2d1618f74ed8d27b9be60168413edbb0e68c2130605f3a373e345eb1413decef8af2ce05cb641c2052098787596a81238948889f07c366b29d18a9055ae898957d86e380e53627859aa7df8cb16bab8ceaa914050ec467f14cf33b4811b53984"),
	})
}

func (s *drbgSuite) TestHash52_SHA384_14(c *C) {
	s.testHash52_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5b50064163ae6238f462461472ad2ac9acc300316e140abd9cd6edb87b8ffa09"),
		nonce:           decodeHexString(c, "581d145675384210801d9c75d4d19624"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "de0ace4f4a728c681a0b326298142fe79cbff2ce5230e6c1ca3e2808692d02e4845867763cb9e93acb983aa54659be6f9baf210048baf7ea4f062bd7e3d9a6d5e7dccf427422b9dd93d392ffc810dfe185bbee253c3208e22a83c9804501321c6cc0357d22859487a3eaba53444f4027843699d5a78214c431ea741bba73bd29550925443cfa5f494372bd0e482e3ab4eace1b60187b6db588c0d252c8da3e0d6dd3e475040817ca2c85b1149d8447a52c111f05d7c14a0f6b7b6ea4f60aed3e"),
	})
}

func (s *drbgSuite) testHash54_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash54_SHA384_0(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a591f47c35f3190df0dc5a050fd6688b46dd5ed8bd05b64e7d42715e47d601a8"),
		nonce:           decodeHexString(c, "274e2aa59f62afaa52ece2a08245e628"),
		personalization: decodeHexString(c, "801822d1fb033db1e122470d04cf21462cfbdfe98c0ef63dadac8aa12dc44f1c"),
		expected:        decodeHexString(c, "4d88a45ffad0f6982306f61e7f99ba170675cdd9abdec8e0e8a7378d849cebd37c632605a36bc1d54fa1c96897f043d7e54d9dd30769c939d65eccd09578cd60fcd340d02cd6388fa96e6243ba6fe1a26bed000c8ea7c3973ce74603c00335a182024dc22a02da4e364e76582902cfc314e6b501578b5d822cf14b6f4769d576dd64aa1c43c3a624d5227fe6bbc35b35d19bb34c22d0ccf025dfa19f9b5f8234bd9a852574f94b7d09b36fc541b72510b2a0ee4a429a82b4b00b42aeaecb527e"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_1(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d5b431386e583e5068b10483cd96590325732b8a1632fb2a3255833cd0a81715"),
		nonce:           decodeHexString(c, "25eae1c35de2ed75ef0d3cc5fb1038e0"),
		personalization: decodeHexString(c, "644f86121ac6309069d35bdc7c69d40cb5cbbd30e853ff1d18dbf20bb057bf40"),
		expected:        decodeHexString(c, "061f8dd15ced1bd4644b765683d3264fccd5b31666e3973d8ad6aea95fb4fa9bc1760e69856e56529fd9ad17a86b0065bf436ed6ce668703d423185fa06a55bb1a450da95f9a9ddf454b02f2a8f00e3b302fd80b195b102136786610948a4a7f84be326f62e88d6ffab4b76b611bfed716340de11c64d6588a54bb8c016e8990be363ad582ac0d79cd071aa97f7d4c1aff94cc5496045f28afcd85ac22736bd521c5fd9ab0016be3d1d3f8f553fde82f0cc718d4d0d213262f71d99eabb36a47"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_2(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1110ed21313ebfd146e3b6dd92bcaa35c2150c7c5d74bf1d0147ca4fea6dc15a"),
		nonce:           decodeHexString(c, "3067c7c896397f37336986a763e4984a"),
		personalization: decodeHexString(c, "e7a6a485a05e39d1214140bff403a779c39b60260f29f2d1c91df91554fcd340"),
		expected:        decodeHexString(c, "98a3abd3929f1962d024c93ba45e357d637d53697e43e3c662acf0446431ec4493e1da539532b5fa6bb4dcf5e80309a83e7d76ad917fed80b7cf62b52f25f14a2cae01749d7e28e4e6a5b65c2735474cf19c4d3e2b4c495586bca0c592ee11ebe3f1d4c7fac16e1f4474ff65d95fb45c919b77bae8f8b533358b5c1cc806b0a250053792238df745461513bda2186a274086f0115a3c63917a4c30fb345cf944ce749e0765ac3b163bb35ce1788b0e2724aba458f6082980263912d7ce8a455e"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_3(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1e2380287dd296d984586d87e8558484c45d3dd626eea6a0beea898063aa3551"),
		nonce:           decodeHexString(c, "c2c10c2b5f33a915c1dbbdc91b5d2912"),
		personalization: decodeHexString(c, "07df0d10a9eee870cdaf53682adf44de9435d5cfec2591eeead2020314189765"),
		expected:        decodeHexString(c, "8bf2d1bd01506d78f79a8d08974bea54fff47169467e02fa7bdab00ce3150e4f216dc636a1e323e50446b6547044a5e1f727ab5badca1c0b3722ba4c26306f247507842c68f97d063a15e2268ce48a497aa891fed3c5437a9f1833fa064af4b3af8239608720623ad955f84219dcbfef6a6f9de46e591448fba67900f7fad9d684ccfc1cb78a8c93fab3c354ff5190ebff024ebec283a02295f123a9a24ba644c14422d829a9905ead3d9ceb66f42f48cca5a51dfd5368a5fbeccaf7dec5ff4b"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_4(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3b31507e411888b65eb1d417c65db0422ab1b1d89686217dfc523699f9da757c"),
		nonce:           decodeHexString(c, "177ff5164eea1202ce6a19a2bf20bef4"),
		personalization: decodeHexString(c, "78c1e87ce1cacc654f7152d47e02b650b28d66a75f1d397e5e0832d13bc3163b"),
		expected:        decodeHexString(c, "f8df7f6c419e22ad6c87c46023b6fe190353f8eefe7cbc3dc3e203343134bf9fe963f2cfa029536bae9ff501018a39d5e962aca1c0f802e25bec0329af4806fcb76debb6734cefc25966cbb4b723d701ab17bcf227004a2bf907db1c1c3d9b39fd99a74497350cf4663ac19b712388625a45be24009afe54e8ff5952c7eb753da8a87dc00f7e8237a67332ae56848e825cb68f09e818399d5604e212fd72a7d5a698f902fadb1fa4464ed9c2b077c97f16f67cd54516ff29e043cf25f204ebea"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_5(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "909ceb355e5651e5df02c2e28791cd01dd45f3a97d79ddec63be9dc8889f5582"),
		nonce:           decodeHexString(c, "0bfe518565ce04138328c9cd305143ab"),
		personalization: decodeHexString(c, "69b6f1b31726c9dffd667b080555fa57d2a76a4139683e712d4b883f8b4d9c7a"),
		expected:        decodeHexString(c, "a9482cf7d0d9de7b291f7368786e930146bc139c311eda6c51c2a8e47a64a3892d7166cc271eb3a3cdce9b640429675434236a14d19a985d8d4f0c690f8f39e31552a9e4577a93b1383ca345ed1c0259b72bd9ea6a61bc18682dcb9c59f97ce7841bf247127df75c6d246ec0b4dc1ff87f94b2d3aa922e5c2c6f0cb468c60bc538e3c7843cf79ba1c42d449d2a8db4c15ab386ce0816601120935f8122b31fad93e7429cb30fb00ba7dfd8f37b131b9b7ce648e5d4cc2b12bfad1483d918ef52"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_6(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "daf64055f2f675748a46eba5cc3b87a9e0fefd092dd1385c628b5e58fd900911"),
		nonce:           decodeHexString(c, "7ea7b0b1839bd451a61d21258f67cf64"),
		personalization: decodeHexString(c, "6c81e5048cc7f4dd6119d2559b559c76ee664490fd2231eb6782722eaf547ef3"),
		expected:        decodeHexString(c, "38d0730d2ad1925e2bfb6880ed2e4a4b0a540696524fd75ad089cfa71ce5558e0d22b8b3eee6a1c3a80de84ab689e614f73b8e44862b46709553c02bd674b6915296fef49c01d7c6289345f212adcb69dd66d7e1b871ea31701f4ee618a722e00c441c271ac05d078bbe14c1d74c0589aec34b053ae0c53a06bfa9b1e5720b8b8a3c2a319961a3e439dfa74d48fe77e6df9e2594c8288d56a88dd1563397eca440656f5cb428a66a102bcc8fa8869d5f40d6df15b33ed6fc7b9335f7b8314c07"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_7(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8c313ac7ccc78a2a37800654e5c4c9e219d1c4066829d9ee9af7cab1a5f76702"),
		nonce:           decodeHexString(c, "f6c7031cb31e3dadd45301932a721288"),
		personalization: decodeHexString(c, "c198bae21397263a4fce1a253f418803ade06edd961c7656287333d93d369dbc"),
		expected:        decodeHexString(c, "7cba65a1f7424bbd3054cd681d9c6a89fd64c67da5eadab49d2d688113f79eed721acaff2a282eaf02b823d928d28b8e500c2450ed07e6e1bc6c5f9023f91df2fed7063e32c4c8264e6904bde1e85cd3ddfc6d7db385b9834d36d1127f3be9dc197f3f2df26f11a4f33298d9af5d89ebc2648b2d4c8c15dce8e535103d36c19a4f48af8a740b89150c93cff5dd4c244519908e54079b2a1aacddfd6ea1dbdec6dd6f142ed284ed868fe451b5da7bc773b4b0af0fa1c1992661eb1f89fc0f6f54"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_8(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2d914f23c9c337d6c9075676eb69ee9117653c3f240801dc93f630e880bd7c73"),
		nonce:           decodeHexString(c, "7fc5e341c5839e2eb16bad31692280bb"),
		personalization: decodeHexString(c, "4853b817b858f6d0301233ae99660742960f3cf45db20ba1741373b4ea4aa8f2"),
		expected:        decodeHexString(c, "0939234892e77964590b4a37eb11bb286f6ff63db2840d3fe6e527e7f00246eec418b3d79c2d41685841ecee9979bdb732feaa424ff5e51b4e2117d9d2dcafcdc6e890de6215581ad10549c84fd332ba4cad847abefe253863152ce3233152cef672437d686146a123667f3bf621e7a251471a26a695f091045cd8e8133b0670086092c33bcc8304ccf704d875deb7a359a38e4f7453e732ebe1f6519a7f1c31f59abdd7eff68743dff31b4f625f9cc315579fd472583c918a72a7ffa018b6f4"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_9(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "78d96495678401fd9b8a7bb09ce5eb7b5a82064669542fb6903768fcbb939490"),
		nonce:           decodeHexString(c, "d652398df43d1c1b56f4ebc5b98a600e"),
		personalization: decodeHexString(c, "9d7e3515e98af6e36501ddec8ffdd055452d508ba27d0ec9d06ddef2746d6a60"),
		expected:        decodeHexString(c, "80044c300c94b51a3c5e84600537c33c2d3e696ce6ed4ad38505ade4b14c65fd6af38cb7d9f104e9f4b5f3c53f9323fec9c3cadbed0bcf09075d45a5c10f8cf40fa70588d5bab1c2ad2609dfdb216c20cc409ac7baad103fd3065bf2349d3ee59aa96a420e6f627d9b5dc602ba4af8c8ced0f455a27ccc45be32dff01342c432c358196621c672ae1af55e218d82d0f692ed7e40bfd57d6f9ac243048d4085e24bc38287ce1aafb1bd8ca754ac33d6640519ab5480b724c5dff69c8ce5a67310"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_10(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b5334d2c3d504ea556e377d68e9b712b6d961153e671fdec6221b2d54e21b32e"),
		nonce:           decodeHexString(c, "49f105e0321ba1b39bb4d315560bd2de"),
		personalization: decodeHexString(c, "216d9ebf2006991e8540bfdfd430926ae922a8c12759797dd8c684ec26f49dbb"),
		expected:        decodeHexString(c, "6849b8bcc155899625db6a4a7ad347125c99c61f2600da0c1b28c2a7b6f1be83967ccb1e40a1f89fea7e8341c30acae8b1e46c7a332f9f5785547712f7c930bc846efd7e6fe74d1c2954baeac284baf896ff51a688eb6a6eb50bac7eccdec2e9fad688135884a2bf8e0e5ccd2bf27c771806190102055eb07eedb749b0d96f99d34fa64c8254f375cfee6515d4eedd4a44b3597a7f6367013cd9412738fa8868a5cf13be772a2c6dabfd7e707c76f31d7880e91fe2afc5748f3b88fd06f1cbbd"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_11(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "28f183e74f140dd8ac8734d189241287e1a04355ace6f304c515392b0bb7699d"),
		nonce:           decodeHexString(c, "a403cad967a07bdb585063ef1c9fbdbc"),
		personalization: decodeHexString(c, "972a837632cc67c264845e308270660abb9bd4b1262efc05f884c463388c6de2"),
		expected:        decodeHexString(c, "6b56d50a4100e6daf006c581a65f4f97bcabbc8d102fe80d72853a88d7c69148f2e4eff6db1263b6ce92c92366255fb4ba937dc3847964433a8e63f70bbd758a6132d6b0390a8582bbe372b137b329bd92307fae48b6a16bb094fb00494aa574ba9e143b49a46c25bb1fd0d6968c1c24585a697fd88d331b0e9076755a7ec9106e0ff34c428f0e39f48b3034eba14dc5740a22541e07d61d2e99f5007592875ff479eae65d42d65e648d573f5ffe23013550072fa55dfe9f5fcbd9cd5aea9590"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_12(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2dd6b3e58ff00dbce6255c452d1eb3aeb211e2fd936d5d0f855518ff2c1c099b"),
		nonce:           decodeHexString(c, "61156de8a16776022afe3c6e6b26ff39"),
		personalization: decodeHexString(c, "674a4dcc09eab1cd4bb4f21a70f3ef511de6aefe317509ebd9bc477ba792636c"),
		expected:        decodeHexString(c, "add0b4f31a396bef6c75ee4f6feda4909f6d1838a5e7d707c6362d56c62ba84f1a9093ed6c141b9a50b0d6a319b6ff3490eafa848628be4d84b822cd4b1735e52948714b6e0cf96e71d27c3b713ef4f22bf29e198eba2840cb01975247cf08208942747907779e591e1ae526b71e2a943f0a84b0044209de531ac3d4b2005818237c60a03e03918aeaa7045480315d2ee29957c709cbf50c98a87d9d194f4b00d6baad6446f40caf11fee232062e1df92bc57bc7c4dcb46f2ed175c21249d037"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_13(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b6a5b50f57d8ebf8a619615c9b91c1642fb0525fcf4d8d3733c944e3221471b5"),
		nonce:           decodeHexString(c, "8c37ba49cf56b9dcbab0cb4d238b4b86"),
		personalization: decodeHexString(c, "a94b6b839fd0c30318b189391fb30877f17208f9401033aad4bb0332656b3b23"),
		expected:        decodeHexString(c, "17c954b37811b89cf00b823a0c5f0a07418131200f8cd88d321a0dd48aa3853c4332f0c32a9bc039142790be11b69ad69c7463b166924182e07d7fc1e1427e42e6815c0161b45b6f6f53d1ef12c139c035fffd997711a94ac6b82ce25a5d6c7d7b465467ab30c66eae498870ce6b7dd5dfecd6cd40b9897d17298073f82b588965b6761566ef868365cfcad26a75ddce316e420faeffda45439ecf5d39775c471c683999cfe93be718b1c8b32a5d1d3a5c5d48a06ef7d4d7d9c8684e4a165bcf"),
	})
}

func (s *drbgSuite) TestHash54_SHA384_14(c *C) {
	s.testHash54_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "09758e8217802f40ba0d6e9c71c142de1b40022ec1af3354e69048ef3be6077d"),
		nonce:           decodeHexString(c, "3432a2e2263728e375ab973bb5842d40"),
		personalization: decodeHexString(c, "ccfee35071757d5141f55a481b7c44a584c5e537c636d4d0ba10dc3c88adf6a2"),
		expected:        decodeHexString(c, "72a77d1c5dea9d00c349d4e5a9e6dff63ef6cb80b7998ef62e7a1fdc2267057d07fafb993e8df868821c6cf76430f3b7ff24a527f7e41fda6d560a773d05bc003f7e1ed5085f6da3785dd999a4763894455febf7618750bad4e30d8f52f3a072af30d57df5afda08ae7cebdcb659e6cdeaff52b47d4dc571e28315ff0e38538baf436e02d157b64afc6d50e6a4c5842aff1e7573888c6ff9beaf4f91aed988f03032388940c4f54afda05bf55ef6fc8c673f01ab545838574f3bd4f22865cfd6"),
	})
}

func (s *drbgSuite) testHash56_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash56_SHA384_0(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6ef7df0c0b9181fbff0d97b87caf9882c5af2a5ef9b51e987a9e83d1f2deafc5"),
		nonce:           decodeHexString(c, "aa26b2f2536bc7adaddf6573aab6dd5b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "38c2ce0f928bf7a737b681360397036568719ca0d956292c0dcefea6183af0b68cc2bcaa4f00847980d21476f07a8c2ec4c11a8b63af03e62f7c2047d26a331db4fe9501a6f5007fc7702823954ccb8761a2fbd5c9f699ce260ef24ac6b080c5b5806dadfddba4d509d92f1cf387ee09e7474deae77f575ae4eb630226b7d738e8543f4cbc862fb87541c3d201fc2f1cd8509cbfd3f756ea0990ad8ef2105313eb3caabae0281b8088d0931110ef635d4d380b98d220635ef01cb2c345f5bc22"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_1(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b328bee870ca03a6d14e1f209addcac9b3751b22eb99c6e4a2a3b4a9e80e8683"),
		nonce:           decodeHexString(c, "ce4bf7c799f3c7b0bb803a787ad28b26"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8d0bf7fe6ae18a1d7c897429a373a98e8fa5f15c464427b8a1a36b3338ff746b7a90404148fe767f6f093a36481c95cd6f51a6efd9c6fff0d014d3b080f5233a6ab7fadb19d0b31bf789c1412b5d0440b720aac605a57ff517d7037e3bc4fd94207304751af0a5ec111b98923ffa4574da4d80de45f45ba5ec7d006681390ee014c026f7e0e355e610677377ea2348526fe723b7ec56726955fa95787e2d48cb9ea729fefb889b68568589a3c6e5450ccdadc38d027736777f32f69aeb74e2c9"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_2(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e29f20b139d71b3f6956366a4e735a91b29630fad720f56d62fcd4e98745cb55"),
		nonce:           decodeHexString(c, "9204c396863fdadce6ee46abbe655df8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a882e81a9c6e10aa87ebea482efe66c6d95c6965a18b5c929b07157f79c7158e20a013e63effd24eae52c594a838297ba18c0f5c4df21193df16f9cdcc88532b423be880d328eadc531c1640b886e211b23f60d95507764c4320e0ceda4a4aa70ae4a5889faae167f59723378a0e14166f813dc4187d5f36641a98092e68e8bccc6b28da2f1ac60ee60eb74e6c2acc5036f12ea0532c32deabeec2c4b00c212201cc4945f1b32b0b445b4bfa2d1fd1f7108ec74c602538651bc6dac2ee025fbe"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_3(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2c8bf920b79657639a86aa5cd7e48e70d8651b33686c7a3142c9448477074d95"),
		nonce:           decodeHexString(c, "ee54fda4225a04499f170f680214961e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cfb7f884ff3b36fa4db5eeeb296f4f0319485a2bf1de8d2ac5dbe98cee9abf24937ebb8d4af9cae3534990f2b0b866e2e6e866ded378ff7ae7b3772d7c013c7f5f91e070fcca8da7b94f372971e0c6ac3f2fa2612d7faeec8fd57b6c0ed038ae368ac8bdfd1a13aa0cc46ed1a2fbfd135950a90de13cb56eba982a7d9ebe9c64a59ace8b154d342966849edec062754be2bc86faf80f3fb87001611ab90b36672150c5f11930fd31bddb5675778e7430571fab26c04eb86689b12a48bfe32e40"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_4(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a2b35e243bf41155ec95b89ca8c02a14aa6cd3f3469d1cde5de53142e00b8b9e"),
		nonce:           decodeHexString(c, "5ac28918d35ad33dc28d346cf1186690"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4c4745be14071078b55427ef5fb5297286b9d83b69396c2d2f24716ab4cac2fba4231d525b5c972bdb7fda75a3dec15d35885fda6471f39c6868b74c478886640c4012eea52fe5d919737b2c7ce47294549eea8f6ffb6a149f888dcaf3cc8dc1bc3d6fe48a7cea610cd00b9103712f05325d3f3ed2220972bce4cf92a9d86a6d10748a1172b2bd0fdcb9b159efbd0e0b2e8434b1e7b1a78220c96935d3f6989f4fd4b0d6722137fb67823034cd7b3f5a230148a0fba339b060f9e7b8dc024797"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_5(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5e711d2210345876355dd9e09616e041e84fcb26d7d65cb522050040feaf0dbc"),
		nonce:           decodeHexString(c, "d4ef1bd75e85b4901d8c005a684970bf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ae839e7fa091788e8e11f29c14411569a2b4437719d7411436357f7034eee223c7acfead356f07119da87cca1b787207907d6f1484d8b85a3de58beda9f5fa913fe66ae347582c87564d13b47eace00b64ac08863d6e5e1304f70251280b86a6ec0301677e3cffe2429e865da116ccbfbf9dbb6c15454c7df23b66ded8972d8dd0d95ca154bfb4dec53d57d220882a26effe456201c37895ad7d94f1f18c9d97526c32cb206da2b52603f4c699093c7447d38ef9f49b5f000f1e6832e01efdb9"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_6(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ca71fd984698d4a801adde55a12e1d3dbf947beaa12fefa27116a542f83cd353"),
		nonce:           decodeHexString(c, "841355c447a8909c1b763ff0f99bcf95"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6ca4163d630a00e9a19b9a8db91ceea4a9853cc816fca57d8c87c56d3071ca069c15855902c5105a577a6262101a2302741facf85b111de0b6b6dc052dd2e9b566e0fc53e2aee7e876cad9a5a257f544d4f0b3adb5b2720b4a96c32258c699ae449ead389609ed48452bd2e7bb2478c3436314f8c700bf57c5b3b1214a0b7ca89d2dbfd197e652c508b16b0098b46c08ac04168545c7f496d5b7381ee05c587687d0c473a05584d9e1fd8d6a8c650fba986f3b87bb69548be13006cb450973cd"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_7(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2e2f77a265443252a51f674940f3d22e7471146663051e7b3c8d9d6294f2e533"),
		nonce:           decodeHexString(c, "0eedba6cf1248acd00895b7b731b8a5e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bb580a32c2274aefa39c7f396d12bc2e4806201319daa402a4bfda6d6e112d977c0f699843cf0fdc488ab2bc6067d9b28f45a51842bc23cd1e2a658d09913b0548576105bb688c9f4859a280fb1829b5a73eb7b1e56bc2531598fc0b78abd5eeb9fa700d35f8d66cd534d868ccd803802e92447c2482c69307e52e687537c2670603014ba26ae7ee5306141270e7490f747d7fb6f10f988e7f59abb95ec698b467424e8717f5fde81a82da5bcebfd9ed0bc2202e04d3f05500dc160507b29bae"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_8(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cbdc84de78841d6eba2d14afe71d38a1c82e07165d69505034d8a287d8f5b26e"),
		nonce:           decodeHexString(c, "970d3c34193f81bf1fe70634e915645d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "47f0ae073c8a605be62b79d0cec7b4909bb55d1315e13f22197b0735489c06a47a3c5c209522b7c21b551bc0782017a5a9e79e18fa75e167617000ef5f28cf9d464b76f66e20d2ea5ef98220ee92874b046891a7838965e818ad58e837240970270ed576e545d9746ccf0bf2c20c30299cd4cd3a5b5c038d622c376d3ec08344fe695a01987c5e1c298edcf7a42ae7473cdacf4b9d775d480af2d162b6d6b1d139bd0c208bd5dca83c5d4bbfe2ea64d5ef94da813cce88ca18825d47d740a1d0"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_9(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b917e2a2a8365f097649682aed69a177b2dd468aaba7b73d9bb66245d851538f"),
		nonce:           decodeHexString(c, "89e6729035344e3d82652b0bcc024db3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8bd97d4299911a92dec3fad5c198403eeefd3be981b25898eafc6b652da6cdfdfa223db37eaaa03e30c5054584f9025e1704e8e20f53ef4534c13bd714726fe765ff63645910c926de05c067ac20cd974b44704fd457c35359d4520610f4b51d041031a81435dc17a43cf0e4426d88643da33b82cc71635723bf5d959c546a8ec479dd7741852227fd5a9d4e9bcf2b7faf2084c67f776bd9ce2f208de44c8d2c03ae9a7cd7ba4fcd6a6ffa274333bb28b6abba2afd2dbfb9fe0486b378122001"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_10(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "208307e4ad35ab0be593d0c3f9a85819ed05c521519b493056d0a53f1ecda414"),
		nonce:           decodeHexString(c, "d980460023bb998eb0d858791d5ff895"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "11be42b4a95f07a68b66340157575056269854617608a13b249dd69f8f29d2c191b9dcdb1b1777a28d55540cb1926b2a5cbb8adb558ace37feb280d4563c4201733c9008202db5d611713c66b70cbb81889136329f90e9aac3daba22c8e200b68a72621707229205dcd35f4abfa79a7c38cd5ccf21e71f3dcf769130273849bb58e90a4881e85dc7ee92f4dbb613f10e2acbff67a5c99429a9221aaa2dc73e714f735ca4a758a85ebf7eada7e37ccd9a6f7005276086c4e19a9469e88cb47434"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_11(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "92b42d45f93e85403bb49d9aaabc9d7b80eaa544f79dae4659820a0b08ace8f4"),
		nonce:           decodeHexString(c, "b818f47e3225bb3f2e742c4fc3d241a3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "39e1e1cbbc02111fd07009e694adff48c35def11fedc24eaddcc82ecee8d389f3afc8619392b49559036f3eab823fdd2ffa8555dd60d2fc3c51db0a46b0cd346d7213f931a186a967f15265f7825b65edcd5240f3522713eb867843294016907f9ad3b3858324482444310e28fae521e154c31b10c268d87e1bbc7641731f8705a1f0509ed4570162f6af1c2700e82f56846920238a9fb878d45e35598c43a269a8ed33df361d4749c0f67eac9b94b63fbc54d0a314c8c59b3315895fe6d643b"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_12(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fd96da186fc0247e6e7d05d98fd1db570b748372a5c17698d1367990c7429c5f"),
		nonce:           decodeHexString(c, "2dda1c20be855abd248ddacd2fc9b4c5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f8abf96caa8d6b7356cf2b20ab810726fc170bd46e9d2b0817d9b8d818af28d9d7de4e7d1d379535173f84230d77444b5781b41abce6046f19df985e83409072c710d0dfcaf70b4fed4b54b9f53b233488a8c6ca01effc36784267667d58058e8be544a17ce1fa5af1729ca9a0ff1c5657e659228e15f246c3c3bbe56d6f55f59a14b421c759a7f5a310c9c5e590d8b80532dcfb6449664c7dbd29b998420a443d79bb433624f03c1843f23883827f42d755ed663714530e3dc5545c7c38e76a"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_13(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cfdb054dab9f892968fabec8e00730ba4d33cb161e4f9912f6e740a16f2e4763"),
		nonce:           decodeHexString(c, "e3de0b0263c5560b98e2d9df0beec8dd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9530a7a287bd21829b2fba080f52fa63f688b9cbacc0ae4c13f9cbd692d318364a3d2f62e043a2c096ecbdcf5b33b47543d45c84b762f2c1ead80e979415f2428741cbb8ae79ac44c8261c4e9d561d9884a4a9946d826b5f1538e73c8a20414a0b1878a396e1181c2eaa8da3e666863704cc0892d1b96030f9624f864b01f787ecec03e237bc85f5431ea058a28a9b3bd4608563a2018d9150094ca007a7c7a5fa641875559cc85ac54986f92c34ffb4f23fe1456b35f1358f025c31054b36f4"),
	})
}

func (s *drbgSuite) TestHash56_SHA384_14(c *C) {
	s.testHash56_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3b6dde5f550d482d30eee2288bff802241ef20ec15696e614b7268f7c574eb1f"),
		nonce:           decodeHexString(c, "b8d8984703ca7f942951fca97129135a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "36d0cce70eb5aaccf9b172fccf68e01eb8ac8b1f2652cdd238f4b070c8f2d9a128418badb38d5d5fabe28b59d15cd432010716fa6a48071114b2168cd29028386171594291118e54fbf5b61ae3fbbf9a21ebe73a4aba482c7cdc5ea1a4f21a0f1b38812cefff9bae78c2b95f417dc0cda010079b637f825dcba059d154f5a53050db773250013a1f051de9f7882433d2054ef2adf9b7b57c67173c06ad16cac6bdf74a10bcc666f7d4a091a78131c5ed76fb733791278b6ee0f55302c4b122a4"),
	})
}

func (s *drbgSuite) testHash58_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash58_SHA384_0(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "705386dd8a706d0774b65941ce63c71f6424c4c91b0fca6213f2e6f23315f761"),
		nonce:           decodeHexString(c, "737cd32701fef49041fb80cd03077513"),
		personalization: decodeHexString(c, "de8e15f6d310fea562341ec51e474455047cad287259928fc3c94cb3b153b241"),
		expected:        decodeHexString(c, "88d333e5b81fa6738de0b1bc50b2309368c70ddcfcb5d2b268540ed506cd2d897dbad3069ca0577fe639f965963a07886c27539d48c7f6ef79aadff5c5a9865aaf3e781c0ec48556625a2b9d0a11a71a65b96a4b49d30a8178eb0e345b9c92084137d7bb95c2440640e8af22dd8061eb474f956446ada61cd8f0fd538cb8287ce33bf508b3b40b1346a42bec6e16a05b09f3c8a7e7e4c488a29f43c8ac77cde3fc0f3a17bfbe11c3848ead351d28487dc9469c537d210f0f01ffcb0fdadadd98"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_1(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fd72e20fe3bc974a33ddb71df40a6d8933dc7ba71b8069e0184ec25f17208a77"),
		nonce:           decodeHexString(c, "e231684bf93354be1b95c7e485c8cb0e"),
		personalization: decodeHexString(c, "3076b2c4ef5e2942738a86eb1ea2c16c29d50d8ab2651bfa193a96c1b29be27b"),
		expected:        decodeHexString(c, "d4d5597cde675f700ffc4f45386f5dde0040788e9b4af8f6a8fdfbab3d9ac755fe99e3906e37fe67bbb323f32a264bd5a137217d6cf986a60070fa4389dbd476719a88cfad84920702fa8c6e8cd820a59be4f1c7a04bc2e89c7deb9ac4b8a8471a560fedefe360ae8594bdea4a8508f1052f165f5e774d362a6a57c5d89bd7ffcedebb9db1e76fe50e3db62c7958749d8498573bc4c0b7e04e7111534b333555b6a836a745b2ef793bcda23966e66bc177af74e04d07df6e4c05364fc6c5cfb0"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_2(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "36bc1f2d997c7e90489baaaea0e3a26f1c25e630ab76fe469d3a2be6f6f6f4a2"),
		nonce:           decodeHexString(c, "f81e1e8299c4ce15b86fdf17bf480b51"),
		personalization: decodeHexString(c, "8ddc2e0d4dc14de4f335f7ce32d2ca9aed9c9c2cb8b7246b8be42df2b61f4fc9"),
		expected:        decodeHexString(c, "e06007b997f2ea6a48b4f01cacb89b35b3f67e13e99a3369070a720afff12b2da06b0d724d67ac18b1589dabd3267aa868d0f3f2836a115cc1e4af6b3a45bc8326f116a310cb92efca5785c387e6fceaa00188387e93c05dd45b71da23839ecee8d40b63191debc65b6e2632480d1747f581dd9d15b90df0272182a778f47b761147a749e9ef0ac0e59d4b40f7f360857e09de551d186f64d92d7e1f11a3da321b87ecd1c36a411f5a12e8e8b31406b7183265c9ef471a966810d10ed3652ee1"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_3(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a8b61446a8440fefb294e6beefc40d7c49640fb7b2d1f326f48f8dbc3647fd87"),
		nonce:           decodeHexString(c, "0505e5311530d5078407355eb1b7e6c4"),
		personalization: decodeHexString(c, "02e7e187f276a181c3b4f1fc39bfb09f16ae58f81c24c976645847c2e16b0260"),
		expected:        decodeHexString(c, "22253f2904cea40099a0b24d92995094436563f933fa005019d7bfadd7ab6783c4e7e0881a5acf46e6db6da5272f768f23fbba6cfd3fae6c76a6896c1e0a80bbdc0ecc7cb88cdb554236c9157dc157fc10f199c22fc18cacf675008b371b381e484d2d854151b9bea555bd533945e6427ed4cc9cc74cfa0aa92ebc412e56cfd951181e376f0f900d0326e10876dcf2a880ea2830c0632631da09ce2caaaabf96d56f9d8eb25404c77e46d9c20e788cd1abc84c73e380a7e8dbeb5e4ce1f1f97f"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_4(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "debb0f618a1a660f9a720440b775542862c150512d6e2d713fe61d0a090355b2"),
		nonce:           decodeHexString(c, "c8cb776647df80f1b2dfe3e96d07ecf2"),
		personalization: decodeHexString(c, "588b837cfdf6e18b4d700d8a7903177231a36a41338048de302c9c3cdbcd0f32"),
		expected:        decodeHexString(c, "4991f9fe4b6a0b791e9aafdc117add0e350fb2e25791a4eb3a3f9b5d05f619af797ac6d65c1bf1a5db175115c9dda209c0c0295eb5e4217ed8522a623a8166ea23b6799955360de7866cf41e9329d98fc7f29e04d6d5120ba541e5c01e6b250b7094ac035535be80b2597397b0644d6a3147060944459b2678e89cee3d38ae5c9a8c608ad3f20f2bc45ca2934e5175791eba4d650449392cfcabe4591f21cd44c96abdc2d71bdca80ec1fd92c47a02ebc996090ff58351e6ef7a050be12e56b2"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_5(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4bf21213d980252f5dc3518b867b15b2899755e91fa461eac27c71477849dd8b"),
		nonce:           decodeHexString(c, "25647b2d71a8f3a6310a0e04a3e4f08c"),
		personalization: decodeHexString(c, "f64157717d1ff1bcd6737216e1643adeece3025cff83297cf8113d6505de2df9"),
		expected:        decodeHexString(c, "91d8d74d1c708edbaed3b47d47255969b52c34d3296c16ab803263c25e82996ffee23972e763b8305f01426217ed4b3fd2dce2250da3519550dd5e278cdf501c22dc97b582abfb237672ba695cf561f190a66744299dfafa764d7ccda05a36b250c68a21a491ba132b91f56eca7411dcaf023514c65ec6e8d13bf1f3b86c827d61aa223de5d92c20afc531de3a1d7e2769d494a33e7ca3badcaa7bc9547b48dba1706c68920c0472f5128ee3cc205ff63e6e7fd2ee60c12f2c7336361e81bfa4"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_6(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "91e9323c47847ca546d94fb870e112dd03f756ffd1037ee766bed618c49f6056"),
		nonce:           decodeHexString(c, "ff42d9add486f711de89352075bfaf5b"),
		personalization: decodeHexString(c, "f9ae90cea69c9987483268ced4240b5740319470f37a4db14ae090e4d5f35a5a"),
		expected:        decodeHexString(c, "3b90cd426385b80c697bcef30f2fda44194aac38c726a1a6079b430d1b6c8fc2639836bb11abc40d7eb3037f26dc794b075437e080fa21da6e2b0b7c2c15c4f4f6ec9e27578d65b66edbe3f24d9ab5c4864b3f5dc2949e85484a958e68af6d5cc45a21662d4fe4dc8131501cf6faf4e3016b5a4fabd02fec24ef03b1dd1ccb5efde85430aeb4298d947150c6eea220b09e2177d9df19c6ff8b54c0168215fa6a3aa08886ea9036ea14d92ac817f903ef4f1c2eb8d79e9e920ea42273e53f5d0b"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_7(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "910b3ad9e38f603112e94fd39aa04a171c66bbb51804870568c11367dc8d4145"),
		nonce:           decodeHexString(c, "9ad5b632d6b69716bf89875b041db5d8"),
		personalization: decodeHexString(c, "98177a8f3e6a507a3b5b1b7f7870eb9c104c9aa4734398df3fd53af397078ce3"),
		expected:        decodeHexString(c, "38d5d1cfad5004302a35ab1db30a3d1e5b372416a538fd2ac89aebd886fd1e4fea179c8fa2c020475b6ca3689c0bd9165553e559d4e69e9994a2805fe72740cc5c0361757565e8e6ce822ea6705e8babc9c7a435852f3dca8ba69fb0aafff13f9a5af520bb07cdcb294a731e089fa0ff34a90af31bc369fc6206608aca2d00c8f9f13ea6798e481e0aafee906539a715546a54a8a9bdff14a3f318c542f7442554be15dbfa56053ddec14320de8a2f0bbadce69324428e4f6dc4071329bb4d03"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_8(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "eb5cdd42ed4773b75c2f4150ae05a22f912761ba6432eefae73bc51befcca0c5"),
		nonce:           decodeHexString(c, "000c53ac6e933508af6ff52eea37b551"),
		personalization: decodeHexString(c, "8e43ecffbab808b752d3c45c0581f7bf765ae2bb385ababb200ec157d1cacf8e"),
		expected:        decodeHexString(c, "d7e00ef43fa63f7663704f50ed7720dd84948937782876a88bf1fb393670d6e65ec27a0bc6a9301c17231d673cdc4d7083cb634703732012a4812ccca0e1f76886801d2113b3210c6e3bf15a7ee3c429d4cefa4c0fc87cf453fc7422939c29764f8d0b685a52dbd231410b890f5187d5e77fd645d7757f10e79ebef6ab52d1f4aa385d60440b4b9c4fc9c4db8880e5f57a743644c1e47a15d9b5a219bbe98495c900e248933c556a37c381274452a1a20282e17ddeaebc1ccf4d186ff3042946"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_9(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "59a0a9b8209a18b98133e9a7c4969122296e3ff2828f7b3524df4f1c132e0331"),
		nonce:           decodeHexString(c, "05b93b55f2a2b597be5bf578e1aaa517"),
		personalization: decodeHexString(c, "6b056e5c0d3820976ce478aa422fe508998b73b07d8a0e39b8d977f9c4883843"),
		expected:        decodeHexString(c, "560f7c7cd24f94fb71cf128fe6b80592c1a9a68892bc06dcd872818a267c9a71acb613c6c8ffc916e7b3b17ffbbbead1954686e410d22c9959deff6d57935d8fe378de7a7ed5306118a5204eec12b3cd42ddcef213b676161e77e1c6b815c7241655ffdd63d6df99df3b446ade23293f6d71d33832127525ee133c8b4d9739d1f09ca51a860326d7819ce458e453b6156e8f78e4fd0674fd0c1c13509732e7fe00600ea2bbba6a1c8176430a2d5ceb75dbf42fba35ff21aa94f3b28e6fb226bd"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_10(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4a347a7f16af01da9dead84ed59f4cf5ee88a80b0a1f1adc2a3950af9d225054"),
		nonce:           decodeHexString(c, "4ac8f9b859a19190043e552d8462ff30"),
		personalization: decodeHexString(c, "e3dea246be6832fc4bfa5d33f51f25fdf4bd3413c69f3203747db51ea51ef9b2"),
		expected:        decodeHexString(c, "dbe0b8417996f8096bb3fc4634f673eb748e0fa66d50fb4f2af703080c8d214b35d302852ebc37b1b94615dfa22ff2daa50a7ac4b3026ac9a12dc77585142ae66520ba66642dc95a6adc5a1443c3a5e043009dbb3470d1b32abc77c035e1069c4807553f10ff6b148505ea4aeafd2e37adb2068d69bc5229425f8114a693413d8b5f545424fa04cdae9bb02adffa1af6999b7b67fec536c70c1880426a387efb67193c3173315fa9156898d9e24ab71a0000ab1b1ab3475ac2607aafec922f55"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_11(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "451b3d6e11a8f91912517e8a665a7c9fcfa9ad540ca57778280c50ace87c7dad"),
		nonce:           decodeHexString(c, "148cfd56c82348bee96a572d3ebff728"),
		personalization: decodeHexString(c, "862533cb4031e95b7ef8a05763f2566bbd51bd2019e2cca9c2016672fc6bf2b7"),
		expected:        decodeHexString(c, "63103b4698327d4dc418388e5f2216899b2e46fac2adb002beeb940d0ec25b1362d6b4013a0507c2d8c9d68b8af61e3d53674722a4ad111950c6ec59d03a9bbd025b61d8c0a39c2a01a7d19cf26c1cd4c724831dc8f61ec77fba616e6f2fd336a39fc823788b96a89e219e4186367e91720db0cc165207b92db064c71c8c14dbe8d1135cea6c60f8fbde17b44c8416875551fa616a3290a8d0ed4590f0993534d223e882d74815e0facb0859af394d566d944bf220655b978fd155c6a6b3b3d4"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_12(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "77149d1581e379f92cb5aa34096a4f15ac25967e35419d4a5e91fd416930e791"),
		nonce:           decodeHexString(c, "7912098288b0bda5d195d0c389097d61"),
		personalization: decodeHexString(c, "861b9a1a2907805253ec3b2d3e87bf3fafa6deff2ba86be3877d3225e63a73d4"),
		expected:        decodeHexString(c, "edb878d87d903b9ded63158a3ae7e271d3f6cb454de15abad12ba082768123770e510709de531dd473f2b9bc4165a6946b91e5cddd15e7cb4c4e8d635b3e75494e4046913d8f08ce36b9468b003226190811470827ef5efbc4a90b4817a6f4767846a8516066feaf63c95bb9db8a67a744b7046a1e73e32ba62526375b5997d305082675ea0164a25df2808b70b98bd1a5393cdee448a400e3e6a066fd566035fa2926cbd2f044714e87bec4ce7273faa31d68a30f09eaddbfae14e45e1f2264"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_13(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "86aabec349d1c0f2ab21048228c940f5a06db0e5b7a6c8e2ebb3f2c607afc2de"),
		nonce:           decodeHexString(c, "1f952b9665ed8568e555aeca2e5dd84e"),
		personalization: decodeHexString(c, "d80a0fd76fc5de2e674c4cb012ff479efb79b419167fb741585c2e38d4972780"),
		expected:        decodeHexString(c, "8cafdd5141f593062496f7c9f401c84cbda10e5498cbaacfeb3a25acce4427f8fb0335b9439ab9e954b6773594b9976a70b1d2234b7a67093a3d75d0adef3b7cf192c775b850b978fa52cac4d2d9412b22cfb8dd25b03ffd7fffedd503c320847f934db95d680daf77ce351d473304c2b29d6083ae854fe6d9db87d412d780d007c3e72ed84fe2f43f00543d76a679bacbffdf21e3f1cd779a603d6940c892cbb27c1afcdead292b1b0f0943fc72e60f60aa4ebb007d3b62d81611e5f9179d53"),
	})
}

func (s *drbgSuite) TestHash58_SHA384_14(c *C) {
	s.testHash58_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c0b522f46a82a6968e16c28d2dfd4c425411914fa4ddb7402612489624860f16"),
		nonce:           decodeHexString(c, "a684932ea2337296cc3d150174a47ce0"),
		personalization: decodeHexString(c, "b2c0af9038c2ef79ca8263a047bb9293a44ecdb457fb45945996157dcd199cec"),
		expected:        decodeHexString(c, "316fbc32ecc1dfa778b13921b1d624f9231c0ecca03e17fde750b1e31e76b1c330ea5bd62ca76150f231ac4aa96b06f845db2d03b65cdaba4c160b288a121eb144058f65a751e22151f91b90131e6756356e7f90d880ce754cf965f439189eb8bedf86c58e1fc2751e65637930c42552fdf81acfa1d4515ad49dc532b2a10b2b11209425ed1cf43c991b4a7c49bf6e701990fddc420608d74c3636829e4683c4e77a8151708d82ef8fb81b3655670fd4d242e357831bc091f30e6d139d5e5ba5"),
	})
}

func (s *drbgSuite) testHash60_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash60_SHA384_0(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8c801881eab7c4ee266eefdfe4542c577ed822b8d287f9b505158b57aa4fcd45"),
		nonce:           decodeHexString(c, "dd30c873d352d24610b55fd3469bbd27"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a12284431482d6dc016df53984647576a2ae619026786936e8e8644da80a2b4a81dd49e4562ba0e3435c199967ae9084fdfda4978759803d60f3eea6a88e32d3152f02a6f026f6c5be231bc352c381600c3a9c98fe371b460128724beac130a57b19d4f5b68d34054fe4fea076ed5c598f78f503b1cb31d445c93e12458f9fc31e6732a1b212105e438c8700eba68768b084eb3bd1760aabe5cd8b31175b0bdb09038da6a166c8f93552add13ed047b65c54d47b4b5568dfff2a3bf3daaf0fab"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_1(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4227d1d20f16951377c275cf7ab4598328045c736b43514e39cca65741a37165"),
		nonce:           decodeHexString(c, "058acf3c8846fcbe63c25f497082b127"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "08b00d950dcf31df0f82d8831917fbe5bf2342753ff1d0bf0988cd9c9103d607967c525b11822f65616b1d5c9db40dbd67e87eef6a02575f7597332cca37e0ba63aa98e1a42e26fd84cb910259bd758d4e5350abf6764f6c2fcb58c3a9c33523b4d4920162393203529e221b25f0e1efa64abc09e1c647af55ee29fe57e744c206868b13124e7377ee201cb6847399bb2c2a209a050a1954a7ec43a8397ac82d586230b8cbd2c58072eb4a626aab866f39d4be2abecb9d2e8bffc696ced23fc4"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_2(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "979283d921c012117037d6c450e2ac3dbf47fc5ff8ec935aa2b2ca44c5191c26"),
		nonce:           decodeHexString(c, "255dc3a53398c95a36ff5ffc63404653"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1e7ba5bf07492bd8647b0192566e3614213888b895ccca23fd55b398fcddbd8da06b2adf6a7772eaf053124b8ac6a88f48e2e6e9680cb1015436c4930390b1f0ecfba2bfabddfff9b550251194562512f0ea9f6d589857195d55e44aa4f8bede27a7304403222a9eedf9eec7e9927defb1f1338175afd9d7d1b2a4339262997f05b58bf589faed4555102633dbae9010de91844f532d4d944ec19a33e68afddd77a81617476d7cc6fb91e65306373f369a44107974ee7fe522d3e81f61442fa0"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_3(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "77dd9f622715bfe6d98eb9f71a999589df32fda44abba1ab3d94aea5bd01d1c4"),
		nonce:           decodeHexString(c, "526097f9e7ca8c1300bd4c68641d18b7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4873dcc448595c5be71a566deeb53c83696765eac2ff61843a00f9cad83ffe062632788d879b30a99539a60535fbfed447378f9ed14daaf5e3b2e8a35e539d263810d5f3d6b2f3d21769aa1b338069e26ef91c4e8024cff2c502341764b5f3fd3c2f6c86f30c2a8b528258b81cac6c3a6a1410e9abe633944ae3467512f84cf7ac2c4fc76992dda5e2bb87cc7e9136bed5d16df4178778f21956733df3775453098ce3ced544935b4ac8d5fc7808c1ebd18cad0362fa6b8b421f4d32415995dc"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_4(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d84eb51f6f165941a8bf40ba46cd1ad5fbb785b051fe4c338e29843517dca6f1"),
		nonce:           decodeHexString(c, "b1915f5effd8bdc4af8800e15beb6f7a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e35734999749f558bd177695b2694ca8870f4dea23e05b167af5ded6c832c6b79e3275eb81f84e60fe493f175bb45291818e7e74ea7c6f18c6f442f75b6365be04781e3fb0979ca35d04fb12d4484c95ea4edcff739ca22010766eff7bc61e465028fd61f7ab7279f2affe55d3a06b04c9da5f10ae940d3eba56e8b0086d15c69ca4a20fc1a3a7a4c46941e3e750e6219e87ab956b1d9194dd0c61f22868b6452ffcd9c555337f8e5e515e52de90937f1b523edcedb1b0102e6dd0ec649fb116"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_5(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "51b37bd315ac0678725c9139a78ce7ad7d23359f31d015add589f91b61f39781"),
		nonce:           decodeHexString(c, "2809ebddb9fb5798398560a9dfa1fc51"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "93420bcc789c6e870ad5f924fa3b358817b78ee883ebefa6fd106d74a363f908cf9e60e24f958a7cde96d0cec8000ef78d056300404f1e02c10f1d2471fe3dd6c103f5dadeeaba37e88bfbb4f033c5aca2b2dec35b10c8d34d56bd86459db87ed45f0ddc85b2f52e4f44f0ce81ca77830ffcf5694e3a0d481a83f41147808b30c6f2a05b013f0db1d4e8c9faa8e8ba1d68402966f2e650fa613b3aaf6dfb07afbe436a527a7744e7215fcccf0b3b6ebae0b4196ba8a7541fe44573c8172b0fed"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_6(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "203b742d2fbd8ddb86b4cb9375dbda0c8ed21a8ff8b20c37f0f337d1c714d662"),
		nonce:           decodeHexString(c, "4d1469ef82e38b7e8c53a2d288fa8c8f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b612b61051530714138bf287ace0d00d922add8e74e74daff67ae281915a8b0f74df894f8b3f577d84fbdddd268f4e47bb7c51378da7a59d46883c0229b220f5469c0718b39fbe99f7cedf93a0b03d3e14481422f1b3785e670e963046d017c1013f09ef94f39dd4cad753f861ff2f0b330c751e2143ab207c0b646638cebd951b4eeab42eaf43486106176496311aa4e1a2e10f3718ecc4615a94aade44e735976a79c1c75eb1b4dd899927f8db44dfc163da8a47c0c5f6517a016a0b42389b"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_7(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8d4053c62e4560aa5eaff157ce25439fc719811cd8057a72cd14bc0359e1efe8"),
		nonce:           decodeHexString(c, "ae0b87643123e790a82ae9f89966e0d9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "86ac147e7d0f32d9b242a838460c863f4786dcb116024c836007af4e322c21726806314c82a14d2a9ec396d4ab30cd3fcdb5df21c68af1ad702d6885a977b73e38628d391f4b313a2941e26ffbc38e4196c7ddf8f7e3afa3f2b062dfcd8485e98f87a3943b9baeef17be6ae9787032ed466ee00919b60c288d02c6ca42300cfd8df6cd10d8d6a7eaba6fb4d4b7d74f9e2df747fdbc28020716755bfbc1a431ff8ff01e2564e9ca06a422a7fafaa87456243f967665ab28cbead6d07c9da0fa2b"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_8(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "aa674aeb1b5da4b7c726b83bfeb4b1a4bde1a52a087ccbdb4e0fdaf87f484460"),
		nonce:           decodeHexString(c, "973fe67fc1b2b8877d1083a555ca651b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0c8195756f630eb5d3d98a35b72431b57e070fb1f4eee8e97f884c2dfee0e5645611dfdd2663085870b18ac7d59caf727bae7a8eb70ba0920ae89c1d826aef98b30e5dfd79bb9fd6f02237ee8f60e43dded18d79e27e4bbdb08685b2bd8c179b2e121f636063a911f01e4be98feced5207c2d665cc7478ae0afcc29690c3084011a050ec3829e32a7bba89424f2e2210feb082c74d5e4eca516f220163acca8422ea3db37d8b543c3726091a3211e8c57baadd18c12993e4ab05eddf2d76970d"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_9(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6d8188fe3de5e2a5b04af343731bbbd2e3735cbd4ddb440a4c676498567b08e8"),
		nonce:           decodeHexString(c, "3f16ad4eea9e9b8e0c9923fc915ca4a0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9e6f6b2d7a1eab7178442820bc3fa72e8a3fe412c99b5f05b7394d866ee0fb1d264caeba7ba178bcf6c3742917a2435cd89863fda6774ce49c3949568022f2129de240294786ecdc6cd2ccd4758bb2e2614177baa8402d110f8056f22a4275aa1c72b7df820b8a33f13e21c7c1d3799c115dfabc1cca757d2d7903583025d75c4f233584b4d71ade533f426ce45b007d0aa7f92260f3f88436d42bd7e798a574ebf3aa42124a6e0fc1d46519c642f8e50018843067b7a986cab6bb2eeaa983a7"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_10(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c17f5c6544320dd01aab91b17e756c828c5e003cfb2afae7ddb91785bb4da3af"),
		nonce:           decodeHexString(c, "84b440fe338967162e348e7dc30d56de"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dd5f09c47e45da8da6c8e7237cbd0a7cfbec482017d9ffc3f9a6b78f0adeaa5b82152302584d51cd25836732b8a1027ca804847bc9268248f3ba772424896a0dcfaf1b1db5326fed41517a0a60a8034b0182d8acb21f819921790eb9942e8af0a4b4a8d91eb6ad9eff795a35bc9d3c37cb3fa6b484d207867301fad80b685d3e0d0a1ea55a3c41d46d5de62e39c725c31b331410d94392f8d9669564ab97cd79ed69be64695d8298602d64f3dd2e32b1bbdd5f845e617782fed2b4fb4975961a"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_11(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "ab40718cc20345ca62b5b15b3d868decead7139f616db6629e7f16aa12162295"),
		nonce:           decodeHexString(c, "ecf873875a825dcd78ed858f09bf2726"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "92283cb0871966ceb9bff4573b3f4600d87f6427882f4e47967ffcad8cbcd3aca7e5bd0b2c5fbd7286ebf26161322417ab932b063b8847139acec642b9b1cd0c8174b25eec9f8749d338d4dfba6c8b73b0926ec5e2f0547da7c57ead4ddb237a204053cb55cea76b2e30a103883bcd0f7886c4c27461a4a38dece4734cc70973d25059731dbad506a8007a1e05259b9882a0060ae86a274cc2a71a87fff7a583a3fb6a3ed3797c37d88b00578780f1ef8864a05f15f640dd9807a9a78ceca5b6"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_12(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f6445b4f2c2d4afb4e9945d88f32555bf58bb4f1d9677cd955830c5c888fb503"),
		nonce:           decodeHexString(c, "66549dcbd3f07c92b6848766aab11f46"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a4699e29b2e509247366a6ea8f3784b03c10da3216a59675a2820101b51d4a3551fd5ecec7514091024117d6bddb8c3fd5fd499baa941ce1059f846f5ce5dcdb276d234521144fbcc14b9d7b457a13c860758aae61cdc2c92c520c93b0fecdf5e8f329b44c6dc3cd3e2522f5f514f18897d52562621bab6f93c93c74c55b4bc98105120dcd80d0247779595a1862c52d7cd701f203433e04c6052fc30f6620eb1a4ef9b63461f80367174accf8db1ab416687b0aada0da7c8b9ef954779f55dd"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_13(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fbaa77fddaa6f0b737902459f117ab739494b165136ebf8d75c00a12384d363a"),
		nonce:           decodeHexString(c, "1cce6f7b6dbe8e0902f6790c782216ae"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a47c6f2e3699f5f89700a0b0908f40b6a6135a8041d133e244d968953651f7f70c1b2c1a1fd93b1de3f863c1f97067716a60c0d418b10f70e21d641f9d5857d949819ac9a5dbefe5095e8eaeffb36b1e6d96d2d53d7eb11a60eefe6b3de99034b7f9ff58258ce1a9164bd5e928c7e1832cce094b7fbc431144cf042d2a1aef7101a18e52d68cdcd3f46f9e4239e0b312033d8baf5316183ce1899fff4b51078fab6e721c4e23f911ab58fb68b6bee28a23a44fef2742788448612dd77c8a4b96"),
	})
}

func (s *drbgSuite) TestHash60_SHA384_14(c *C) {
	s.testHash60_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1e1cde834393e00a2136b8924be5600c8bf59dc2d8a9eeae467ede71ee7b75af"),
		nonce:           decodeHexString(c, "b6035e96adcb7e8f2e17022e2e4f39ad"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9dde9f29034b6e784be24fe600c39b091568afb4c40c8e05b8b7dc36ca74a1bed38ab15643ca8c6da2f5aa4b7a6a5d5c9920cc31129c84e2fc9b865b3f30b698a143189a3f3b692b3e5641499c949e53e3619cb112f42046a18d5d12dfb3c6932a6a829d07deb17b799519b81e961ff293c0b2d24b629fe906166e330135e4ffd00609462f0f9b89a110084945243972486a0e1aedb2eceec02d402696c89abbc950dcaa72d7b0e00ed8e65c3e9eb1af7535de2da728f901650633242b3368c6"),
	})
}

func (s *drbgSuite) testHash62_SHA384(c *C, data *testData) {
	s.testHash(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHash62_SHA384_0(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "70de81d127c681561c6b493c8cadc8414e8cee05483f55536c9ca85870bca0ca"),
		nonce:           decodeHexString(c, "9b0100814f2583b7238bfb1fd0ba667c"),
		personalization: decodeHexString(c, "aaa228c9acc8f8d349f96509ed5d2908baa5a3df28fe4e286b7f555dc7080117"),
		expected:        decodeHexString(c, "daef45c681b71075a8ab3493f872a27a5889201f89d965b01e3a57ddeeab7fa9fa132187d1862dc51fab0ad807b81cc7d00bebbe72ec6b1f223f901bf959f66d8bc9c27fe4a8549272446d000b32ae9e33db96e71695643e1a612414e850e4c3345b0ae0b8a30ad1badab20b06d4f6200923aae94a856727b0e95d10f55efc3c2f456580b4db9e0318836e4e513ef7fba11c87c1cbd879a87ead4fb0afd28aa6e0fbd2583566f77c658fa6a153feb00b4b6a834e42f50cc1591fbd2564fa117f"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_1(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7815eca31f6cb0d691feb6ea67bf2f1f7d18c663a009406c32cade57826b2383"),
		nonce:           decodeHexString(c, "f7d59e72891fc864183031865fbf2494"),
		personalization: decodeHexString(c, "80db21b0ce635e1fd1e32ac1269681dfebb60d91993872a0bd90a792a455469f"),
		expected:        decodeHexString(c, "f1947411a357d7e6906530c81b424210327aaf43a9e8072b55f3360d86e6aa7c5f16d1563be36c57189f1bc5d83eaf95b33ee23871c5fa79b5a97baaaf6de395a7edd3b2f0dd0e45f8e5bdcfadfea6d369f1ab47851110cc39552dfcc4da755b7ca485dff07c51aeb6da71d2b4f9fc65c332abeace27327d4eb4658bb9c1bb5c6d27347be882b8c9642d91f08876fb9ded6ba78c2bd52ad9494bf494221f5861242574f32602a052f8946d320c552e265a0c6212d052c66ddfef1feff6a81d6d"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_2(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "07c630984fd7902054ccce7f2628e288815eb6ba9eab2aeb601e994773c308e5"),
		nonce:           decodeHexString(c, "fd945debd0724f4070bfa831cd805322"),
		personalization: decodeHexString(c, "7e5491051d49b1c6b96928a2e8b0c5f59baa3be90d60104e22ff72d9fbcc0b24"),
		expected:        decodeHexString(c, "8e6d633d282ba33e96a08eb6189aeb405237be9c841937d15a811536cef8165287261def7a63127fc4204f6643900f44829230ccc7de2685f41b50bb7502147b38d20b4fa67738de2e8bde5acbd249d1dcd748b39870d8abe49d3e0228099269f33ce7a4dc0dab1cd74b1ee9376768302dd48e5c7cbb967403c02a3e5eea40170ec5f6b3ab519016df3cf065cfb2c5791d0edd7dd53a9d483c469b4b37748e35325e4c66fa91ed693ef72f275a94341155083b8338b5a9f0be85dc71ad7230b2"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_3(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "99f5690a9b572caf0946163879e8e76f350edfef7e5f832ba3c970f2aec9b60e"),
		nonce:           decodeHexString(c, "a2daf8ff525d7193bcbf6387cb07b31a"),
		personalization: decodeHexString(c, "263944e089bb9e05ef88a683d8393eb603567917e7f1dedddb7b69c487e1d703"),
		expected:        decodeHexString(c, "0d1bf25551ef211926382b3fd4ac107229e528b6e653f3284eb77b77a089a0777c54794f35ef77a9a99a42cbad5e0e057c5857acd1b9c127f092d83b09ede142a425a01898253b3d5cce91f3e9105ffb3e6327bdd9ec7a75b221283a559d42a53c7e47bf3a8282e3f5a6612c0f53b728f626e580ab02f3a7a81b5c4b770aebaa4466d0e12c8771f9c40c8c1e6da1b18b440c767b10656af633ca304f5f9dabe26c9c0699bc886985a624b6f9a823122451eef6a16723b0504ca4ccf33390cc38"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_4(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a159ae0bcb55d0b4989662a5f5a95da1be050a5373c4aa5713bf1db7b2d84bf7"),
		nonce:           decodeHexString(c, "e60db02a03f866aad3081cace521d148"),
		personalization: decodeHexString(c, "d150b2067a427e4e05d474b365c89db93c11ba124116f68b0b028c2b8ade8f65"),
		expected:        decodeHexString(c, "7a3e407bc1166263f6c7528bef56e5da21cc170c9eb6781643bfd772fb5b1c274552bff9de0dc964e5ddb3ce3833a5a0e83ff84c15f7d288a9b054a7b94229f92d00b05ddf7419ec73d8c567c1a2170a40223428ee2f879bb84592d4b36fdc622ec5d7d615f794b323d211588d1805181fb0e33fcb963142af52977f0ddd9c9f60e84cb202dec3d1b0e8c26135bc1f51c1cbe4b36a996dabb7ee1a11927b705909bcb0f13e2b7d6a1ea51c2134cf48a1fc9f34556257602e87ba68a73a6554ba"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_5(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "494f20f6b24bb5b0b422a07473e9f771a6fb0590e7599f6be557de35ecf1e7d4"),
		nonce:           decodeHexString(c, "87b2204760911cdfa00811e7c7a8698a"),
		personalization: decodeHexString(c, "141df457de2fe1ac041ff60c670eb7f5cbe90c2a8a7c17d9606791b66c2553d7"),
		expected:        decodeHexString(c, "383021db6e4f1d414726e20e063f10e71a48fe90cf5bcf7c9e8a0650db622e98e72026e24901f446928f59669b03a1db535390d29b1a87c23bacfa0fc0ba01755f22ccf84600d49cd20c705dc4f6ac1c8b7343f97ea87841075d089755d022001f3ef8df4c06fd057b654bb46349ad5792d1b408491dd82d35a6f09a60831ec8d9f17832a690c32f73eabe604570bdcffa88155aa0509664cd0662da4e75a192e4662fd82222ddd6304523425eba02dad98d0b28692b43d61ba44127ed545957"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_6(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "74ac530e95e14ec86f990260c234845a163030ce2ca86a24f0459630fdb629db"),
		nonce:           decodeHexString(c, "66040001c1fa6528f678c4c0d9061f46"),
		personalization: decodeHexString(c, "946d491549cb1f1761836d2c594f32b16e6736afd8460c0ecb1bfda1a7d7dca7"),
		expected:        decodeHexString(c, "a497a45f83669ef44a4a08db6aa2f69b5bd0c8a5a7fbe0ea70d2e9f996334659c2ce6ad3d5f5dc733c5e44b506d0610c0a251cf315cbdb8e0735d3f23da38d3e14354d932ab3ed99b3d4b6f1048d28d79ef36f910b6d211a5098b78b2a0dff215a7d64c9a26e201c9cd2dbccd03c19ef5f831dc4cfaef2bda854a540b69452d6e1e0b82c08a4bb861f24626a7e8c9b17fe7cf1ec0d3a6dae71ad20b1ff5629ed09f59b060622088a042abc62b2eb7aeed4ee4f9ef821e438ce4c8cb0c5724501"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_7(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "506c04817286c07ddebd09ff08ed68914db54c1b7c73c819fdaf23d1e48b2f08"),
		nonce:           decodeHexString(c, "329f92547b4d42764c2deef18b06161c"),
		personalization: decodeHexString(c, "97ca09edac4a17df2f6d65c0e4958f760c8416f2bce656d9eb3919faf0b918fa"),
		expected:        decodeHexString(c, "7494c76a946c6fa4c79044b566b49f41637695cfa8e933f13be301dc11d6f5e703720ad344a92edd2d1de07e07c7595da8f03054c05ad01886d2cb5f4f6c4c5f0cfb29a371ec65ddcdda744f2e8015d813fcd9190eff3f6512c587a8e503f3e0d4299bd6a5eeb530a9dced480abef3e05ba1df1a7e04bd24d6b9cc052172a00e96ea3edfa41952786b157f6a124dbc7fbcc6732a8df256b979ef8492188f2f50a8f36490fcac63245d82687f0c502abca7ec7dd1982f5beb662215262a1759f9"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_8(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6c7bedf7b1c554e344b26782bb7269a453f7fbc5aabf42f09e3033b58630f0ae"),
		nonce:           decodeHexString(c, "564f4f9c541b3107596cd3e8292b7a23"),
		personalization: decodeHexString(c, "9f05ef7646b4be65741c55c65a5ae569615d257434595b35afa2e4415024c972"),
		expected:        decodeHexString(c, "4d08e9668fedbc387adc4f170f8b656f826f9f62801407853801d3c238705080cbbeab1860354cb60e765207b04bb3630da109b9b0d8857339172224729fc5420c47f844509d63a3d70325b0952753b41545eb8f87a837ddc78854ff04c3ae67736284589ebbc017b0e9e6ef9e8b6de43e1de0d80d4fe303795b99c2a87f02932681cfde9d75b2d2052ad74eeb7654c7dde25d541bb09bad52fb1f232a81f1af740db999ba8a88fce9c024911f080ab6021ec7cff968b48e7b22b96499cea5ac"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_9(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2fb7776f60596cc045c2c92e05d0baeaed6021fcc0a66c3751817d6d5c72f665"),
		nonce:           decodeHexString(c, "feeee4984161db20ac810d441e3fc3e1"),
		personalization: decodeHexString(c, "2e8f0b6f22b86cd484d7cad65089b1430ee4051c83d3e560d81c02b539c29a8c"),
		expected:        decodeHexString(c, "c508658e64534c789f930bae1ad77966d05a2d556447e5c7407a806e7af4bb626d4a010902cae02a2692e91a18a5a136d48c0cedacccf04883fc2d3b5d1720e184691aa726d0a47a0a74f6b2039af4ea3ee5756746a9984748b1dda81cd4185b8b71f014fae6e15154d276ee9f7562dab242c95eff1c69b4000f964a243b681d060b292166ff4b2e54be84ac576194bb96b511fb510ae6d19e783cf632efee03ea22a0d3a1f60b3a2571ed7d5a6ccb1c3286219f0c3f992d865a7707129f45a5"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_10(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "778e9175d3e502548ef4b5c7fc0698e7557e7f8903b86951ded11b90320c517f"),
		nonce:           decodeHexString(c, "c9da53d66f5be160d9d4587e6fc4601c"),
		personalization: decodeHexString(c, "8221e6b8c882560efe8fae9bd849f0bbdd93b8ed84a3dbcb00e342600384f946"),
		expected:        decodeHexString(c, "2e95d3bd5ab51a03d89feafd4b2ff60e2df83737cc78714dcbcd93837113819fd7b0e2d4257345aeec923ee51ea306deea04c31729e692d577731dbaa43a5ba14a67153776a2ee9064774a2590f2bd37a77372266f7455d856f61d902acf10cb0f8403a2fa050acb58cd0c044e9b8ce079b9f28da5271f961c39fba814f818f006cadbe31f55ae88f47748a5c34e8d6fe0324eafd8e3e1398eb0983455f38089dd46c5ee0f2abaeb582ddf8f0ed910e3111b0106da5dd1b83efd40f01577aa1b"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_11(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9abe6eadd8df7fc85e4f414feb36fe06b587e1b4a29909062940def816045ff9"),
		nonce:           decodeHexString(c, "07bee03f9779b86260e73338aa509243"),
		personalization: decodeHexString(c, "e24084f08e30990410592879c20e7b661a0cd1ffac997173631d68bdc8e9489b"),
		expected:        decodeHexString(c, "74f1ce1b87f539012c3d69ab217c4b1fdb8f656cfd455a2e328a2e8d6eb16800b1a6f1810a34cedfe80439166cf7e4c06411d5a872859082170b84e19a9c71b5ab0417e4ed923b190d44263ba3dfc89c8167118cdfad4053c93d90cfaa23125a64a19fff17124e085f129508835fb9e8bdb4e6bfd40089113fbfb05c0cd6cb774f5368255dbadaab3136a49aa0bc8eef0ee25a0e61dcdfb5ac8b09a4c5381d649a05c4474d1952e95fa4597f9947a8ea0bcf7f68be6bb194dc1eba442ac5aab1"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_12(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3dea25021f90e1651008ad4c589f789cf93e43fa30770f3b1b6d513335d01f1e"),
		nonce:           decodeHexString(c, "691b22cb58210e7b277595d1bd2a6c3e"),
		personalization: decodeHexString(c, "a7fde42c12f8767851d1d0ed0c0b97efb9f1aaf837e0f5c2173ebd73f31f8b80"),
		expected:        decodeHexString(c, "c61743c144ea662c459d947a22a57565eb5da0774a6e1ab29cbb9052e72fe45a4223e31226cb65465fd6a0a0ee94f81d7c5ed07d5395dba87ead2222dc235b33ee1fdf561060eacc9b661985698d7c34f28743fd8f78b3c87391895761d19489abcb7e97ae3dc6246b6164b18d41d996446c6d5da6b64474eacb99520401c0abe21bf7545e3e75ab0fc8d1813a4cdb8cc0a3572f8d386cc166e4a516dc4f6a84109fec2a0e1648c630c245bd61214b36b42462226a451c8dc4bd80d823c51eb1"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_13(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5241cced127c6d4ade1c8c26a34aa330e8453f22c3ef07ba712ac3bca4e3e29b"),
		nonce:           decodeHexString(c, "0c2c26095bc35ae5ecbb261a9fca3f52"),
		personalization: decodeHexString(c, "743a783fba241267380acf9157f3a5066ff7b29cbd74d1452c9b6db3b4b819ab"),
		expected:        decodeHexString(c, "dff087e2fcac155933af6b0f610141ee4c62ea5e32cd101a84aec4d8ef186d322899c88ca4f361fc0caf1f9758ef4a9eb696babe0eb16d4d36d1b020e8a3bc6938042dd63db602d729eddf17851d79b5465f33e809a8a998197afdac882d2f791bd6e9fd8aca8fd3ebe776c257509f2c9eb135c1df8a2b56207e0c9b98f46fe37502eccfba54a8525486a38cfb94f56e9f18efb166881354292cf33ec2de3c846f4c162050c901055b8b41d1202b1c65be475f3671e6bde85211729132e08a7b"),
	})
}

func (s *drbgSuite) TestHash62_SHA384_14(c *C) {
	s.testHash62_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fc2fd0bf5fd34e2a04100ac16ad994b7538f90db4094e00bb477af5fc223da61"),
		nonce:           decodeHexString(c, "67f50628067bc401648926d7567711cb"),
		personalization: decodeHexString(c, "5f8cb19e3c86b179ffb8812db791e8bbe6b0caff958715dd9e3368a2d48f65d7"),
		expected:        decodeHexString(c, "f178a20d27725759c839e7fabb63bd101c3352f582524ff088ccaf6f0546ecbd3d5165f1e3cacbb49ede115b8f6c8db3aa9720692efda124138d29eac17637b84977384fb88e81289ed5ec960e6e98fdc71d03ef0bbc05ac7682acdc62888b49fdbb442080687f902b5a313ac88d364b13871b20f684cf1acbfa229fa203607a0a37b4e1685d13a508da9f48dcd83f26751a2284044f93e18b2a206a1887d77c4b76e821952b376f19fcf53d83f704e3ec3b5c3cb4c390b213d57dbe4852914b"),
	})
}

func (s *drbgSuite) testHash64_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash64_SHA512_0(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6b50a7d8f8a55d7a3df8bb40bcc3b722d8708de67fda010b03c4c84d72096f8c"),
		nonce:           decodeHexString(c, "3ec649cc6256d9fa31db7a2904aaf025"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "95b7f17e9802d3577392c6a9c08083b67dd1292265b5f42d237f1c55bb9b10bfcfd82c77a378b8266a0099143b3c2d64611eeeb69acdc055957c139e8b190c7a06955f2c797c2778de940396a501f40e91396acf8d7e45ebdbb53bbf8c975230d2f0ff9106c76119ae498e7fbc03d90f8e4c51627aed5c8d4263d5d2b978873a0de596ee6dc7f7c29e37eee8b34c90dd1cf6a9ddb22b4cbd086b14b35de93da2d5cb1806698cbd7bbb67bfe3d31fd2d1dbd2a1e058a3eb99d7e51f1a938eed5e1c1de23a6b4345d3191409f92f39b3670d8dbfb635d8e6a36932d81033d1448d63b403ddf88e121b6e819ac381226c1321e4b08644f6727c368c5a9f7a4b3ee2"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_1(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "22342fe603f975ea26c7ed7ddddb38b504e43c689176016c8a56b7af47b8459a"),
		nonce:           decodeHexString(c, "ea8633f25650d21dcc79734a9ad41d3f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0aaf02a611b4d461e493e3532ce8ab0155811d3f0676fda82a64daf16c1f8ed1730887ce9f9b2ba38495e5360a44cc3efc4ca8c83f8a64e6e0f1922123505ebfa9d30412e5c4884aa1e067efafbbf8a560574646fea79bb89399477cad3a142957789fa78972d5680d3165cf2cb6eaa2cbd4201c76bd6263840cc745a43f647d8f3b6d674fc654ee71d8e6196cbfb341dcd0eb98bf126756d67a6a42afb8d24d3edbaf288af6ac09503f4d4794b4872b36a72c3387024e3647447fa767136ca3dc247cfd6ca22b169d3dac9808d85cc193e9bbf3658b6b4f6ab39445a2b127f46a1a8aee1cc19b44fa85848a7814aedde84ec1b1cff69bcb6107c7647b3a90ae"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_2(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b29e584555b8f7721368a042bd6e173e250126ea5b848544c63e8588c45f7456"),
		nonce:           decodeHexString(c, "58035791f0e93f5ee3b5087a13004e16"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5afb6fd3253b8cf132fcb6f2cac2f5ab9470f9123d861353aac795569eebbee38487c0888bd9df77a45cc9fa8c584d8e534f2cdff13fed96f3caf377feabb346cc0f27733f68a68a92f8c0686d469b2453df75b7b2b75b5cb4153d0f5997890c986ade6652eaf1b12ce6ba9ae642c5646ec40791e74ebabd4e122d5113f34a97942fbc9a968eade54d2a3017335537c61118a855598b866a4017fd683da336eede2c2c435aecd838b01b166ba61cf93f6ef0a5930f1b54fba1237f92bccbaa2a30ce44fbcb9d74a9d031c02d63d374b20d3c1dcfe9ff6a554afdb81215ecc1032d8c8ed64af0cbbfd82af5fbc4da62328ecb2f559368daaf9b8c1bdea2eb2b0c"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_3(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0ba19a623ce2ebff98f6a8c5868c89aaf061fb664ac01b59c8ee649691a99fed"),
		nonce:           decodeHexString(c, "71219f471964d6d88aa3576910b03f44"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8f05c6dd8cded901daaf2078ea4b03e890251f298847a81bd826b61a3613c29671bf720cdf1262f0f3d2d7f502e527c1b0c7147c93d6bae619a64fb2ca7d9d8b0267781c9bac6755a25fed3e729c7baf3e8a477c329d56a1332874e4be626ff05f00df8f75dfeb2d06a391bd75c4e1ca89b858a214464d4d1f24a9e379c563f48fdcc93d92f0be5c115c7a10551a1ba1da08e519f4a4c815c3cad1eb21ffffc5c8fabe690b97e4077fffbe87b36d0e09da0fad2b55e0f812bf67714909cffabfa97e083dce8180323caf68ff9eb20368fe444f00d1d711ab683ec35235e31c82d56b523437a0ab90154b9f2d6a8695d9620f4c41ab5be48b5a6118a242ec785b"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_4(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "01ad79f5be89f5191da48a44d56ca5071e99f15a3714eb92174749ac0da9c53e"),
		nonce:           decodeHexString(c, "774995740ad00048ee2996ed7e1c603a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d228d36033738b3b82f2840b46b5f0fe1bb06cb204ab3b68fa80725966f3674490ec6748e48db9a00285d63a29ef905cae5fb1552409f89fd6541b307e4b1231d46556af591023474bc2c07c821c745ffd7c24d311c4ff6bb5d346e15e4b617faef14a51bc3820270fd010d064daac2257df088bc65242656e7e8645989c0884b2dfcb6d725073150ae0c3d00c89b118d0dd1a424919aa8e9ba6e0aa3a8c4f13d2dca4f339b220356dd27f9df153e9c2ab86c03c1075c54583c95b64f42eb2b5b4f8797964d10f5f5d4b01899d81c53b86e11b6633ea2265aa2bb4b7a231b68eab232fd222a73c109530d1ec5649c2e0f596f5e37f340f84be9330d6979c2655"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_5(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "aa82ceec0eb83402fb324471c806b95a4638d983dc2a9760f1147b6caad6cb3e"),
		nonce:           decodeHexString(c, "0de90f870d610034803f19ac72ee076e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "69176ef1b1ca271ebbc18e438abdb58da73e8973da0d8f09db50394e648aeab12f236261e29bc95e39a230abeb63b2baede8d5760f5935103034d2d3163ef70cf86ddb1eeb51b0785b6c4d0790b8a9aff1a93965ff2ec0619d78f2986078a7dbed21420b1c768e59b4f65017f392aa7f72b47c7129f7ea55717be1f924766643aabad143ac153525a7f8196bd689d5543b9c1f5b6fdc50c9ced379cb6e979fb68c162abc89681b6255baebd7e125a5bd0da884454d225e621d4c0ef9f68d48eecff271e7e1845ed0a32b3998d114c6f57a53d1230e9976472fa0c51a4d77329d833f9061fc0301626eb11dc9c701358576e9a6a104bd86f222e6a0f9d0b4597a"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_6(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a6ea179c5b95eb59011f0975ce9752fcab7fd245e16c9ed5a211c822162d2ee6"),
		nonce:           decodeHexString(c, "54a833261bb18d895d11f517a6541c28"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "79292869d53048446d1ab4c5e4ad360aa4fbaad9b11c084a05884527393f877edb6565717afe88be6ff1a5562d2d94f5932b65fb3412891d47985b8499947675278e4a2980c5c2bf45f41c3d9c411927530a599f8592e83cd03b2baf47a60d2bb62e1c9b176a82f62bba15413464a338bb90e8e3524a8cca13395aa81e19c82d58e26d8ecf9099b9d1e879ba60dcac907bc74f8669f9fca4db4d7272aa57ff77c376e89bb696f3db16ae1b22a89a072f8909678a2e2ce370a33c53d65ecba52f6312d6f66d3c000b3ee6d58c8896b207e707933f4ef764330cf5d9a8a6ee6271f034c78bf9f7bfc9135590ba44f61fe89db440eb6d4aba5fe553a628ea466ee6"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_7(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6fbddfa9c6d79513644acf22143108ef8808387055f7eb94538ac7ee2dbff197"),
		nonce:           decodeHexString(c, "7612a515530deefe1696f0838166820f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4741b139d81ec6aa6c56b365f4505df51651558a43236f0e05daeb36a0f2520172979402f7ef9e88d729cec885093b6687ff42918f162c97acd02968601af0c58f0be3f0c744741caf9e8096625b11441bd28c48d3b5deed47afb5cc57c7e2b4bd6c9fa400d5637b4cafdf406370c519a5ea1de8c38cbe40473dba8ed7d50d6524e37be7a0287dc21c4cf1f5d3a0b2f03ae2c349b76d3c2d3921307c15839247ebbda381b97976a15f7175cb6aa3b65324e7086f2affda903cc3ee3584a9c4807ac3555c1bcdf8f28a0daad1a55267baecd7da76837b455556fe2a03dc4f8f7dffd69da0164812e55a455418d34868372f5e0f292dfc08abee2e4a458f9c539e"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_8(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e11dbb2fdf96b61b60171eac2ddd71731457a61d750325413eaf0d631565ae27"),
		nonce:           decodeHexString(c, "48bef2b3617ada8a3bab0851ea3b2491"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9b31fed9016a5de5d22186e88362a951e00f33eac66148d84276ce22021f71b5af99bc7439b610d347a6b1414c4c50a911f4e14a8997600686289320568996d26170f10454995d6f81ac4baecdbbf7411e04a767ac11416dda24db4e55be7c1d10d4da23d7b35c9226fb2d9c146b928d2339275433aff0b5527b29036c12173befcaacd5e9d7118d1dbd994c96b6602e86b537fd00b3191fd1abac4ccc4f6ddae7c59abe0cb3602930d9eb6294a9e053a415c1bc62a6b5f2aad89fa6c3cf4ca03d9cd150c2f252154bc46f524e8ecf90e819d97822e698a487bb92d7780532261cae81fc309679231ba6bdcc1087e71159169b41534b9af31f566a92a14cb492"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_9(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "31113275ab562f8b1704e21b7905df530d5b0f81f044844a0db06071587510b4"),
		nonce:           decodeHexString(c, "35fc721e174e3b372c304f0b3c0b1a42"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "967c10c259c5ed4d98a91f16454c452deafecd63f685c3bef917e55acb6dd955b690f730f968c5a888650c2562bd23c1d5ba6598e11d9389afe12d6178cc8a2c77447f8acdedd028c01f6ee81022729ecb88b837e54f27babfb785023a6e596ebee6df3caf1e8975cf040def89e742b907c3e51ba0afc36ce3e7fd85b25a5550f4ab01e1db76419f8a732a6cf8af141b8d9923607ba185be6ef60908667ae0ee0b7d293012fe52dbe6550f3eee6867a8a37f88aedd2da962dfaefdc5d5cac5e8e7456f709848bbdd508cc5f5cd706e7b5ae9af57fd994d3f2e61bca98dc3069967e56f1f30ba0cce2bbf390b1f02dedfceba56158009cbc23c2c4e9e646bdbc9"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_10(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "027bd3dbfada2497ad20782a28101ea5c9390f7371cd3245fa537ef932920bde"),
		nonce:           decodeHexString(c, "cbcd6d23d8ab4b66a83545536930f557"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "290f47f88b75d2ee16030bd9836a5ffdee9eed568fdf300ae7f99ea28c9c4751fa46c1ba5d367f1c6e334f10f61cbe3ae81268826b6025396e73f6a3de2c835a15f57ac8e1992f1a46ef6aa9e96d77b37aaa24ebaafb3f1d211d2204562af188492c537b314dbd7a8c47ccecf1b2b692aabcd53040d19c329fc1e856057dcec0fba97beade1beaf9f253280e519d05f98bbd31e87170a7e186d824966710620ff1b3b66155ee34b42f4e4a97f12248c8a1fa1fada70f95f7d41348caa00ad2c56162909a1092b4e69adfcde429a02109b4dfc91aed1174efc16e79c72c98906747aa18f0ea877bd7ecbee871987e1f6aa8192b3e63ce4dc14f5e596492c74419"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_11(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "307480b232f51a42fa3a342eb8af69657ac0ebd1552585aaec8b3e88b0165263"),
		nonce:           decodeHexString(c, "71cd330614b1e942393c58e3bb65c2a2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "545c5d384388091030791a107c52f615cfbcad977123c426de51e990617744be456952bbdec541f03fc5ba1ce745d2545108089492a8154ea700f71ff6b5dce1ff718368bb28e3c4df7c904dc9d11a10732675bf3aba0c1119ee56c3ad2ae3e67b75748ef0e4ba5c9102f0c7fcc83afe78ca19afa8446aa41172e1e2978923d14d7027f80eb1b325b99bf4fe3318b8f5ce41ff7687f075902a0ac5fb672b6bf05a90ac5dbf15832cdeaac4c562b7dcc58dacc40c5b859cf47c9ba74034cb18fb589babc40c2b4cf62eaebdf0c0f6143d6a6271f4b0637f15ffa18943c1c97b14061de36fa52f1237b0ee868ffe8615d9084437948ca0aed845c2b7e9d7700bdb"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_12(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "285278848f83eb2976183e15c93c2f8b9f99b35cc99f213bba0c7d772499cdb4"),
		nonce:           decodeHexString(c, "f5278af81d428e5f86eb8c8bb430c468"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ff6eeb98c17f76b293dfe58b2f3ecd9cacfdedc9656459fbdefe21c528332ca2622caa102a24bce8c5a1d86e4c2c186de72519c6e0249cc153ac57a196a3eba5e38c7f1a5251dda339554460b0edd7e6688ec4b2bac7615623a85b2dd980f51c50182058ef28daa38ca819e7f6bcdea908b899934bf9717ffddb85e0a992787e30a920d6c1d01d5ffa6af5ac0b4cc9be59f3537352d92552903971888b0eb32100dd8e4a3192fc180ac0c49f274c8f52061fe42d2f3db5135cd5771cf20cb0abe50512559f7a775072fda463c82b51bbcd79e1e518860fed4c463a7ddc3fc0f5c29e8f82ef58001a1afbd73c404e7f93a5266c26cc8dec0445482e6d24d2f340"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_13(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7badb80300f7b88022a593cabc5f857877e4544cd8aeefcb86b5d35e524e6e9f"),
		nonce:           decodeHexString(c, "d5374c5187e21547541d27c67722f497"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b1791685a44eabdd6f1f65e428e2b943f0e5f1a9f926be96d8b30c089971dec6c5ee3431ea654fb5645d2e8f54b6dcee3d829d6f27b11ddc98d4337e1420d85ae6f82971a5fd6e4bede7d2a211da0a88e7f95e30347aa8f824dd7a7bb08f19bccf1f3b2cfccb37022344aca75900c868da52d251b17d9160755ba26ac5029e4706cba96c9c30199635116916c508095b4f55e6612386eb3740dbebedb085d1d513cee5eeff03d8e2da492d2c5a5016fd6af571013a59c4895769530cbdf820c88618b59153cd839049d0a587af9f2ac5f96bc6c0b3bad00bfc83e164d6d54e86585cc3c292d2e588b4217739107eeea6150efa2aee98565451eeddcc80027e60"),
	})
}

func (s *drbgSuite) TestHash64_SHA512_14(c *C) {
	s.testHash64_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "471746177fa3ebbc1f1e06fa42d61d5d491abc82eb7d66e749b87d562a7eff34"),
		nonce:           decodeHexString(c, "42f8a1ee9b09940e9e1dc64f51a78b4b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "238c9889284139945e657d2c4312ee3ca2013de69be10bdc8b90d54867889f2c15c6cc933913457d4f5a00bd52b0216d90c56bcb341dde7496218861b083f80d8c933627e19b7bd8b73d6dda1bb0b2b0f1f90e2b453cd063938cec3a08f34e5581c1322329d87709e552a97e8a8c8e8e598a5c5cd6623ad1eb9f7ddd12739b1d157b1020cb8cef19402938d31b74e490c0ce75a9f57a17476df1cffa55de73bb8151071edf396c3b9e4607b07c7e2b45c249f5a8194cca1e97af78be47cec0ab0096cf588f3d4432393a8f5423a165d585e2e5f98fe47510d9415418aba28aab1193261036214c35d8ba04650b4539be6b9f7377e3c75ed236d0e69cce004906"),
	})
}

func (s *drbgSuite) testHash66_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash66_SHA512_0(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "67d492360c69fd41aca0ac52f5e2ba1820a5e73fb5fe5dbcd00bb9ea05af0523"),
		nonce:           decodeHexString(c, "5e7d69e187577b0433eee8eab9f77731"),
		personalization: decodeHexString(c, "22e4e18124ef50ae514d5146479d83f0be23c5c4df4ba208e5e5b3506d3e104e"),
		expected:        decodeHexString(c, "f7aa49abb823c6c41e99e782d098821b9f4029790c701d015b356a1b7c655ff1553180e20cdda09c82864933a079cb81ef033d356ed011ad2777dcca17666127c230198c89f1f372fddb307614d062187f0b4099101617d5c2e1b4792b1d91bf5eec60ba1dbf20e7b070379c3a097a98a043a583718101c052f29dc281d1f666494e11d5f80cded4e6a9385143d0bf33e7d687f8204cc97f57d9f0ddfc205a8efe2787e8f49575ebf83fabf585840212dc6fce1c54df92608b01e7d36538d9ef2b8a6b8910daa3c8ccc72f284cc2f2573412085d232e29eabbe61b27eaa2ed485059198d0ae57bb35a7fa66492c12e782c5774e1abeb202e0744e9d766f2f133"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_1(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fbf07f5125ca55031fda59f0c0709c58db66e58ec199bab56ab0642366225993"),
		nonce:           decodeHexString(c, "4a5c510b0831afe7de48dc135df7b01f"),
		personalization: decodeHexString(c, "f9abdd2ae83f55daad43f94f3294b5c3e3e4a94a0a46dc37876c83a327e6897d"),
		expected:        decodeHexString(c, "223fb23049250be1785a7d89fd0d472214d560528bb98d9e65fa3de2d5bad182f6c960b478562e74408755c4586f9448ed5a4802d0b33d42bb5362008880a82ff662535aa5855f1f0b82009251086a9e0c555cb0ab279c3ebb8c3afa2b2e674cd122c605856f9a2f404c225119c4e46e890afd3ba54548f102bff18fe4590e68c509c137096da4375ddebe8c57ef34150d536d24aa34402a2a17a10b1e06d300cfcad63d3bd788c3e13734ede9c6311f1a03b5bff3d2412de8e4fd116783d8af69cf481a64f461f9d2f80169f2504c1597af0066c4273277a26d11e58fdef365f902c14b72f426c97b97be16d744679636d943ce319fddfd15eda8886bfc46b9"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_2(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "909f726634f77ca65889f92331c3d3f5a8fb677dddb8447995d7a0d0ea8bcd33"),
		nonce:           decodeHexString(c, "0f95ca1a3a1dbd5110640b07fc3188b5"),
		personalization: decodeHexString(c, "dc7c673317e8074c4400a4b23b7cd617fcaa14c3e2c577da0445c888f74c1f65"),
		expected:        decodeHexString(c, "328e94f4af0c77914adde912afc2e7149b438dffadbe65f2b9b5d951b790ac616633d5fa98324631d542ec52129c6cc3cc3c90bf76f8dc916c3f5849d459036f98699d86d4395bc435c5e64c51a1bdaad35bacd9aed2748fc201358efa6aad0c42d675fa00b42553c134109faca026697080a9cd8c47a34aad8df0b70257d6705b91e5237d6ba29a19f17ae358a38faa28e0f6315bb9102f67e2c66330808b97e46b98c3d4f0d74b8fecb66acfc19974588e67e089a0a7f81933e8427b17db4fd3cf44d04b6251131330be52e2f924beed7a3aed905178732a5bff28fb7387b438cc61fc47cb6a7f143475f12d06c80066178d1d27882fc20e90e579fb30a19c"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_3(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1cf9663b23982e38ff659f30f152f4fff812d21c565de45d1ae0ccc4473a36e2"),
		nonce:           decodeHexString(c, "21ed13b5925fd53b016a08337516157f"),
		personalization: decodeHexString(c, "923a425b4b1f9c1f7406ef300d09ff05d9a52befa2a2f55067ea541816a1016a"),
		expected:        decodeHexString(c, "9e2dc48e266427a81d4bd74b802030748e53b8a0a76010fb76bb6b612cb6bcb76902ddebed71fec51caaef13146455b01d1e6e4bde4fd1d57ae9945374e0e4bd7ef78dcdf9e23abd86c6dfc013c49a211878ce1d3840a0263aeed12266542eb74df2a13542b681d768eff64e1725e209ce85e9148b47d50b7435065d760bde93fb6b6762bf8b260aab6ec38dc43a24f9816052d23f669c84ce8b6cb323949a4ea2d1ff9f4d4a356df45cd0235883d30068837f3fca8ce0430c0ea7e97e873a8c7d6b0894d6d8e20c0f52e4106d19af83a7b3540a9b20c099f3896b8b009e89f76cca8127c04c3c34371c04501fd03adad0f81b7e742705039332fad327ea0eac"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_4(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "adc00d4f536f383b7df5ace4eb9548a5febc3e9c2903b53f88ba0be65ae6204b"),
		nonce:           decodeHexString(c, "6a39430795557e5188c0d1306614cf71"),
		personalization: decodeHexString(c, "a332597b684c8fa2b5973fd526ffd55c99fc7e3416395794fb92aeb6aa3cf878"),
		expected:        decodeHexString(c, "0c28bbc89dde0e01a853433536a54891e6b0f9e4066ee5eeff40d48c69d49280072302982aaab83a98e486e68888472207d51bb4dc3b28408ed04996045c27e0371ed0d09b197ea733fa32e67bfcbdc537d8e576f1811e9a44b63e400e06024cab6c42ffe77ffb9691f42871e7fed672de1ace37c241d49b38ed2bd53a6718d9ce385737f22e245146781ba0d6d4ec0198ce963072dd4aa085065f27965d899ebc10674f82bed0a4863441aadbcb9dff6020fabafd3dcb147f20814933a7f7ab22fc375d7030b2ffee2ce3298737bbc2c549ccb9c10dd9c9decf58896e3d8367882c89b90738923f8524004b7ed5433c28a9546ceb7e34864510f46f1bcb5550"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_5(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8d67d1d0a85764dc1534a1177cfd14e6711171682c9ef5f037d2318bdc02d55d"),
		nonce:           decodeHexString(c, "4485e5ec300e024d7434ac8012291e82"),
		personalization: decodeHexString(c, "c2fbb8c66e89908561af60bd468c39d2bd5ad4a66f9a8dd08185fab68644862e"),
		expected:        decodeHexString(c, "edfd24b72b3865e61915e79f3338ede16cc8e46cc8a694c52c491b981ca97bb11be78d3c30ccf03c1b03a7f7335b9c4214f362d437573362273d15240579ce2aa8745ef8fa4dda78cb3e939793e2fef43083bc699e56c9a7352ef14f12633e4fadd1a948afa08902ba6d09c494616f27e1b80575ec8720dded7a4bf4bb1fd0d9552caec2b033fcaab937ce7cfdee8497c7a0d3eee81969832cc8eb3fc8b9da97ebda4aae4a85ab99a0a9a09982c2c26f67d81dfd6216a76f06f50dc7286b83b9b54b79b5210aaff61bb8dec5cf670bc2d647fc3a126a4283d724d8a64c919628d1b97278bdd5de6dcc5baa6879ea9645b6b7720239eabd9a71df1b57cea0bc2c"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_6(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "eebca3dd0a97fd507b9041e08a23a07390e009a4a2551dabfac0378704937f3c"),
		nonce:           decodeHexString(c, "727db88630875d690eb62030399672e4"),
		personalization: decodeHexString(c, "55c4f548879f4ddd11d44804732bb0a18c7cea3862f0ec7678eba8c751d75cf5"),
		expected:        decodeHexString(c, "753723803f7005d26b1bcea4078bebdfc5b97dbcc62386f6c79e5b51df4b6902455ebe8b5f12e1220341c0dacc3e07b6b8355c3f372abbbc04e6a5ac72ddc0da1a32031b3178e6332f24eb0a98ff12a550a3bb8ea052574984e19b5a60a6dd7575e263be1ce9c26ad7251df75e4d49acdf9ad7ba21a75e156b7c8eef7cd77559200e22f573858b8485ab1ef991ba7764155da74b96f36157a23a3019527e96c8312dba922cf5779f23aa64f1860dd17ecfd82f37689f6fc618d204325cf4305ca5da09ad2eeba06884ec1919fbadd6eccfbc17dbc2337fceb88579368e0f305d70469f8e4794f513c88a096d3012dd43fdc1179dc27b8c1569ecceb3a0f5d44c"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_7(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8268ec3826db5adbf921e9739a05c988df9a28e3621a68f584c9fc4292754275"),
		nonce:           decodeHexString(c, "ed90c6b8824a0617f3b325c3e3900def"),
		personalization: decodeHexString(c, "9ce84503c8ef7e8f238c98d6bc9278c83e1f00d0d6db677874878d711f3662f8"),
		expected:        decodeHexString(c, "7f761255e03be3b9fe8cfb2485ec0df22b954bec934f5b48fa64d63622d4a80197e9d8bcbafb181296e569f0ffdee8fddf44546a5ecde0d6812c9800903249cd23781769b1d2477d1afeb47ef07dcde6b9505ac3ab0ea7bc62220cec17f2594c9922b4704d7e1054251667c283622d5ff67446a3176a39bf5dcbc229dd45b71d7e71cfcb04dd1aa009fb5c4e4eb11c20b9ebb6963d37790d079c51c05ae169a9df659ac2547dfa1988ef9cd7def2b8cf5c32d8ea47dfe900fa97c40bff96ff4b7d1a3b2b51b34ab0075d32dc9e8692f9e735f0193a54d598879a311f066b0aeacbc0e4bcd709a3123de58ed71e6db6fbe4af3d9beca6fd4c018cf5cc1baa3533"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_8(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6ba76df39a3fba79b29ead091c7b7bb0066d71b497b58a59d4c93eb3c8db902b"),
		nonce:           decodeHexString(c, "cd24098e11d97aee427110bb29fde68b"),
		personalization: decodeHexString(c, "ab091ecbe6b462a79e11bf0efdfcbfbab0604baa1a4d1dba1cd2e0a1b691313e"),
		expected:        decodeHexString(c, "17f40c6a90ea77d29c6ce0ae5575baffcfb79d5ca15d70b2b1fcdb0a88666335b674ac5fcd48becf72be1f8a73c55ba60264c2169b68fc3a1f2dcf99d9b5176200fc66ad498ede17290f562a0aa397997a0cdb72b4936f1a58b335fa1ab0ae9362e0cc11e6adfb4d41aa4df6e2a8da87bfee28b7bcb7deec686f54d5b20087dae8d995e065c7d3c1da4c5c7b99fda3a7fd0a5e2cf6f471fa8cbcc700aaad3463640e9abe9d4465fe66023ce80b183cd1647f4ef527ce26305d43d480bbca239fd8210f09df21aee1ba40c07f05861b23cf971c0a056b4326479d0ae03479ab5ef19c3b735602360fa1b5df07385a1c1e5c509c3b4f55b398981ac62080595637"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_9(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e048a1fb7d64b7217fda281cb41776a2d4b46de489b90d5f9772dac5477956bc"),
		nonce:           decodeHexString(c, "5353abb44215646a8f7c05eb53c94a2a"),
		personalization: decodeHexString(c, "ce0cb9f85badc9cd5f15e573a99f00a4060b66d5ea00dd77139b95468e8ea82f"),
		expected:        decodeHexString(c, "ea23957103cdecdb012b42012c1b10afd88a028b9559be9e7e3f1897dafeaf4f8e5f927b93b5718a3127b89ac84544bea9424acb4f06395def1ee054fe944c6339a8484941aaa5c92beede9cec976fc4167b1d0d0a29a63f59f54c7b5ab8c87b6ae91475ca57bb11c0dbdae426681e2c1261983252fad76c51acaaef65b95c9854778812f0bfb6e6abd7b8d17e99cb63a8ab4e6c2498fd12ec11fa7baccfd9a6f1241d65d79c2db7070b3a5c781a4fa119c1a88592c8995aca893b18ad43bff40c1515d18407f34e1eec70547fa0b0d25e1a2bb7c31ce253b2fec2771c62ca35936a39be7063be5ef934d4e2e7982b66ad8ea6ed7bccb664ae2494f795170cec"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_10(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "25409ba4ab52a0e452e799229cd057bf06704578a490c5d1e6835fcf542a7768"),
		nonce:           decodeHexString(c, "eb75bbb6f4578a1152c0fcf919f77625"),
		personalization: decodeHexString(c, "1fb58175e5d8cc325bba59fdba58fc8c2a3f81a178e606f381c32a54e5c94765"),
		expected:        decodeHexString(c, "c156c12387a228b4d71db7f4be9d58b0ef09a7989cf0cf4f3b0945cb872c45e07b8129c18bd407bf27e83b2dfc24058c83f96bcd2ddd482f678102bf17ed0632c7321b66d3f1d27364d99db713f5d9e7e1347096eafcc46efac0acd96bf0c3971bd862c94af3e25cda255bd604872f565374dd03a37105e26a5b7f456cd36f22af3cb979689745c72bc1eda048912afa2b13346a819bc9809d80b4b1288ef8ade5d2db60617d89a66d63db70cd66e7581594670a2c60d591c578f6683e7b952047943795ec3501fdbaab4ddc3c075cde070b5eae9d0cbe76c039ee69ac691a35153122dc03b3657fedba475d3261d8a989d7fd4498e0e47d54d091c83d11308e"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_11(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d819597700d01af57ab5bb0d684cd587315da065a308dfb0819a297bcca33a5c"),
		nonce:           decodeHexString(c, "2a350973b91e7fc46fe8dc948e04b1e9"),
		personalization: decodeHexString(c, "d644aeea2ef1aa8a84b44140b1f293fb6dee3e786acdaaa0639ce5d55ac90970"),
		expected:        decodeHexString(c, "c9f229c3a02de30395f9b55416cc4b81ca6ef2668e1d611ab58b1c8254f0091d57a808da88aa816b0901684689347fd4eb2da833a48be4140ad303735210f21937c59fe4b5601a5df8dfc48e3bc2a2e1330438646a946edaa60aaaa6bf942efdf03977e48cc6c24e095242bb9ce8e10521fc1847f57df099ab5d13901e4230a4f35c0d6c02b851607d5f9f9908884c5348eb64817dbcc32b0ecb9887fd94272ca5d8ba9e7d3730fe1457fcc8ee00b4ffdb0a184be8db8aa3ab97803ed95a2014133e5e0d00fa5420668810c4a90966ac63e0d780474f6adae9049d9446ad2a7eb1bca57e8a5f47649dca17d29939c8862e0a2ca63298744069cd1b410a0d5bd4"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_12(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "cda7b628ed5b62786f6931c1194ef7dfa888a3b81991c7f5f140f1c39118a801"),
		nonce:           decodeHexString(c, "2061ad369e7cc487dcf0ae6192dc5b42"),
		personalization: decodeHexString(c, "7e915dd5000824059f6165d02811fc38fad6b954f8b168d4822a45302f356615"),
		expected:        decodeHexString(c, "c3a0296844d24b4f0e43120713a4cfb272b40f01d2548f296645c0ce3d8c5644077c3051cd882aff85e692ec111008f46473abfa461dfc52ca5e0ef79cf5489fdd16a26d9f1b9cbc00201720ea3dd32afda2b09777e5bc78f8b345f66d317bd9edbd0d836c8bc1e8cd5d793d0702f7eac2cb51562c2ea2babfb220234139e3ece41e9000212285fedd4863a9c4851cecd4e1c17a5c364dc650411aeba5089b88ca63d35ca4bc4e4f1d0ba31b3f4c890a6e49f90ec7e203ac84d627361e5b6c4e31f23e72b93cd4e40a7d284442e52f0d8b1444c48c70703f12cfe733240667aa2c77958783490df8b84a0eeef0a12885c0765e36af6677635ea30542c2f5f43f"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_13(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8e3f8c69a382e524c4ed5ae465cd077b2541ab17efbcbbd726e3a93cd7be34d8"),
		nonce:           decodeHexString(c, "dd87a12de5a73084da6760bbfd1aa5ba"),
		personalization: decodeHexString(c, "5ac9d0b995f41bb75cb0356e54fe2ea21d65db45f19b2a0f5135b6b533cbc34b"),
		expected:        decodeHexString(c, "123f7e607e4f02ea8eb5dd74660a9536056550377b46bfe0815aafba7578c3d30e750339d7f20f240b5e6e2e2cd4eec10983f20e09772e904dcbab56306eb99f7be4f57b64c3eec9a78be8149663096e9d6f7946a1a5f32f2eb13c580dd6d52c7428d4c4aca1ed77f8c9f303111961d0e2d61af6bb76920101995b2c633eca98affac8686ad66d37d1af91fb6cae8132857eccaf56f6e87179279306cdf33260383d39fa19872d8385057bc386ad8d3599a7cce183997418e7e249eb71e3c0d11fbd048f88bf1d997560df21eae81f35486481ec58414b2f7acfd0a6a03531e3533ed67e705894797c1cc4be841d578876ddd7287e0ab10f8e0790f07e078efb"),
	})
}

func (s *drbgSuite) TestHash66_SHA512_14(c *C) {
	s.testHash66_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c88a94c68f5c6560d90559173f8b9fd04a83a0f6578b22f057c781408dc1f6d2"),
		nonce:           decodeHexString(c, "8680d7b3f0a8ae576bb0f75364b463ea"),
		personalization: decodeHexString(c, "c0bf8f2ca4efb48b8dca73ca7148da3cd5981c5a459be32db5a14fc7762c68d6"),
		expected:        decodeHexString(c, "269b3b656e58f9aeed32c80700d9d1b863b0253b3b33155cc0849efbedfa51cff82262c9342cff7f1a7a58a5954fe66547baa1831fee55ae0d322674c6c784095f43b30c1887fb9fa5e7e7f1905da2808ab810ecd224ab403b6f562bac54e65cf7f0473991ce7d7cbc1a669a022fde3141a9880d974b7ede2fad24a3263570443cab0e8017d242fb4c2032dc8be56d8fc1e0e8f92254c7480e4941259ecc29ea47a1d11e074148b259ff95a94711d767f0655f1e0574dfdc4ae4f27b12015af86aefd36f6c10056c3d83e639e3641cdd8ba178f7779dcf502bab3d7588cffb72f6489981aaa7139c255df0e76bf6bba32e4f547327da4597745b15042869b2c2"),
	})
}

func (s *drbgSuite) testHash68_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash68_SHA512_0(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e8347c69f4cc4d35b03fe0f74d38a8fa1dd57dd7a2a4272684a4823703f9dfc1"),
		nonce:           decodeHexString(c, "bf28460d47c2457b173c46d5853a8d54"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "aef43abba93dc266185516f1ed9ae5267016ab2502a0d1c42c602d1f12df539d042e2f5cdd52e4eff95b8a34be363bd49cbd3bce2a42187a2ee8d1af5f77b29748f1ad692de2f28f57cd312bf0d2a1b7701ce14ebc11aa56367cf6ea4855c4ae4a3d8e686c748d5c9e9e62926e1165375935605566b4d98b378ec42bad973a002f063c700930a737e8333227f0e612ef84989186c9859ee2e669fb259c30778c6d92d1e8ba0883ddddf0517bb98144a481d8016567866f91847bfa964367d28930ff3a84c27dc7fbdf8e449122e6d071be26777280a48d362e35b364cd816d91b281caec0000e7ea76a87bf3e1227d068f1fc3fef2ecee337d970cb08847ea13"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_1(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "becdef2a9133c89941bb031628a42315247b63bcf47d0deb982a75df98a17ead"),
		nonce:           decodeHexString(c, "43c77151d200f0988c040d4665268f93"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cf13657fa184a2bf7747728e66813c3e795fd9ceb80483d6a2cbe25577eccb937b195059df92a0e5613263167e3ddf097a5bf77b223b2a63e0563adce0fc1af09cea497cc6717f098a6f85c6a8154ea3855477ece71ebf723b466f1c8bf3f56f2e28f4456750689a8dd73e73c8fba35f1d1d3dae80d67a2ddfdb7c6ac7e3a91f439eeede14cf79198354d9ff47845bf684da9a7a47f51a5ed3232708c0d78ead7be463a5d2c35e0b7b74aa3043d6673c5d09c98f91cfb1c8d3f9bc609d40fb8084d77c128d5abc55e2cfc5c1280a612d220af2b6871555c2c5290dcbadd96a01c67e1c953eceb6d305e48354f28efd21a1a7eaccb68825ef2ad1249b573bf39b"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_2(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5591084e26463aa51e9c8b3bb653ff3868e2a2d89589abc93a2e09a9c2a065bd"),
		nonce:           decodeHexString(c, "39e3dac5749bd0a8046e2f0e32d50ae3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1d2dbc3cd00c8daa226746f500d2465feb8fa97566630b2d9a9e021b97cf1924e8137c64d5311bf82bf1d0ebdf909445151ca627497237b9f121f265b2ab304a5b2724355f63556a66b3a5bc9407c8bddfece164c38df52a29f656ea6c8e417aa752e6ea5c37163bec602a40446e41f138752d4562b5426fe5f85efd76f3b16e271de6ed2d52f05d3a896b7e490f5d1a98f8cf9816c5173efcd48db8c8573c59738ca6fd48950cd421ffdebf32b86683daab770d88cc059a6cf857c401e29561594e85e5a3191cbd95b61815a934fb0f0103d4ca7a176488780cbf100a473bf94a80a8e40fa65c92db33706f0f2838aa418ee72617a3efa902b2988483dcc876"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_3(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "070a1b7af0d37c6a26a7bef39a44fd37b736f665a9623fb1fe208e52e2bf23ff"),
		nonce:           decodeHexString(c, "0c3b6a5c15ef557e5a9272e7b5aabcca"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "62ed333f27cb9928f5bae6631be85d4ecff4c893bfc38880ddaca7cde714d0c203c2ae162aa8e0fdad445e4e81c34b96398a0fc46c6f5d94c61d2ae3632411540c1689eb0fe919f5e6c82a9892ac03ca55e2c192897f676c1fc1d1a4cb65b3d4bb957ef2f7aea1bb2ccb7951904bee6c3f6eedb99f02921e08e62c7ccde1ceb7a5b20735a3233ea1cf09eb8b2704d630028f81bd711baacb4b09e6193d65f11a3dd9e5c536a231d6366c03431305f790b121845038ed6c762e41841b938e21738e7f0fab5a189eeb34adac6de4bdbe9ab9348d4d5c2cb61406a31c224dd8aec8570c87cf4c75911f3316f95a921d9c6a90ad3c494dde5028eb9d66177b0d3658"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_4(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "28e996e15aa02541f781cfd86ab9ce74724a3000a22a70d101b900303848692d"),
		nonce:           decodeHexString(c, "d5c4ba58065f6343cc51d9c598de26ad"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fc684639d41093580a3d31b4fea1d92ce92cf67a231c16c634028ddceebca4a754fc19a150ba618cd8c77c98e0b107ebe8402068c14779ac184ca7d506679b2a48291785a47c9a07a09f8bef24afb8875452ff15c96351a07ad7a5539a14d578cd7e4be6b9ad5c2bb8fb8087fe82b13b0ff93be8847c4790c7899203baac4050c8be7936783cd5e7dd3cb0068b8b41ecd246b909fb80083f0cc378bdbb39cff96611d51b3e94df7dfbc8afc4224af1594a536f277e0d3c34e8f08003989fb8f2d18c0db3d7f8ab08d1c351ebd24d39f9be002980b88f3917e68891e1d26f775ebcf960d1d9ec0348d8404cd86838c76bd691ca0160b57dfe75cc717cbb9c0195"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_5(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "21bcc39dd3e90e5a95b4056e385a1e7644b96e629f51b1e5f030857a9bf3c523"),
		nonce:           decodeHexString(c, "0090eeead56651d1f4acb93a2640d9c1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7bcf06841db1169aac8d0101240b4face1c11ec4dde6307df08de7b3d817c36b550fc86635d6921f93e2a39f395da6bf09f3b4ebae9272bf8e85c4e564c410aa09a4904bd17ba7200165672d64b1e6cf49cc4ab8483edfcb60e898f01584917368d380e00d5a3482a0a68ec673f20c03c72ebd53027cfd367df0b00d513dadb70da739a8d28ae4800fcf129b5edd33a87c0bba39c22ae192c2b19529f74ad6ad00e39e5bb58a09cba331115d538a70f09d1b1c95a0cade85dd4b61d224edbf7f26ba347010174cf244cb2700999d65cf8394357b3ca70e323c7e1509bef4b97019db32be0d91bad8ac2b4684462d3a6f6022bb30e4df1b299bd0bb24af338f73"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_6(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "53773445ce198107882c7714d361ac0484fac8d5aad4be7f1b415189beae6777"),
		nonce:           decodeHexString(c, "d0349f351ed59b8b1625adda05f99c62"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "97443cf87445d4b7b36da5efa232b21b293c59546fdac531f98a1d76c219aeb046b7f190ed5ff5971ed7a62117287effdc4e1a692a9bb5067a733013d0527fcf5c85731aa61dda10a7d231ccf01c2fee79bf511dc01f5561b3f98298662ff3a74ea1d57170f322a40caaaebba287bbe150a22087cdd902a741efa527a372610f3bd7a0f2c59878c4e95b57b5b8615d4eec128ef009de7a5db2ac6177eafdc1f153b70a0ff60168d185b626acf4ff4ae8ff47c88eeb1fa41eafa36d9dce7d782a7528d1d676f9ee7848ce19dfabe5b24f395184112f6bd5c50e451ed6b6dbb7165aeb82d5100d26e220b7eae2df912aedb69990c3603df39f362aa9302982b980"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_7(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ff37fa0b66c83c3a2e2452068d13bebe869f7488968b518a2cb2f4836ce39f05"),
		nonce:           decodeHexString(c, "4304b9a6a5eaae133b2d42e3c70deecb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "240b7b7baec7ad9cbd2884b27885484f4ae28778f8b746701eae2217697d5fd2eccf5ba78c59c76f75e33b2f93d84019fced311cbf153e843c9c1aa257bfd67fedc5682f912f64aa53bf95807f1024225542c661370457003b748529ad4a7f352535cb81632bfe4deb1781c94feb943294bec498a4f69ed12937bc751d135a937b2cac9f946bfa5025f4b6749ba412bb4e80c7ac07e2c66a1465e8895d40f26533dd2c0677a2bfb4f140eae18f95b789bc5dbf8634e2077a4c6ffa02f4d1757951b04ffb85bc405414317565efbf0a17aee32315688084ad72a6efeeaf2c793821359604aba2225ce7b5f9074d4842b0971cb6385be332f74d6f403ba14c0cdc"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_8(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8cef16d1b9840107449d2c00d44dc14012d0dea61e7c8cb04ef5ff8d0c9be9cd"),
		nonce:           decodeHexString(c, "f65e96812c6b43723777fdb77434232c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "de1aa00b946a9490c9313df6d3921d2ce4b86d5130742a8c0bf5763e81a562972d9c213f3b91c2b02ac06fb706817e642d6766d644d907dfd0fe09c8bbe760fbd8decca95208904dc6bff68b757d1fa1ff850eaf1447a7592ddb5e81f295f5f944e18dc620aeb96eddfb7938f8a3531d74a78df3e8db6cbd6fdc4365fdde3f2b9839e020098467f7be7a22e78f322265a3e01b80b97d2829aa2a17c56ce45006fff89677bc7c9c6520eb7568e1a96e3473d7d60ec2657a640df820ba63a9319c8c09da22a01000ebfb7cc1aa106704b2178e9423036378e125b2af7238ae06a0907e0c2ccc7f0c053e3ee72c79b2e6ddf470de452a2f4297e7a7f3582ee818d3"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_9(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0b8b66c4a6fee647cac32bad5a11d98a86239059082cbf4369f8266288f1c169"),
		nonce:           decodeHexString(c, "73eca8a8a3bc1847bc198dcffd17425d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c39a83bcc27acb6a436d7ed496dbb7ea17bd7d2daa3f4f7d5228ecf6f17fedb4d1c425128606b9188bbdeb80a10b9e4df8453bbe1d9c193b6785dcbde3a552bf0affc92f57427d8995c5d03b6f71feb2357634e93e85cc9907bd5528258d54db8fbfa8ecd5af5a3a675916977d6bef69bd2b25f9ef320684c3c0fa49754933e84fe496f61f9efe0770e3e3d893ae081ce347bb7bd3540402864c31305fed1ca8db00dc2a2ff820fd131a7cdbbce1aca08f9ca08edafea299b3abea97ab4f46a76ad3feb34a8ce72de0f0ef64ed7fa255ec92b12bec61621ca6492b63e76a975b72e59d2c8a070a15e7641d0a0db40772ee005a7987798dc59d34c7615b38c3ce"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_10(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8faf72bd73374b5bf519417ced57dee0bb01c571d1548f7e2bc46195e21d768c"),
		nonce:           decodeHexString(c, "59ab29dbed76070b9258fc4222b181c4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e946b4bee41de29082548275ab4209246c2d07508da801725f9daea8fbf9b3384c535be59c6e92a3c582f95a33cc9558255243169d0498c6ec2131e2c2be93ff9d8e0a9591d76bcecdda03b40aff3d5a001f4a61147294c4192e4a7cc90f1f57d1797271857f5c5820ca89d71c485c7b78ba1c9335d35f2c0eb74ad94085344df073b6bb4a950937bbdb85a33d3339d0b014117974c0e546ac0d36a13789edb31fbbad1eb0f36cce6203faa5e5f2aa8e15cc32fc473e4dabddcab3b856533eb45bcc7e3ad2ab4cbbc08f15ebce24f4f4ee0b7e096b6a27b59165584ec362578c319aa66e8a824956f5f9401c0c026d8412649be75c48d5a9d9d7af47a6f3f293"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_11(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "651779d201cbca886d6162cf5a4454fda9dd98918fc7c42aeece0847fb51c608"),
		nonce:           decodeHexString(c, "1dc96c75c0a1730062d1eb4f6bd19f06"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ad9ae444f5fb779d3336322f2af2956b851498e71877c506f8124c772dfa27f86a9fdab8b5e88b39c204bebe6d706bccf205a8524a7304f2a982341b26240719cbefca0adf09a118d447c173622189fe710dd272d9b10cb89c4e3b04f8729f664ef657beb1f6c3b35c580caa1ab96d3cfdc774633f29009cb2880f7370dbfc23c56729a4da86615e70bf378fa140512c056ceb417e5d8f0dfd498fb6b2eca31eae755bf0b67d30e132ebc22fc9e499aef98ce64dfe18580112d7fb16fd21b74f579d082c8f11bc10c3ba4471266eca17620398b81341cb8f6e9362afd012d94a8fe5a40838f5177d6990dfc236dec5aa6fe3fc9504d3e35ea9cfe62a5e296db6"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_12(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3927db9cd0fe4551cc89c5f4503e7d3238ce1cd674b9614f5ca5166eae69521c"),
		nonce:           decodeHexString(c, "d5e7c45dc3108368a22c1d449e89b084"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "953d87a53e3291608727b17a9a4408615a12958133ed6ccf0dc35b4c27f7c64441e795c08b2e379851a95bab9d83338dcff384011ba6de3a61b62eae465d589b705482d5fe8697bc68bd061f49ae07749e2b259f6d96d40c763181c6c6bf71d89ac22f59fbedc82e63925a2068e9a1ce3243899a980c8650ebda07cd681fc99d0e46919fa379eb84443427208a5f173ead9cb75be4e2a89a16f25c632ef4ae3f1c7819ff0d6b3cd204fc98ae489a31625194e30a4edb5a57aea04187823fdbbfcfa9d5d4cb0ccec5a10985bf2cba6fd245b5cbbf4c8fde250d02b3a7ccb7ea2bd043ebe654eaab650c97c8394f07088037c9ac12d666b7686b2f470eaa690216"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_13(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c7710ca435d5fe4b980e2aeb847b8073368a1e41ae2fe51dc5c76a12aebf22e4"),
		nonce:           decodeHexString(c, "10db159ade08e39ec81ee8ecb87c3332"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7129640f6dc744cae4ab716689bafbc55d198c8e49e53b22eafe7eef106e29dcf9500192f6dfb9a709a448ba391d46d127028ab01a7bbc614f93621c10277ad86aa2e1d9c77b34849c3a082b9a28aaf27f13894f7472cffacfc33b5e0f9f60e58b191ea710bff020533a60fbd110808af1422afad9d35fe75cdee60368920cd27a2667e94d334a56ce0ad9cd726a9e7af237b5fdda0c457d42f5400ae94d0199cd84bbe54cfa709661b5714c2f7f19393bf0ef66c17fb29ed2f4c2bafd1bf1a13121c0d43747d9f549939e286f7c67ab8f9c13f140dab49bcd402fd107327340246365341c4672a5534863676ea058d8206c25645424b688d8fa9ed6f8092c8a"),
	})
}

func (s *drbgSuite) TestHash68_SHA512_14(c *C) {
	s.testHash68_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "337373a24fe76f025575b3dbd7eeedd03d3459d6ef44cd53335a9c4963cc45de"),
		nonce:           decodeHexString(c, "ebbea7e8e1a3a45c58044b65ab7688b9"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "21ae4510a133fa0906c873eb73e00d777b68a45a1de8759b1497f5146f0c45cf612b02e972ec93ebccbb85c9adaf0f5942fcfbb3b808482f05497f2f4734dd6d42c8413e1bd1bad10463dd4b4cf29f1662c15efc6d24955b1e54a60508d9ed008c9d29f8a6bddfe564c21473271350137452f4601179af37e19d553ec738539cfd7a8df17f07e1f9db5df776256e3c00199997307de394a8ba41be2829defbd8105fcb3cda215219fecb607eb1e7137a29eef188ca7eb349d2d1fe27edc2526ccc6d8f1af7eec9c06910f3909907f966d5904b32577f2715cc32ac08f1b5e25a734716ffddf60c57d422b515ce817b605ead2f875db7a789e351b660704f0cbc"),
	})
}

func (s *drbgSuite) testHash70_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash70_SHA512_0(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "817aeb8122d0917c53e8418ac6eee6c99dc3b481c9fc7626bed01285aa54ef5e"),
		nonce:           decodeHexString(c, "90e1381793a3b028c0c5e449e21bf95e"),
		personalization: decodeHexString(c, "a955157f807bcb16ba6f213ecff5079081b361877db855d6e3063482307f7ed2"),
		expected:        decodeHexString(c, "a5eee0d85f5b5e3dbe452549e2dee5c74f56488d4c64562407818c70ddba651a4600bb83d3ff8df38f7e862e86a6d7461f1e5e422042b9b88ff954710d6848df69b568ea50f24fb3f8d4cc1e31aa8e6662b8a0a147557122aa771bde792c4e40d9f850252ef9fe36d273298d1936a64377a24ccfc9f4dc26967fd7f91479193ccfac2a5486fbada7db2beafd8fd516d800bdb2d88e18770064757fe1e14a65ffc9577d5fb262c8d2e394a27d9686e1d353f12da21e65a41a4076275d5a9beaf875f516e6f27aad0e85cc3315371efb33fc3f10cfc97861700bcf3f8b2b561463e443994f7ee1b2a29aec92a0e0def2fa397e6b6f04634d18d93570abc2dd0a5a"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_1(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "361bc3f1939172d5a0e3f20eec7d26fb8966ce4bde21cb07fd2eb00b0b9a6169"),
		nonce:           decodeHexString(c, "e331cb224e5afd8e7af80bdcf66d24fd"),
		personalization: decodeHexString(c, "b045395a04c8c66daa3a64dd7427e3ac7551df67083bca9c6e8ccec5de93d746"),
		expected:        decodeHexString(c, "5a75fe2e7277b2b82273321f9a94b6c5e0ec72a216f7dedb67dd78a1a4428dd083f48c4929ce7861641191b00f91a1a56a2c280b3da234173377401b1650d3b92b6799c5e73236c7630b30421a694448aadfb7a2541c514e061f60e11814e81f982486e26b14b5280a620434802c8c0e725f18316c8416d9a77e682111a1c6c0d3ed8341b13fc3f35e22e4e8686cc870f61af68d650acaee8a4d5e85293cfc2385dcc70667c753deef62c17ff1a69931b5f8431bdd3ac22e04746b380dc78bf3642dfb9cc6e67b82c3bbc9160e77cb0556515451b4ad1a212c93724f4eee95429f60918e4ed8710b94ab63f2c4b106aa2fba439ed484e7ae8b36cd8c3b0bcac3"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_2(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c22d5e0d0b90201476f12ad0a5c4a6f825354f20bdaa5a0b0fd66cb21ebbcece"),
		nonce:           decodeHexString(c, "9bce3473f1b59d0f2d9c330e897d043b"),
		personalization: decodeHexString(c, "7e750fc176910b54649685c2fb32ac230477d841798976439a4818632ae27723"),
		expected:        decodeHexString(c, "016c4a3de0558ab9ecec3e5c5ffa2c006d2ff2ab05304a7c7ad2acacae941d005e78bebfff592cc21e3cf6b190085835530950bd2b66225bbfb926f696223b8e8e0c78f317b927786fb5902965f6ec1753e56356c5c08966a670a34233f7481a4c15fa68fa79d4d6869287e0c1d3f53682d78c4c077a440694bd9d4c328d37ce794cb207222b1a70cb8c1a56c72b362ca91f78e91feced6b899fb56031e11095eed8c13817df532a06b5177566e1776b77503099473e21a3672dc6a29b959379c6ead06e0394790d72fac35954d81b9c5ea16a04125aceb1daf85f3a21e0b6eed54fbe641c700934575b0be11c7257a7a80d66ff50ad6d610e5a39d37ace782e"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_3(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "66665a56b7c7fc57851475903a28eba6294c8cfeb267164d53895f167e0868cf"),
		nonce:           decodeHexString(c, "bea9c55fa782318c31209649338066f0"),
		personalization: decodeHexString(c, "cb105533e41126fb2a824c036b3cfb66dc114be8b409ee511c9ffed0b45da084"),
		expected:        decodeHexString(c, "6df8890f9ffe35015b3b4351a0520c266499fd08bdefd474a2fd77bc8483382ac46b49d3cc7cc88aaf728756651b0d4d8ca7eebd2f1d9c9c2159f62781882042c9258c59e7e50bffb58bdcd1b7b3f218efabbcb9f2f76c19fecc2fb3487c8f675a0e3b297c3ebd007c478baa815443cbdcd67ee1fd6d16b746387b9193fc5530157c0bb5bc34205db53084f0af81dec6024acea4c445584e8c432231f224a6ce0d659b25a887e068eef35e69497faae09dd554b323f417a3392799618f524dcad8b75a30fbf8ad131aebb8abe383ae77fbd91b15aac7719119fa4aaf9a091735a8688b96a6d3bc683313bd749e4a3d7dac3a1b4d68bf446b74bb73584a13008a"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_4(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7154d7c79e3c5d084f35a935d75d4aed9f9bcb2e38b48502cc6aa12966fd62a0"),
		nonce:           decodeHexString(c, "4eb3709e8ddf142c64aae00a6cddef64"),
		personalization: decodeHexString(c, "b0a0eb6a778f3b8a244de21607362d441127c80146c12fbfc52f71f71cc37193"),
		expected:        decodeHexString(c, "159c424308885870464bca92fd917fbfb96c0e7c8e8d1f6f6f658272d6749bcb315bc7c15e20f601f9ae4110b153bf011b28de19aaddd3186b6aa2b9c0975486dc534ab06e19276cf92fa3ac8919fe4344b0e02967b2ec6130965daf4700f9eada02733df2c4e0ead926f3f69c6c8019b1eec72674a617195a8fefc769cf96e7576134cb26d8023a5b6ab96d58da2313699a75e2e1fb17386e5cb1b38fe435c2768cdd799fbbcce67d0dabfbe42ea12d50dba80f20c1de1ea8abbe66d9d3bbfddbed6db7dff72e2c596f8f70a5d0206fd041ed5a20161bd8c7550a0929b5e35cdf22871c25ee0b92e284f4598f92e348ea35ac9e4a9a93d67619cb1628c149b7"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_5(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "633a7564cbc72526d5e71718216d07768be27580711fb84ef32e6d7b06f47549"),
		nonce:           decodeHexString(c, "ab841d51f3ab6a5242027e823c5c7038"),
		personalization: decodeHexString(c, "be890eb2e33801fa2ef030d719376d69fb57ed165a176b743853538037e57c74"),
		expected:        decodeHexString(c, "b8740ec92271e2730aadf58fa3f0a42a1e9b1bd131cae290c882a7cf27762e0208ad3e21963b7622b9329e68ce1fd2db7c634b51a165601630957042e3795704834cc64223215c5ddd877b9be7a6cd1a63c9c15fab52018bff5c9c9e5c1181314c0e3318b98b6caf828cdffb2af6997ce62a598e12d4e7bbb3fd5f40a2a6ad84e4d10e7d0f68cd85e231d2c21a65588b571ff272bed2fcde15566caad4a76e4c273815f7dc883d4bdc16a311156d1f948f69684bd5fce7781439c28cce3e6fb40f9c9681a484f0d5a072b486b85b3a0ed5670b0d83dbfa4350a3e9422e2527789bf6f1df2c4cfaed345fee21b6e003c61097946506fe7e8318a9b12be6aba2d1"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_6(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2ad728895a8e9a65a17f4c6bc49205353188f771ae113028a60292a7937bf7a9"),
		nonce:           decodeHexString(c, "b67ac3e318d1ededd77c50c9543b23fa"),
		personalization: decodeHexString(c, "96a4faf4462a176345e48ddbde783052a733c1fa15cc42f9cf6b84a3cb8f3c92"),
		expected:        decodeHexString(c, "6680b2e8b1e88ab0e00eb80c3dda0b14d7f02ba8e4daebc698642623ae4699cf5a4b9e428b165ef90026d33a71d1cd513a5252d600b0dea3f436e2263663fcdcbf36e685cea6b9f684530780ed3657f9af4e3e1ffc81c1ce76dc731e9b3c1e5a88a36c9e95c3efb2a204637b3d2ed94a3bdaf9155230f6287227bcb743fb360c33d059b39f978fe94216a54e39d5e0f0490a42107390271bb6d10015278bc6b50e79b95b76bbf27a2f37b2afd5da61fceec5b484ea74d6cddb34ba5c2736ca9b7ad0d334e3ba596611d224a7c51ab4777cacd4a9bbb66c46b6988ae03c1fbe8f60c8fa23ac1689a85a19307c98d149f65b856f2d760453bf7a1c8041b948affb"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_7(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ae6ef33071077fb24135ebf9120f795ef6aaa3c8505b8d3984b22880e385f49a"),
		nonce:           decodeHexString(c, "715658156bc021a4bcd193e5a2ac71a5"),
		personalization: decodeHexString(c, "8ab53e1458fb557964f0f2402da861e632393c1affc3ed324d4b6dd8e65c584d"),
		expected:        decodeHexString(c, "fc8781ba00efe3bf57d7beb9c1f25a604bdf45c15361ea7f742dd976781a9cd422a7346e5c9bcec222f53eaa53230c63c10a5ce2daf5a7069d1fd2b9dccb4c57387f6f38c705a3bfd3f117f9ee97079f44cf5f01d64065f5fdd9c4a3a524d3fbad99b67ba5f8f99cf91f93a662d67267f3c63ad9f0831b9a74eb7dcf50b0ab8c1a29c4573eb38ab556ed76f5304dc96373b9785bce9b30d81135dbcd9bcb5ec67fd72806334602124a2cff24921e2cf3a499922ede97a15eb066eefd2c447f5dbed7f193567ad4c8e109d236d01909291e118c938aa853e0292dec054bd40194ae603857355807c2e73372f38a2d6f7175850a807e798daf164c9a668316a6ba"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_8(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "84418e25f9d919c1e4b2e599346c4c0e6d56baf450d297863457a6659f40f8c7"),
		nonce:           decodeHexString(c, "3101341550b803c626559bc5ad77b629"),
		personalization: decodeHexString(c, "0f876d2e02da0970dcf0673795862666a4915c0190cd7dcd5e30182aa3640872"),
		expected:        decodeHexString(c, "8aad39bbcb00432b9beb63a88d2ac3046286980a079ba0141fc875a837c120734c50f15e7e7248c14e13c5c8daa2dbd9a03de205ea0c00492a48cebe8a995c60d051f396447c3ee4c74f5a67fad6eca4d34896be95bb28149c293939b9b86e734e12ae18f22acdae026a9686aa4e7ad373c93cb5f9fa9950cf0a70a870fa49f79885554d015e603bdfd87a0a5f6a9cbe3c719d692d10f8c8d2dd10d23fd94866ce2b2016acc22b08e16d4ff0af5727a1d4fa29dc0bfa53d506de7def8f140c5c8a0922415207f4d21ffd2c13da38e21c7071beb5fe340492c545ec6e6d942403cf32d32b3b17f5c966453a9df28597ff3a8594a37a17929d2c759879aa905fbc"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_9(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "298dc1e39e49d3b43da34126df0542194516c00e4be461cf43d946e057c70df1"),
		nonce:           decodeHexString(c, "9118a385d2a8d788be53ad4621c42554"),
		personalization: decodeHexString(c, "147cd977a6e77928fbfdc29a6ad3ca1baab50c84efd592498465346d5673ee62"),
		expected:        decodeHexString(c, "3a1d7fb2f86ff8921aea91310c61a1613d441402cfb71e3b78da7f811cf249f280742972fadd78f37719e37be78ebdebff95e2568951a4b8eda6819673c4872996f1fa9fcbb8bd99ad31cadd795b7e8100179666be0975116630ff55bed336fcee8aba1f2eb8b559f2a96734bdee9474e66ef1f655e4e08b736903e9256b104251bfcf3de7d9c3399b3db824f4452baa487dcbd8d05e80a5501682c1f2936fccd6c500f1d646b470260bb59acc37df03040999f3be8aa705f480a65efbf4282c786df4571cba381389b5c1732367b4c8292f009653cf2039dcd6e0c1de4286f70f821477cef404b8d9a14f65585b8cc177191577c5243434b02e37c753cd6971"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_10(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4b72ce006313008e8174f1681fe10322bf185f31a8db8736bdef94e035e43050"),
		nonce:           decodeHexString(c, "5967fa9c75a93c0e079ffc562e5fbb6d"),
		personalization: decodeHexString(c, "f3cdaa0a7ee5bbb944fadfeb32f151f76fb666b87879146af06110a2463b9b79"),
		expected:        decodeHexString(c, "4a763a13ea5f1f61fbaeacd3cd0f7df564d88aaae84cac8b342eaf739f0f1ec49c382ee27b5ce07bfd0794f95c015d796852b8f2645bcc25d70a1f4fb8c1f2e042ec97c120d26a89c71b6d2123076afb82978f59c57d333e5a5710581d8695ecbb8734c902b3a0050cdeff4f59316fa3201a23c56d38d4339c635372353105000062259a9700217fa70165de95794bf8d3081f4c7b47948000a77cc787f39502c2ff2cfabba0b6ef7f52f6e6eda41d7646578bb93e5753c1541b6eeda7460acc1c5be3fe959ce709aee31e025bb5fb7517ddab28be4a725af6c94a3bf06f2039a8e3beeb224e5aa50d068a9dbcdf0cd461c65da1fedb1949832f3fa1bfbb6efe"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_11(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2b525261b3c1978ddfa0bcc4ce9e825778f6ab04563c3a013c1e38e69aba21fe"),
		nonce:           decodeHexString(c, "f294648a4acbec0ad48e2efd66c55a58"),
		personalization: decodeHexString(c, "fea7926f3aa3338ee68a9e6db66ece6657bb35a274d79a65fe51e2be3b87b37e"),
		expected:        decodeHexString(c, "60a2de6d286227c08602d2d0bc76b4d6b12a5d5acda5862cbff2443b63ad9bc1320d0864b2d3b63933ff323f8ea9f815a28728c7effa585a8f3a33739941f1ead91b1f045c2ef200140c317e8e6c6df67d951b607ebea239d5c7c2a9d436aec9b571d6bff5132a78e4c915a25448c1aa12335e80f9c1a34eddc696b408996c6f436e7f641d2ff391cfc85d395ed3f183c506c0bab8083e6ed8e704e1cd8eae8a990930dce1e5d728d98cdd034884390e521f42c164b784ea031132f5153e3ebf04b82823441688bfb05cbf8370fe25265abe08d088a9235c7657a53de6dc5142c0cd422deabcc6eb79377c733142e686cfe7be4337ef75067c8d191d0f950e57"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_12(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5580b093f694f090bf77306ec904c026b66579f3c51102d3b19babc68e157ece"),
		nonce:           decodeHexString(c, "ab7257bd6e808ef2474a487b628ce94a"),
		personalization: decodeHexString(c, "a79c6b1e57b7512b5c178003eefa6d03f3916dbefd9a39a2e1c5a564d0bf18d5"),
		expected:        decodeHexString(c, "8d7a771fc0a8ea899f1ef41f03feb7ebe947f30165467f9a5ed8e5ac803f7f51cd05d9168ee95d516585cd6d6b943a2093fef4f7a863bd25efbaf6dc33d2a484157452b68cca3a4f50221864905243bfd0f027801167a05244bc61cf263bae21283acd89954800f433c38f3a90e768d1425260eac41f0128807f750fb3fad302b4d1a052c542f28ca04440aa05311b48f4796e09917e3907a984ffb0dfe58ba1a9227999f6fab97280b44e3e951cd32ad49760e83dbf46d28ab7770980feb177c8ccabc8cd1646aa1893000ef3d3cd5d8b7a3080d9b9aeb19378f5a905497794842d103c48957434238d8da01fa89d4bcde7fa3af48b8db062243049d58fbc65"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_13(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ab21771485af32348fae88e1cf038cd60e2c875a8ef7857f5fc1bb5a432673a8"),
		nonce:           decodeHexString(c, "ba5432bb86fb476f8b70533f304c94b6"),
		personalization: decodeHexString(c, "c0bf62619671a60389e72da333e230a2af34d5594bc844d3b470fe3e747ce9c5"),
		expected:        decodeHexString(c, "a326ae9b147b2094fe07651f32021c5668f234e062a5b90a96a225b2ab0e0fb92645db0ddf087c920d829c06449e2cc497d7570408d80614e7d60bc44aef6f3bf89b850db6e796b72ba4d8586493028b064cb80094911e4151a57634468f1e7055957d40b9520a0d27fd7f99bf679f31e7c94f0d25de533862071b48f84b63879801d6f6ce2e2fdff1ccfdc17a8e0d97d38568999230f716b8b66d00a6adeecf1c72518dd66ef054df6e57d28d1cac28b8bb3544342a1397f89107b25f0668d2f733a288d52bf877e5ec0c807b9cab3f924f48d90e399e7d35ede45db2210a06f38c26f81505c5284ae38757aec9db48868bf9daa7cf784a7b09767464a6dc1a"),
	})
}

func (s *drbgSuite) TestHash70_SHA512_14(c *C) {
	s.testHash70_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "155c57577074e6bbbc350223b66f64bd6fd4781d3feef2e6811339664f59b9ee"),
		nonce:           decodeHexString(c, "78e7f6e9e8e1511bc0ba7f230b65fe47"),
		personalization: decodeHexString(c, "37544eb1992fc569ff259946d639a00230ec1196c5565b8f9da62d9ce552e09a"),
		expected:        decodeHexString(c, "0ddbb84e21d4d7110b933bbeaddb35ad81dc1f331ac8293695b30924f2713eca6f93a13d520da4486f32a12412a927d00e3f27009a944056a5805b0e050f5bf6c6bd32c523c1d607d6e3e97b59fd059a610d664396f69961599ce7f0a0cbd1dcff15474ac267e36c0b871c559fd13b7ff0c3fcc11ff8dac26761a42697c3744981cc5c5ac10cd0f3b285c4ceb4a550ecead095f90fb6f53aa302218ede7ed5ae5deac91a83f957d15ee901746d11777b23c327ee811966690f5f253c7c314a2bf2bea73ca46c6c8cc332c3493f9d023029d762fc90e5dddbb838f2225c521f196332812570a17455b3db45306aa9100ca83185395435137a0b961531cbcafc03"),
	})
}

func (s *drbgSuite) testHash72_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash72_SHA512_0(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0f025f0a0226f2157269122d07a77a57ad00e0880c1b300ce0ccaeec1050ee45"),
		nonce:           decodeHexString(c, "4ef3654c08e3ce4510e771ea7d031afb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "46c8a4a0802b7636e92c51376d3b8c028804d6e296cbdc01841f3c3f753c12b52fac5a079e58171c1b5764b4f7036c2c13ad66c2feb8e66e9a3526bb838a7ece35701e075265333f7391c01132633088d686d3fe6e8d432d26d0bacef5bd8c66c9543c9b3633c5413343458129f6074ec937de6a27b7f3ec9b17ffaef9549f071888304cd0d8d103b922ab835acae44a4f9fff00465344f214e21bdeeca836858c9c38f651d24ebc60c2aaed83046ab1660f0ebbeafd955b681cedc3b77c89954d8f3f6950f614a6db70a4fc3a06c262cc18d47481dc1a0cf3178be2a2173eb565f9a054cc14f27fa436ff4f0fbc94a0dc013f0a358f55a0bfe4cc223ea4db47"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_1(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c5c141e969c34cbe958f7f7d9265dfa8fa7f1d4c861b059b317a078077bb8687"),
		nonce:           decodeHexString(c, "fffe17bc7a56ee1a19a19a0b12d7e5d7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1655f23d48cdbb733e14cc69c1da950fd14406d92ce41bf6056f83cd5503e5dff368c58991365223e202e0523696c67bb985d94d161ca124e7fe27230b36fa580c9177cef6b0725ede59068264e68b9826c32b2c8c7e442a55b78b4ee9809de0e391ed7fa60af03c96fd6868d307e6c61d90ccf6a6814c02f8641fef75008b727d73fcea92c9fece1f553d8936f51b8dc6d6736e6907b74ace32fca7963fc11541fe978173629b4aea86bb84624b5d4ded151fd64856226ffc4d37dd254263d7a8fb4689273066a153686852fc0b0d1f6781d1ba209d5238e0109b899c0efc75668f94c71dc9e68771ab11d3e352625680a3f5c8aaf7a144854c7623d6fd7275"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_2(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fea87fefe9eaac7ebe0d77cde87fd40e84354c06188d5e077058c685bc7a23e1"),
		nonce:           decodeHexString(c, "e4ee2c0d6078eb436a063662130eac45"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5c80cea857b936bfbb882e3a58e7df17b65a49c6bfcb1f183ce96b74eb53319be82afb8371beb9458167186228f1b5cfff856b1d5648693a0b99f5d7cff61866be763154d489d60e0c7dcbbb4343e7c36130cff9f787ccc7c813556e6c5ad7fd42ed2bdcde950af5c6a4e7d1d9d1918cfd28f0863c8163a044485e29bfa40078844a321d46b4ebbab2cfa7447a6d9bdc819bff3d8aaeb99e9adc55fae6e3fc89660926f1e37084dd94107ae7bd6a256851fc2a351ef2aaec1a4a709ff48f52715b74efe37149cf98055ea2dfc0a3185fb7ba0d24adfdc00dd13106edd78590b80ea47e865d17926c228cba1c5fa3a188b7dd892c8947ca335cc56d42d564cecb"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_3(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9bd21ef53f195507c8efac8bb42c22c808159bb2d504c0eb38b6664fad9c7f4e"),
		nonce:           decodeHexString(c, "39baf025d0a74e580bb28f3853fe0c8f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "13198fadcdd9487dcfadbcbd1c53d9b5313170d1d2a4596f1c1b945ac7381a71c7aef8573ba5d2d5d282b3e1b9e3f272d704e17655665e34d14df14388604e6f30d92faf9ca51ce2422f028004e720b62c4f700052a387ca96a16b053236940d6a1842dde5df8fe68595d1038b82ec00743c4f31539514dacf58a8ed2aea0e0414b7875aa6fe591cf76e14653385c674872300441cb30a27bed8b036a0ce9139ecf995cd66dda412f4f8053e48d475651872f9ae89b161cbc99fa3dbf6cbaa2708b02afa2cd69737562fe86458d78821df77e6f82741f9dc56d7c0c806578f2459048b890278382763292eb5b07aba1eea365afb704d762057154a551f0736dc"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_4(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a2903152c9c4308b8c1a52b3d19594872ae56ecdef67c6aea5a54897c3862e5c"),
		nonce:           decodeHexString(c, "ca79f1cd283a142c7d69f845ec4686fc"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a5f63d837a35bce8285e26f239a636bdcd220a9558f6ab809328df034c28cee1904cc1aba40418027ed2e579f84077eccd3bfa5ddc303b9f29dcf2afb138b17768d3b0356c23496de614108f54d6a8dd38d060f69800cd5ec5746f7249316f84a5c8324a33035e3d585871bd2908dcd5f34288a8fedc8ba6b5fe89386de39e8d186a71203b7e5b3b2a7a95348630e61473d01cb38a36a57ff7b1d7518ec9cb37edcbef4d81f4b2a75ca75ef79abfe1377fe678c53a151cde9edbad14230f5e0b17be4b253c473c9f69170982ca8489d1439732f0a912c24ed0445f9ee9da76820ac7c95855c6c4ebd668d684768bb9e411a2cd6658afc50ab5ced87799ed3727"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_5(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "81df6214fcd7c04e1a5df60114bdacd850fd9f08ab6da2663c49c18c3f3c2b19"),
		nonce:           decodeHexString(c, "e64c4fbc5a8dccc87f7a16ca23fa24f5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dffcb91c73ffe1ee0864224faa30ed8698a3e98783366dd7292c9208abf7ae0d0ac5253fb1e604cc5d6ddb80f3e2020f594025168d968be6c623a46d7a2830d8f7a12b505180a4556ae7c0119d87e3b71d75458afabf0d5aadbfa48f6dbcad3ff27904fd4c258ac0c0640d283d3b73361d1dcf69783384dc1a771fb586a7a8cc5a879d36bc4bbff7380494c0f8269cb8f02217463255d19181353e13bc971d1ec53a19f3be339cb17498ad24289cfba76daf1fc48f2d10aecc110352b940e947e445a332ff3f2aa10661b708987e7fe6037a864e4b30c03cd2c3d8a1265de30b823d9da470f900e0ae67ed4c4172e0c6f2de34345f43976c521fc84974d8c616"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_6(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "34d6a4b0707359ad99f66be8fe5c6ef3667ae02c4dc8424ba032c477528d34de"),
		nonce:           decodeHexString(c, "e0ad85fd0473022ba066300963c0d6e8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4c356339929f1ff03ab48f19d926e8bb58fb594cb0c8e7f309c21fef97b36f3c435167ceef664eaedaec74bd3665e007ce9d9a13e1196f8c28b67d98f447937ca776b66b9adac014ca159d55a99e0607195ee97c140775e7e0321737072142f9caba600725c6b4eddf7013e71ffd5371972be82638a3041ff3bad3c75c7db30cf4b6383dcb5f8287d31864d8964f23e5011d75f6af46f83735209fe564f7ff16853855ed773f0584b658ef94b8ecd61c7da95ca8f2f755401048f795b6fb13e2baada159a07457739b0810938e306c88c28833492435b09c3707e21a07909d7fd05dbb903013f1a85300aa6ddfce2ddb99e2222ab64fb86b466b6ea55b3302fa"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_7(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6c8a323e45d62c399e4bb39d7ec415da5462320550352b58d750a08eacd0e0c7"),
		nonce:           decodeHexString(c, "a3777d95021e0ec49284264d8aec2841"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d7c0d66f844dbf8279033d55e909f1d31c9f6e6fd58347c7145d8e5930db54bdfb42c89177165d54f079d4fe16ea5f5111fcecded389c450a8fad22cda5afde70d24935dcdc76fbdf161bf24f8cdf6f2408d0790972d1df2173c641fa534a345b6f234abc0aa1281e2531442c3941cca77466721bf6178262cf0a97bdecfc61fcd14a8de7efb9ecc14718aaf345d809c8bd39b0746b6b63a556d27d0a56d8fd0d8edb36288ef92bf89709a36d1fbf0228066b67b5a9991edfd75d47fd6135dfbeddb2ca36dfe27a5ca31bfd24e3e4828c876c8721d81bd2ef2291061e3c9419b3121d557ce3a34c429ebd070279264f853ad256d09723613d1b21d26615c5dc8"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_8(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "bd16765357555b8bcad0bcb3e7510f064a0682c2763b35235e453c3e03f1cd90"),
		nonce:           decodeHexString(c, "f8444e16c867bd6d0c99689b5fd33c6d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e19f0a6cfffe8f1dab321e63650288aafcc689d730065d2aeafa2db661d66a319d9ef454d87b7e3d9df89537cf20d735d6cf9812b0db8db219a1abc1c8a40ac60e38e3e0a2de494dd962d74d612c003ce333e63a40c429201c373c75e7abc505cadaf13274e3e9b1cd3f0bfa5b3167598b24733ea6199ebead46bc6f0e1ed2bc3e246482ea141ab2cebf4c4ff1faa5c30da19a60c3c9b11e2b0f6259e793120c2166d5826e2819ac8d5f31b5a2574263201e21f5c82fec2b6f396212721c0d9ebdcd75b0b1f2a85bf9d9098a1db35fec6b46ace45a7674c272fcb7d33da9d857eae0ba8c5aef8232c3b877847eb8da6ed363e93cbc20f906aaed7d3b402651ad"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_9(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "63245db20f9ed7e9971d11411d8bec7dd8c619c186aa773bd1c212688f63f1a4"),
		nonce:           decodeHexString(c, "8eb298afd828a37621dfcebc3953207e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b39dbd68fc00d55e6ea223f3859f657f4bdcf7485172620e9ed64945228cfe4d2045b141372921c6ff60db2c368a953cf28225ff9e9a2adaabbdd08bdf8e1fa3f66586b46568062eb1c4ca38e16ea89ed4357ec2d62396ac71537ec19095046769d84d15e5f8551ae94769e023f5053e5fb47672b8ca87192327dd21b7610d90cb534e3eed32d6517102a6c97e70a63a3342ad6728db1d6aecff81982f9a3eebb905b1cc47d597b393934ee2ae4f78ad081321fc702477a0e0d003b2eb46ed8f1d5fb934139267b0dba609c45334275c88f7c3d38cd601a42f3c7e79ab7a65614214b1980b53ff54ebf845430d80ead61cb31836de61984d0213d6a4f7e58d02"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_10(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4b28b3e591bf4de102f6059750fbc3b257013a5ee9acac70150e3e69f8c3e8a7"),
		nonce:           decodeHexString(c, "d48010157a266089207cdbb9f33417dd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8db6436c2222efc43f8e654376a997b545518ebed313d56e41ae2c2106479d67c92312ac1932a2fd34e35f21f3334b3af34b82234f7a7f8edaa4b21c2d91ca62d01333e55bab9a6c57fef029be043a1700851c4d41e35d667e4ff828086fc0db7ba7be7119c563189078c5d44e779a6439b1e03eb99da3ceef0b251b7c0d9b7656c4f31298a8927c36bf86d2692cd3da393fd6c05461c392f32a20f904fa667007770cbe34c2308883819006f8cb4d94e802a7d48d7c4921c33b713b049019b412df375e9c1fc73b52fd2f4142f41bb6f4d081f11c51221588a44640d0991bc0f2d8f0c1934080d0c3b22815f2a8346567aad97c2e90448f496e25178bbdb095"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_11(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "46bfee256f59babf082172c127bad6c765abdfe7697bb0c5f2fccfacae6683ad"),
		nonce:           decodeHexString(c, "58a5ae0bce251f0bf90a8842dd492c76"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6d0fe78c5b2520222cfd07b407f6a009316735d845a2091a2dbab1881085f45a45111ddcc9c5533b26dc40fb357d5937866f834df38890a00f986d6f4438114fc1a922f0f5a4555596257a76a14aeba3b04350cf96f511f9d95d3fad0340e87c9aa1497a54e76a831de3569b8c75a343e81846549d4cf9b22060d3634c23563a11acb1002a926d236a8b2b0987711a1dccf5c9db17992379937e162d60586749a1fa30ba55e98990dd2de252a7b5fdb69fec6f0f275f409e11fa36a39eee404e19f60cc2308834d83e031e0936833f001d4e0ee8afd6a95b575675a63209054780ebdf0e6a9975a417c256577538a960cc9a65ebd4fd05550c28ddb82283cdbb"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_12(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e6d74ed56c614d4f7ad84a483712f2950d1707f22fbd17ba007574efda1bb907"),
		nonce:           decodeHexString(c, "597476f8c2399506ffc8a4c4a8cd6c35"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bdcd77917724d8343827fac4df8f6bab525d32ff935fb8d907cde66a1d75469c9095b8227b1ca1e32242e5330184ee4dc3a26d654e4282cbc3f60a6a9a0926467deddcece4b4bcac8c3cd4ffe21c1a9613dc985b09bb36e14defeec022b5c067ef37fc94fb4179b598eb5e96ac302e17832a6539c1d5fba1a229bc88ef02758cb7f644654f3860f70965af024037320a1c4839fc267c54b10c1a4aa91d0c04fc6122ed28f6ee4d20eba4af2512c898ef9ab35e09f754d1fb9baf9256961b1814abca124e439b44245d3558a3ca6bbdb7a01df7875a9553428006feb85a7194029d578315f1b2764e6586e5800cbf214a9eb1237c183882671dc1d545945d68eb"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_13(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "62ed680cb940790fa4e83c5bbe1143b8b8fbc1e5f1325adb1c58071ebc5d5061"),
		nonce:           decodeHexString(c, "963694cc9244a17afe30497a06e3432a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8396f1eaabd07b55c64ae1b70ac585fdeac582956894192d08291e97441eb1e7508b00caa5e75a4d29118e3d9d45313335fcdefac07953402b28c887a0250ab47a85e07368a1468347d4d678e2ec7eebcfdad9133d86d76e7253e85bc9fd873eb3f09a8e77df0f0de753d05eb0b51c36cfdc9c2c42737655719820570884f77d6d35ba232538870333ae3c3f3bb9a9f072e6532081bdb9574bf539dc2a8f7475c4871f082b501ad686b66f4f5b5557479cdbe829e16138d4c4f3633078a59c05984eebc74822ff7750242ae1e27dd43f73073700af07c63d85c8213645243d82614a5f7f7ff2d478c384b3cb6d9c967fdecb0d2dbb5b9e7130b351ddeb64c647"),
	})
}

func (s *drbgSuite) TestHash72_SHA512_14(c *C) {
	s.testHash72_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5f72e390aa960846a0004d266e3741b6fe0aaac98d9d87b4cbaaa7a2af0d0bdf"),
		nonce:           decodeHexString(c, "2074991cf0c22cd34b2de48ea1f9ec66"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7bf54b69e455c7941e8e24ef59b5525dc1ed3b7f934333713b9dc305dcae2cd1b74648149e04bb4f4e00b110926a6bfead7adef954b6d7e180ff820192677efa3c0c8af6a3e201d8d555cc599cdd2626d8778ea2c7a2a8e0c99e719929ae9ac4fb9a7e5176da8987508d1152909f456a4ce9461188e264cda1c879af1a8cca6c182e73c164986cbf07f441756791fa1fae40b784800335d94b0b54135831044bf0cb5dbb5c0c71de6b6ae33d6b87782d34be3cbc2991ad109d6c0440916d91baf96c4375ecdc9f09dca79671a45309c408062cd08ee623c8de007cda3b3d110425d7e8fee13b2a14215033d9ea2397cc6b5c995f37273a00dbcdf9437bc77857"),
	})
}

func (s *drbgSuite) testHash74_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash74_SHA512_0(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1bfd7f07f367098d36af5b8bbffee873c007dc0bd48f5cf7c91f8b9e5cef2c8d"),
		nonce:           decodeHexString(c, "2d857c6bd75cb4714b7d4fe7d4d594fd"),
		personalization: decodeHexString(c, "d192f006b0f877fdb711220c5cda3c8e20ea9542901f45be9dfee0f32523141a"),
		expected:        decodeHexString(c, "291a924fb5fc8151c9e94664dbe2f2cdd67716268cbb4a8b04185b09feeaffae5f95ce43b6dced5274e09656b78c73a4cbf20728b23d926908abcd437d121a3fbe1ce98f601b5ef82f4c7ab43750b4824ebe3ef61abb424e1be5ee81b8ae2423f89d91c2066a199d411f22038b44e93ac7691f7d5890b6e8be650e8f00f2bfff54041050a949b52d018c40b92e1d41a1908604a6aedad1c412b6e23f519b3104cc8bc8485069cee56d85bc422d39f6e64828f63b4a15cc8dcc186d2109d8da3758e941d9e69b032593cbfea06b336d24e3f694db5efb1f75a131c8ede6d85904030ad550e3e711a448299df867c28d9cedc00f7a6af858941f739d0318a04240"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_1(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "add7259c467713fc7cdb2d2c75c222c087c91e6324178a5f0643c59ed353533d"),
		nonce:           decodeHexString(c, "7d6c4365b04d1e5775e6d28201b484b3"),
		personalization: decodeHexString(c, "9d03b16fb608c1dcb6b152df2eac6bc9cb06b4992fb7a6c3ff23b16175e64a96"),
		expected:        decodeHexString(c, "0e480db2cba1b1251bacec61ddfbc13edeebd9ee7aed408482c90d49041dbeac08dbaaedd44d93e5695b741a2968cadbf6547491aa9ba1b254353bb7adcb39ad8b037009400e2a7091d03e3752646cc1f1dbfbb0c32f5dbac693533eb8fcb4a0ac4a3ef022859a08497511134300d27c2ae96ae67c4ec2e0930d3f4bd8062bf03018f74e72734ff18d295db4339de172774b6f795507ed5f3c54914b1e561e9d4de15ff2109bec9ed9d6d909e79c32285e63675022bb86b7f797c9b8b4f82b127f3e078539ffcaae5d3707505351e0776696667aaecd2c175605b180deda7f6fef8e89943a6bc6d2d0edd69d64dc82d1c4bb91a7aef9e7dd6b92b5647e29503b"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_2(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b253f84edd98a84c546c19344f7fe406c106e5275cd34fc54f5c716e975258b6"),
		nonce:           decodeHexString(c, "7066dd73e116f98f1c8610cf799f8ed2"),
		personalization: decodeHexString(c, "7f0970f71af66801d6b2c0192bfa3edc3dc7fc3d1ce70060015d322637c4418d"),
		expected:        decodeHexString(c, "fc53724ca146ed88d58a5933a6a5a8a1bc05f0cda68dcfedfb43aace70066c7fb51242934313334f4c68c63aaf0a7c128e0bc72fa1a9b87b0b07dee4d3215e546f72fad5dd8ffa7310a2b944407c962e240829d7c7bc84add1a1639a439786bce6e5e2d35d8692559ccf4dda107f9c8c4ce1ba204489a4af4d3f6151176d45b365433f0523b9f07144c8f5bd62f8927e2eddeb050b1f94bc659a4b23d7bcdd4b84eeb7fb6e5614503c13540e90084b5cdafe5ddfc57d4f85b87c39a01224724287d567d30c2fcd6dd89b026e969e301027e3f1b80a81cc9fc105c6487760e7ccdd4fa4c386dc08b854445653b70452e66e7d36e44c1a3b6dbcf690f0d621c351"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_3(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "780985ea184a51700b88638f1864f8c4f0547718bf1e6fd2126ee168dcfdfa26"),
		nonce:           decodeHexString(c, "c4f5e33004b3ae055d2661a4b85db863"),
		personalization: decodeHexString(c, "b01c2f6daf9c3def73f437fbd52fc45ea0f230d9f0325598bdd15e81b34ee668"),
		expected:        decodeHexString(c, "b926314f2bf2c1dacc40e1c545b9a7d00e54884c2ed42e4bf6b2d96c17a3932b5d909059f21e3048d40379c44bbb6c6bebc264d169a59aac4165c10b735f3616df0236ef3b68dcaa5eb54155d3a58bc1831a22d55dd2fd46ece154f8e59cafc3008a4a9455a2eed024854bae4d4073147a21abfc0981213aa70ae408406d9f23e8da353fbcaed67709f4ebdb8c1cfb20dc3bc63ae70a1fd89a5f8592b1d2cfab27ae69d626fe93a9c0d3ce2a41b033ecc155afb4a96be6185ae4e5701acb1db1116dae3f41b241e60d378b34c0cdbd1ffb44550308cadc6e418da0ba3e1a356d06dad6d61e07f24e2f885b37f5d587a31f1658f7d2d8e572b9003342803a2332"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_4(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d1f50d07a46ba5b8b595efd66acabc6b70198f1b65ec4a739f2f89fc0d6743f2"),
		nonce:           decodeHexString(c, "8683889ab82b349f74656c4056f7d07b"),
		personalization: decodeHexString(c, "1788efb9a2619e0242639d39380ba1eccd7f9af6101f217204da17ad4cc0a0b5"),
		expected:        decodeHexString(c, "cc3a655585bbbaa957ef336dddcd63e45cbb56c197c6675e795c9de383d74bade00330599606b9fa63bec1f46ec3e92848b745201ccdc25fca84956e07132de002d8297e7917fe8fc2b2d5693b6c9c47c718de6eab306142be185ce6d08df089046c443827c045c8302d9c0eeec74d519d926f7d64c1fd2f9aed283595be1d4d3949ac1c1af8490f9d219941a16ba5812a8478319462601995c90618ac70873838ed3d4f5897d0763881115162d3061fe7788751736a2e01fa89d3be440f980c60b061e81fccea6a8d3c4317eae0e021f8b146dea15aed73670538a8885dd5049290596475a915664b3bc16f447c4ccf0a5d7d1769c9d1159055af40012aecf1"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_5(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2e03ac55686f056f06f3e90f4eca2d92dea91e789c09b199651408e121f817a2"),
		nonce:           decodeHexString(c, "d5af61ea5dacb0842ce832d36462b8a7"),
		personalization: decodeHexString(c, "9b3567f32cf3df72af5c44f0a75a176eb7a49e436476e3e8a6c4d2d8630cf1cc"),
		expected:        decodeHexString(c, "e72c1145666da3744344dbee03bf30120fd9ea7e77e587873bf55fa6e40d2ff0e0ae7fadd0ac79ab7543d566a35b022cbf3e2f63da0fd967e09ae0a5c6d32d8a8cecaad57888984fd82a196406048bd0fdbdd4b7bc9e0ee08ea8263924fe0ee4447e0a9de019092b12258a159f20a32c62f5d6456d4cbde3f4d46d60326b4a68a922b23b2a55e7a0d90fedbd171482e7b293150da2ea6e1303934cc09c6d8d5d39f34475d866f449b82586040926c589f1db594a5f94e93b1540798eab92b1771a9acdd92038229386a3fe944ea2166a27c06f1b9978bdb3c6a1796c82f4eca35f54d356b8d6518b3567f63362f73db1f95f9198ddd41f88024a4105598fa111"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_6(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b08d614babaaeff7b60f30bfdb767cd1ef2117e744ebb40bb0e26ebd780a2f85"),
		nonce:           decodeHexString(c, "f7c44a92685cb9982eb2b303ab423a6a"),
		personalization: decodeHexString(c, "4daf05558ff18c380695d6e488aba4e278b079830fcdf553bad05bba94817102"),
		expected:        decodeHexString(c, "554da4fb08e93dd5568ebdbdd31f22241892e5af438a57e64e494f780174909126c7294118c20d7bae25dc2f9084ac35517f36dfd4dcee58af25a95fdafd2a6ed998c7c41e21191df73548fcc63e61c01107c24c786030ab817005989fa0e7509246b9005ce6bdd4e26d545a9cb89f4175af7ff8c0a1046b0291504bf82d78da3aae30809b402e549f2a1c3a246f927241d045e8589d973888a47dfe2574dd0c9a9e9dfea377937e0fc69e4bf40b6a86b612cea29cce7d41dd15f76bb93eafefc43bfa9237de1167395474d42669f05daaaf4034ff97c410440ba175f4b431d16d702c9718e1ceefe4236c608e61f66cc378251bfacc36606f47f364df48f143"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_7(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "daf400bd2c2f4ec2eb1b5ad2942df95ee1630f89bec55512297c73336b20747d"),
		nonce:           decodeHexString(c, "e1036a0cb21f0316460d607dd43cab3e"),
		personalization: decodeHexString(c, "c5b771c4d77dc827fe0c8fba95e2572871d202628606bf2f9762be02e018c6b7"),
		expected:        decodeHexString(c, "85a0b64015dcb79df5943f856007f1dc38c561675e75721f0c7525dbb94c68cb8187d80ab92e1b318234e3dab273e97db5591713910da80b5222216883dc848eb51e2223552ef0c72147b445b497270355868b9e299c5f647b144e4e270a5478a67b86f220d1b83b1ed4262c4f341bd0b79d8f276396c87639a270ec6378c4d4046512461931a2234b72c70421a5ff8ae234f02a40bb0149ca6229e8708381b8d3b1ed321dc92d586770972849becfdcdd2d44bee53ae4dafcb36f37f2f68670ab266466d7975c1c660b9bce2c616bd06b0fb37e85f988cd21548ee2261e5d659004e12fce1ad46f065999cbe5cf7244b7ee79371fd51d7aa305c4716ca1d03f"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_8(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c47c748c91179ef923096cbfd0a514089b3aaaae521adef2ccf4e001a70d7a35"),
		nonce:           decodeHexString(c, "fe0756615d0c7cf7da577b211990ef35"),
		personalization: decodeHexString(c, "9f676d607442a3eeb812146e5e61b23e860c567d388130498d109912c444e58d"),
		expected:        decodeHexString(c, "8af06bf08fef7dda378002f9e40ed424110f9316fb1bf2b1bfde0b8d11f5d58c9a38a2afd9e9554b12e3d32e1745f38c6a3c753d7b30d9503c47d914acfd54207dee165903230a8de58b5e9f52f92ab08bc6f343a6176ef45c9d1b22c16521e2e08102db80e3ca1dead0c0216f70505efe869b1b1b441a69b83795847bb454f42235cbbb3e93db43b062d64b6b61adeb0ac8f08cbd3bdbd3c8f41120a2cde082ada4684831c35343bfbbbf33650cc17835246ce2536da3fdea5d90e569175f01f56134f614253029c928c7e6291fc5d96a14ad74a13a2531152994e6044a0ec501d8c301dd3eace89fd876742816985da1cb5d406ae7c3fc576072b0dacdde72"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_9(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c6f1e5decdaa6d12bb0a89a4f57d2ab2bc4a5acdfd7a0142bac9da1b90d9d29f"),
		nonce:           decodeHexString(c, "5cd1c356950d1ffadfcf6f6b70090ee9"),
		personalization: decodeHexString(c, "db319328e8644fb9bf6645e8eff5181511e93c9b711316744a81ddce4cef695f"),
		expected:        decodeHexString(c, "b948b02d0f6c9a48fc9ebc1dcc399969e0470a2bfe5fc4c977eb4dc4efe25a2a3f78b044679ed25c0ff22c27d55198d6ae674d4647863cafd60ec8cb3a48dc4dd1aac9c71c6cdcfac43836a3a44a2048f4d76a35f2a10fb02ded6e6bd2ce23bc4f759c391becfc5e5d853ba67d27a197ebe5ae254c5af417a9da29b95decb3ca7c6969e68dce0b9b1560274ebf16a69be07b8c4b3f13f62cc86ff69fc1b734f4b0f6e0575eb0c485a65e8a7aca45f9ec35ceb620a39be1f438d994684c0028955cc89d0e4d1ff972a7acfcbf684acde9a2257067f2f3bf74758238812c99cd83b1a3005fb3b179639c2c9a7ed35942696d488e5811a7db3c9b2056ca1adb6ab3"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_10(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "03742b9f381090cef732fb774b73e3a10ddd99f45ddcb5724020b9b63d18b6eb"),
		nonce:           decodeHexString(c, "bb80c667f0a4b2eb8bd51b0008737c3b"),
		personalization: decodeHexString(c, "c00f0fc8c9a15ab7c066bf77e264f1e5b747b91fe6824905caccbb17edddfbb4"),
		expected:        decodeHexString(c, "ff587ca07631eb2ea9712dc7f7db74a0e008afd77804f4016df2efe649dc23bb1fa64059e0be09bf803d5110a027bdaeaa926992402fc5c523ae3409bc99173aecfdf34b03bba173f985d505f8b5ace8df2f8d30524316c7467b9c02b424160e3e1e99972628b0396c24d48665454e44baec91a867d400f9ca4a7da19bcffe1383cac3796aeaac49303821a7bc121dc7cc780b5e90d7f0292efb4e9c9c366ba37f6d857b2f56a395b7a34a07bdc1b6023763d04ddae07a6fc5b5081eaf6dc7e369e9349b5ddd150e29c693dd6ed513305039199b7313d5002d7fffe8d32f1f58883ccab59a48bcb4d25eeb29b540f1face3b3c4dba2731835c105d80edd45d23"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_11(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5c9714d0458f6bdc3b57956436db01a91cec80cfec267daf62834c16c0600b7b"),
		nonce:           decodeHexString(c, "cabb734b5011dda60f0772d415cdeb32"),
		personalization: decodeHexString(c, "ca5abbcdf8578fb58619f4dab1f065c8a7a69e6173ea893f16c5cb9a27e6a054"),
		expected:        decodeHexString(c, "b3df6dee7fe5d5cea49d88587da12776b0c9928019829cdb7f8fb761973a24ed9be245e57ee39e73b994121b3cdb902bb9d36bbb5e1b77e4b5c9fbcff14d7f1d2c1c7913ced5fc99a6e8b98168e9b3564682ddcbdf714bdbd020e01611644aeb2d32192caa7abb7b320c34714ee6e817fbeb8f7a265e2ce12503dcb811b09b752de4dce1d28dd558e859aa89288fdce3cc8de2b3e20c7fd802ab506e7587cb5ead79fcfa836923d0b2a0e7b5b9c8f4dcd32a14ca495c52d2317c895d8d3b5ee184f4886a6776fe7e4da5d24bdad322b975ecd16f26f5edf1dccd42acd9c01e132d325773981047f49cc65687e2b631ce4c57b1680d35c01acd8360e66af6f906"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_12(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e2253a35a6439e8d3c0f2d79bfab941f517739a23f7965f3a4b164129ca7491e"),
		nonce:           decodeHexString(c, "4d8438248515909bc48d85c62e597b43"),
		personalization: decodeHexString(c, "bf19a8dba2b174fa7a16151c17faf3689b97281868e9b49c749e7df255383872"),
		expected:        decodeHexString(c, "91fc2f02c0a5748253f87d2a661264e128d9b919a51e149cf1a922d49a8b891ff937b809f2791d477d824b999a7b9d7573c86971e92fccde9798ea935cc1ad03e0cde00e9fddd481d0e33433824dc1253b6a144955a735fb4303accc3325b23fbf7e99affc7f95cca2c585b2dee3762765db7a1ce93229933d0ebe39edf985e84f5fb671c86f2a5d6d660bb7933f204cbcadb0eb829d9397d15184af6b7891e91fa1f82bd342b8d88b9748cbcd66c2a75ea1bb8546a088e0b29bf2f74f55f8842abe2d3214b1f4a37f2477d744747209d2c516d1d284c5828320c29abb331d32febe6199d37b3cc6bd89c4e9c9dcf5c55c7ca2f4a0b233c7154a946f54205663"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_13(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "288d9d6c23ccbde96cc3ed1df7ed35a56ee768805ee8fb529e7e00a62fb3955e"),
		nonce:           decodeHexString(c, "388145778b16d54b3029c40758081c06"),
		personalization: decodeHexString(c, "793655b5ce3ab8bee33ee590eec8de5b09b459e9875b9f99aef8a2ea8573a395"),
		expected:        decodeHexString(c, "186995df846c1c5a02c1170239c3165938acd5dc9d3999a72f8a27f0abcb880ce9214f7e4dadd91bc116210cd110643e1f5a13f558f1efc46aa42155084bfc2de536f4435ef48ac85b167943c9b0323f9f6dcdd4ef6d8a0a665ecb467c0bfc523d439d50b7b164c4d54c0cbd51a7ae7c53941a09ab5c9d8fe77f5277014349ff79ec2b1d1ad94642b28be4dcb1d081880d11b6a0bae19e3192b3cf50badc9ec01439b193c5a76c29da92d269ceeedd39b3ccf7cafa8d85ce32c59b3f63e272418c3c62446c41e41ced3f45f5972ef9e31f5b7fcb3779bc6627fdb093f66da9f382e2b722a9f928910f5c209d18488f46ee56f5f6822dcedce604aae79f4698d0"),
	})
}

func (s *drbgSuite) TestHash74_SHA512_14(c *C) {
	s.testHash74_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a6f5450b36f9b76e6bea00769bd7586d30f7633312fdceb82de3106940c6c96f"),
		nonce:           decodeHexString(c, "fe9dfa1b683fa9cc70b7c7f8c81185b2"),
		personalization: decodeHexString(c, "7e86cf4111fbea8fa9b180a1bd9ff3e9d233304b1d293adffa49ce8e77f400ab"),
		expected:        decodeHexString(c, "ca0a6268d034f6817edcb6875b4754b5e9b2061ce0bc2bcd27c28065d8258b40ae63bf6d1e15521196da0afea8139c10d7bf3b54694a82d24476c578991fce1371e40b78087d95b1117650af7134567513a017353bb4af85cdc98db757cec9f92df42b7323b1e5d05387debb02750683a5553bdfb5f9fa34e14d29e09ad18bc6ef2380c173a19631abde085369ff47fa8b4fdfebe13b95b90c6f5841fe5aa6334edcfae26c13cc5d14d17a02d684b64bd55841831bde4c75de7d49bdc1a405d4e3e0d327bec44644e972349a49cbd48a4d3b8e984f5847ffeba950fff55bba9b287d51d8475f7799752208da31d91853fe6d04d97ea2a33d53b07a4fc787be2a"),
	})
}

func (s *drbgSuite) testHash76_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash76_SHA512_0(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9bbd1324f894dcca51a32242e73bae6450f70574c39762966c5e273e5a2bd6bd"),
		nonce:           decodeHexString(c, "b5d6bceacadde8b9084f9e513b3f9a4e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "951d7e7b3e00a588d4d7db7f1ad9340e6405e653b06616d276f9110f9ac92a0d01f054bac3f360b3c8a0546595372502203efae87c6c34f1a8ffc60affd246917d289d6dc864aa4d4ad43300b2e37555de3453e20ec33707bc8e3b43f196db1f728d294111ec438200030a2896cc2705ae0b4de0648fbd35eabbcab9306f97984cb6b41c966cf247bd0bdda4bf2295f9c801d02b94cad22d553dabacd6f7c0f5aec91648ea9c3790553fee7e3594ccc5300b234d22df110de392a05af9fea978391e6405a34de26ceed8787a4a042ce4cb05d11d43dfa7757b75f18235d7d14b87fdd0d4ed758c93fb8ca249f63d54891509bf884a63cbf3f0fef92a7ede8d72"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_1(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9b064fec39a980af5ad1802e451573c00a628c9b0f0220a132eb35efb75c8006"),
		nonce:           decodeHexString(c, "d0b7183b91055191f09d9d23caf4a4e1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "459ee4ea91b9b8d4092bb0eb0324ded2e22ff9c058766d0877472e867840d578465e5d6a8b6992b9d67802a0ebc24a7f2cee48e78a296652479a63d9a8d64e3f0da8205fed8b52618f28511a8029153ee633370ea4d54b8d0afeded37ac8f083299df7f15612a2a918f06b65a620327bb0d44dc8cb4a8dd6a327c1a891b2126ee395598d263cc2d8c08eac61bbcfc93036f4ffea495db5500aa13c25c570de95834134a253a2ca2c960f1cdc947ddeeb7127107ae4927e831b9dbf07220c1b71e4576132d49652f54a4b106f216dd6070bf0258b9b58ae84359d0145a775f42d8d54f9969bf95342c8bb15e75710f0f5c48d216b78af297c4476fc4c888ce022"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_2(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2380f4b2a43c3cef6b8f70628f90fb7456d08dd8bbc83943f3936d9c2b1bbe87"),
		nonce:           decodeHexString(c, "41dff48bd7e3903160ee27870ace09a1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ebd1ab440ab8252d07aba0770db62a9d9e84f2cd7db61c0cef74c1d508b4627d9e4572c147f8c3a3b594a6be90f7b8a6ff3f0a9fa4fa4940923541f763146b83545cd3155110d41b779f6c24aec8346cc1d0a809bfe5f51112b3864a6663cec439fac9d34aa23f25e7f8e8c220422f80bb7c90b420a0deacd3db4789dca47dda971e7d2a1bf37084097ee328f4d9732f236d9c157e3d04c089c3ab6183e783144f40a841eaf0a1229fb01ebb2e9d162104ff51ad6ca0d388d488a9c29ef877f5945c01852a4bd45db1092859a1556c59d82befe203fa1818ab499c6d48c4e4d773357d8c9614b30197dd5c1665f6ebd9ffdf4bc39523b33a264cb2ff3eba361a"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_3(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "84e7dba652be17c1c0cca87d9a969b9af18282202842ad14c2531fe76f83e875"),
		nonce:           decodeHexString(c, "4896f2ddf35c6401740e8480bf163565"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fe34c3145de3aa378fcafe1ecbd30d003eb9e68765ff8ce2d6cb998694c6f7aeb1d8be429a56d9c20243f56406e69e6aa88a4d57ebc49583b7fa440b32e891232d01f7deabac95d2611fd9d235822c562fae741420824b3792ff368e0177aedaf5e2e934e626a887a93da6fe6ed13e2b427b81972644a62e18ad1f8f876a06b30aac3227c0954b9ff442dcf87c638262fbb04d3e1fb246c9500121d90045e146afbb3f925cdce3752a941b8a0487a7b3192294a47011ff99ea9744792a01a8ff7694d0df491750d3fa1daf3d16a9cd3b05dec2c8970b179d46ea293dd6e6d0ff7202c71d3252f0afa6206b17eb3f289d388e3a9c29df8147ed57024e1187c7ac"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_4(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4d28b4f412affb229b3385b79f99a65dc363058c6314e2d47556598a428cb3bf"),
		nonce:           decodeHexString(c, "69ab35a35eb5600c31b54effcab74075"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0c206078d2d03fa13c60daaa827c7021e15a0290dd77b24bd018e008c0178bfa38eb1c0fe466f135c8e8b2e9e6eceeb2af31a6a16fc5507ddf777265710789ac248fbf9403e3716a3232566429c00e3cc5dcdea4f2437f2ff2a1f31ac0964a0346a6c6c293e1a3265237132cccaaf8780a58d8f324adb39ff2bb70ddb5132723315f8eb3384fd7d254e6551066a7a91adfb0ae9add781303695807eca55a588045f0caec82907b3a3d4ed0f1419c844de59596bc1b5f740632079502f6de79420736917776b1ee1d11a2f59bd9ce2b6e2b3906f2d38f4d96bbb449a29501655797ca990b85437245434a84756123113f20bafae1c2be0f0ed899dba4e116bc93"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_5(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "24448a568f6912661a26c34627fac21f2a67e798a2290cde17150ac593b179ed"),
		nonce:           decodeHexString(c, "9c2350726dceb1e3b2f5a07889e52d57"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d000492bf88878adaf7af6453ed1c45010d4fbfffa45213f7aac603e60c3fb575ae49f7db997b1d952d4840b6d82fcf0a4b00eb1ae153eb90f7b165cd7525edfa8bcdd86592d651f0afb40b635fbf391eb60146894e271e96e49138a4e145495406743a9385fdc68f23ff5e86c69916ee7d3a41691f9722ecb82e5791b81e11af3926d1c324d70bf63df39b3ada3e90f010326c2ee0d0580e7987b34ec03f5f5ba630c1e9290f8333b84bab99024bbb0cc81706f99f218d9d0a132d8b2fcf91e2906ce816b21913c20235616317d78bfcbf6c60900fa61570c28649809eef49c4e105793b0e08bd77947bebd9332ab5336b11d81c6b33bf984b2b355359e10db"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_6(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3a0da00487148ca4e561f0b95faadceeeb35fc591661c76fcc7935ad78a5650d"),
		nonce:           decodeHexString(c, "e3bf035deea32c0a36b5f2059fb5c877"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5a2dd8c26bd0a3b565c135342d74b99142429355d51a3a4b139a2cdbc3d64eb4f478600b847388aa722a9bb25fe89ee7d0a60131490e083e76cac916154e39521c3be699174fa92e71ca98130b7dbffd01b54c2621b3525b0386b5861b540cc7c02a879a41789163447ddad8e3ac732d05fb6446eb4eff85970cc9c5797e6b1a3b507248cd2e242dfff48db1eaca77f5001f424d208247d8ca8d1998e7ae7d33eb293da86609c17effa828fc27a52014c6688b235d5b89aab5d7702acc446913fb50a160830450b2733eba77dd297006b33f55677c2400e09942a5dbc75703e09903f4c31369d582057dfadb98358a9d39e3545b793bab0ed8dcdff253cef3c9"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_7(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1ceb646925c3e7c1c81eb2342008819010d49e0d11dcb6d972a85a007870fdf1"),
		nonce:           decodeHexString(c, "e298763219629e8901e9365ff3f56367"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6b50e633a4b2d6feaff1dc328f074f0978913abc373a557d8ca2adcb922aaf94d20e79f1346b6b85c843e2b69bfbb7dfa16f9debb8234141be1df06217b685703020d3ddd3a7f74793ecb56a88723c1ce81ab29f9f7ef56b3eb0b24142285a667a3b1f2e2b50aaf2accd89144ac3abccbdc16f3b68b1d61987aab373e47fe57e7621e328c0544febb987c599a434a1e10a91ad8f096764f51588e4c0eca548c66351348e728f144a7e585a0f81fdda645c7ed8541f967ad8f60968f09993ebd9a4c2ad63862857cd8fe5aafc78afef0ef03cc47ee88d912d37618ee59e0fd2ebfce9a7a4af6211cf23fca88aa134b80e22cf93dc8e15fd8bc30ca1a5775e1157"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_8(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "62851d19bd8146cd9829e252154734642a1b39d03392b7f138b0bbb7813c3262"),
		nonce:           decodeHexString(c, "bf47c30f8f05e8dc84c5983747ce9730"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4c619f0ec161fda03583ed4328ded5fbc84fc854c30f5cc777c47ab118fc15d56ce1713d64b75dd6c168225459cc7137c5f324338b57a954b839a461e38c407f6d4be935be264875a6cd693ec98b90125629edbf3c29c7a0b3c57f7e6542d2ad32899e56a496c3675773f794e08cab7ad8bfe95769a13ab43cc99d7ee7d68dd5a35cb57a668db468a99f1831972e4d7cff59f75fc1ac4c6a3c08eb01d94f0e7f1f940c801d960a6a85eb2f3f4578911e9222dd2f62cc18611e3bcb879443f91dad2d0d0e2f9603b09ba400fb6af4b7b73c97db42178c27765ba5df01b3b7b42e80560dadd73433d82073fdb09f93a381150ce8046014b5bd50c25e214e98734a"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_9(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3b7964ddada8f16b495d277e57c7dd721bb098a49bcc0f116050596c8b88b94c"),
		nonce:           decodeHexString(c, "6f63d3239a7415859d302e78bb082dad"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "60df463f43c0340e5c63c1df2659eccd9f79266eebc88f5169d3a972904932c02758404e840002716add87208043766c94138f7bc162eeb754f050aab0e92df079589a46522b26ae33615923380de81a63e45181aee673e4b3ebef3c1f312ca922300f49edf85f5f7416bd2af9daa9ff729fbd01047a87c2788e842628d0221660df566d5921a7095977dfa9441c3e0c8b89d3cdf8b3575d13c4c4bfadd382703b9948fb0f767d468400a206a5f8eecb06575ca1d9d6d737bf3b7c80e42a233d4e5875fc46eb59db81542d91e9cc56aa71451160c38bc06e056cdc981e4b8c54d23330dae67f75fa3528345efa71ef5b0c51e601cc43dbb4a5968583e0304306"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_10(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "69bcc1be3917a3a035ec29eaeaf961e74954eb2126986f27e703b2813536e91e"),
		nonce:           decodeHexString(c, "adf874cea249a301d88be68d97a7cdcf"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1c59daef4f22a035f4f30c1791cd6aa73b5a939f27b2cef241df70c70bd3e324ca0b6f1b439c923c96acca5cb106002c5f73f3f6a6a8335dd7353f2dc1d9b2c10cff71f27d9b564e187e97cdc289df66de95aa7f2d39594abdcc4c123376110e6c09e19dd84ccadee35e4bd3fbb38b80623ba781c268958661ac31dc234cce44e29bc4644426eab0d1587aed15bd145838bcaa97819f61811f87a9d4ba14510ece56309ea88af8914b9b3d45b1fac3882e5fc0cdd2ba67a309f0bb278d170cf06c22589acd6fef645cdcb5fbe8bfe3b020fae2db4472b324e4ecb1d7bfa6d1317a9f649378eab952ad988f220ae12cc823f5ab8a2441927014dc74086bb64dbc"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_11(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ed0bcf14ad870c697972952ccf028a0200d5292028b0d3c0895830f316b674e4"),
		nonce:           decodeHexString(c, "92658caa52c652b04e1f87ea3923679c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "acd2e85b622993f76008b25c676a4354c56f3603a9311d7041d37e1fb44c5bbdb488d1b4a06b03155225b81f09ac25a7c6998effdc1a7803ed13af96d69f31f2872afa3e181c3dcf07aa338837a193451a715c02c75511bb63d7cfec5659f2bfd4b906761339b8e0d4a2f2cd2b4377a6449bdc877b59bb403074b4b3190f52c74a4d0672fed5070da1550edbfe75fe15bb2be3b8dfc632ae166f86ee8271d066592f76473df3eb645e97f12e1e519affe4f38941a4e9acdfeae336c9d83132981c4a1ae9eb3ab7eb1577a942b2522c3eb4c2dce453c59fc9bd46562520893bf9082e89fcd2d418afdc2ecead17bc292edd4830db798b6c2f00192340be018da2"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_12(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6c652fb18bdc0a9ceb6a4a64a91b47bde1f14bda9e4cb2aee4bf7a1b5614642f"),
		nonce:           decodeHexString(c, "494cae47efb1609d8a042e6167ba16a8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cc64d8334817fe22d79e4d03c8e20e732c6ca4bd04d10688593a42cf06cd044951c068f7396118a78ad6475b39285d12cb225438db9bccbfda6e0ae385eda77333c8e8237cdbb6a0500c1ebb8f8e9fdc065e35fc73a6c3e4630b79172e965f6d6183f91528b331f075a788a8fff1e1a410bc44b5b06bb5ade7fc59b7aedec39c0453a3249badbea0fc60bb38f4a132c3e0bb786e63a26f8ef29720f4fbe4834bd114e20679c8fbd2a20f8350d602e5e46a0a826376e98fd5e65fb3b44339cc00234cc033011f56dd25e1a84cc2be53e2fc52ef482432fa571148fa7c8ce27c04b0e16f7bb44e02b123099a9c1f9f8f8511f0699a646bbac2595acffd3c0f9815"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_13(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1a41e673f9dcd36f8d875f2de629d2d8781cffa2ad7fc330700c766e5f864fd7"),
		nonce:           decodeHexString(c, "490c0d75948be3dc5659e1f71dea4859"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "423b41674ccab8ecb7084d77d69b2f3e6edcaecc1472959a836d8268e512af76acb32d7c891e78128ce7332df464c9bb0647e4c7634c2d03a4af2a9cf07cb59c01bab64485d3c419c210fff1bb77700bf6ff7d38848d677ab2fe032a2d246b49cb88c0e5b67334362f986d06ce7a832f15252a2c4a7cfee05f3dace252b2fdf797560c9fc8deb7186853a4fa3a228d1a2cf26114e2b7d5769300d5d5331ca0b7455d6ca341f32548de5e31005f8654112528fc9ce09ec7779504d90901dcafc77b3c2ff174203b38055fc5d3d271aa349722880569186604d4d290a70eaf3950b4b1adf5951d731b6c63839870667f12690c834455b27a8b838be7fe83b7b9e8"),
	})
}

func (s *drbgSuite) TestHash76_SHA512_14(c *C) {
	s.testHash76_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c5ebb2ae08a03815e496c2db1e2a650b40893ea78fbd7ca8434edcde4432a43e"),
		nonce:           decodeHexString(c, "0cede46aca7d2a60f2e98eb3c7d1dba7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6d8eeb5ba130de7dca993b44b46e08894fd84ab8c347992aeeac56ce5fb5f435bba92f1129aaf9b3035aa117301a1289acc222cdac043dac58b62567102dd5a57483d79fd703e188a0fe47254bb20b361281b5b8cedded86ba9b6d86deb30e539eb7ee007131ab2af99408f38ec7fd66bec4f1ed71251c149dbf8393b6dbe96cdeb9a3b5ee065ec8636444e72339ed2cb27fbbe5421f7f141940d6fa1cf570b8dd0393625ae16b10df2f1f6fe35dba15a732357dcdf4f56abcbb47a4640dcef618e27d049e27f2af7b8634faad00280e004cfe3f52d63185eccd6c4937a026830c38e1ed6aa9bfeaf739416706f63bb8b1475ac25d734db28e39163aa0c69c52"),
	})
}

func (s *drbgSuite) testHash78_SHA512(c *C, data *testData) {
	s.testHash(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHash78_SHA512_0(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b510a60a5a19007ba808e60b1628ed9907d1bef992d4fc0abe51500131cb4cf8"),
		nonce:           decodeHexString(c, "eb1bd783accc855eb320cde10b1be6d0"),
		personalization: decodeHexString(c, "7ea10e96af900c25d3be3b50a0cc71a79fe414bd4c3739803f02ffe5b260bfbb"),
		expected:        decodeHexString(c, "5f03ab529b9edab55e75e489bceb0ab6cb9ec6255c6196cd075397b091c3eb598e3162320c71e389e1d9d62a2de5990c2097561084e13ab4b2977f99c23daf214bbfeb162167c933860fb2cc9f80079e17893962ff03a26b2b4b838e6de9ff5e9dcfba73acc6ee76c477d1f7002265e693850a260e68617f13b24716d8db42c9a8f2e0bd5002289a86b02a845d9886d3fd05d8d85ac77ea60192a29047303a03b51e0e708fa00205b5c03b67b77874052ce56d5cf38e726d608bc0ef8fc2a7d27778f47c6891637b631ccc6e36eb893fe08a5b9f5571bd432c826d99698fd4179bc5cfb0d8ea2d555c36b70568c2206b18f3bea14b398d2b6a00122d7a447ea3"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_1(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "437eb8bb624742b377a03156a2bd868425c25bc01fd2d7d766ebaa4a0fe7b204"),
		nonce:           decodeHexString(c, "5b88ce5733490661afa2634097d95e77"),
		personalization: decodeHexString(c, "a34be0d37e0149d78601bb796bdec7035c4c18c71d386fa5675b0e9f4217515e"),
		expected:        decodeHexString(c, "24c4647c869efbd691ce8818f943db07d819862fa91afa55035ad86c4c33f4fe165246306a551c7fadac73595346154c7653499125964eb4e81789384efe2c16af8ffcb0900492c032e83fa26077a58b59668eb873036fbcfa8ed45ee7aa267e5e476a3955d22ba4a173eca18d5ac828de5edd5547a9671b90317804d30a5f9725642aa0b4f7fff3226814888efd515d81f07f15b00c67249cb1f42296f10b27a97059e2ba10681b4232acac8af616b71707e01a5632d0549f5c19c00940f6b9009f683e64cae69e72a62ac7b714c2f21ff199e601ee989883a3a8db0c85793bd994bc22f364e0c96bec4166427188aa08317cba5b5414b001462054cb003fc6"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_2(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "41b7ccf06fc6eaa85970896d34bc45a09ca8c2d688fda7fc1d9fc699204cb352"),
		nonce:           decodeHexString(c, "ac7cc04dcfc4659c2f08dcd6b09bcac8"),
		personalization: decodeHexString(c, "9cda5c090ed1e6ec9f7d31f5073955c4c7d8c3011c8419ae91e4a829d4b3ed30"),
		expected:        decodeHexString(c, "58921de02e81855122c17ae22e8400ca14a4fb17c2d16aefcef4cd5c59cf30f7c9a35e89b567a2f9ccf87e1b2c7dc86544d36e25b111ad3cdd0693f563fb9fd25bea8b61293c8fcda4d71c28a3f6b86881e5e0821f011bb94df2ecba6e04ba97a962082328cd10d8a06a150d86e59ca1e542b85dbffc9018e800dddaffc82aeea8b4b9099a3de939e5940459d17fb2265820545546252228a938b657c98efdb22f2fef35d24c6317dd6fc01910b6e4d3522dae3360a8e72ea50c01bf14bd06a713d1feba12c738008347985f133a43d4b8289cf709a5687a19f755d7891ba4b0e4bb5ebd4739411630eacbbee4d7d56352ee2f2505e516806ca7f54d7ef2842d"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_3(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f851e2ffc4e36ec323788fda250e712f08cdf832d13126d723e75a9c47c9e974"),
		nonce:           decodeHexString(c, "eacf73975cf3ba5cfd4fe76e86ecc732"),
		personalization: decodeHexString(c, "39128755ccc6116548f90b53775c7fcae46a7c22b13d807e0314561c2e3e3b98"),
		expected:        decodeHexString(c, "a07dc1182a42dfaf31d99e3585e5d8c5bb77e43ea23e3bf5605ee22ffb453a9e1061b9692ebff369e8a91daeea4681d672e516143a0e63c684613ed7559701e2411ff94a8d23d816d30b9e5eb5c029e6f2ae419a076bb2b049ade66fed50b1f6c31978631b66ce8e9365e75c113278788a3779f4ae3547cd308eb99a57bf12079afa098d2b1f596bf6775ed38a4519924d4e0f7362755ae414ad1b5d1f534d45ef84f194e5e7a99b259fb09376164ba7c44489444f24e77dcc77189b450528447ae4a7b85724ad8cd379c7ce8dfe42722f596b3124da4d42c090b6c1060b29e33176e4462efafa3438c8a20a3d41c758edba313789271ee15a6770694a2cab16"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_4(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "99a179a403dfc5a28c515e62b3299d8deee64125f064b7563d9221eb2099931b"),
		nonce:           decodeHexString(c, "f1219ad014e02fcc007d657726493060"),
		personalization: decodeHexString(c, "13dbe49995e1aa08edea3565456c97d65868d475ea48cfdd25fb52e76b33730c"),
		expected:        decodeHexString(c, "7d46ce1bdd8a080de2f9a276b3ddccdcf2aeb51afcda9e3c7e4f21f8a4446087c7f61c600684b9ef6955a3f547a923086116dd634f40f6261950a9da0015d1f79c220fd36ec0decb7d3d6e65562c087e395f719051f21bc43283d217aec39b8e059b3b9222209b71a76c91d183fa791514a6f7386fcd7244674a54f0327acbdd1c2d8be494f82903f7710b1e2139d4174b736c5935c9b23da43ef25baf8125bbb7095881c21b7beed0df96f2979a8b981efc75eb4cfaa89c76bb7d14c9763ffb9c16173e556d57cbdc7f8a2397790f7b7b99650a4bf75d044cd1faa925d129f51ff9a1d5688769cfda7d4572378d99120d37f627271c40d4f847c311049a24ad"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_5(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "08f9bbbce05bb88a664fbc00b109148b8019917b29299594a3223cb9353cf06b"),
		nonce:           decodeHexString(c, "d88e0b2604170d8f96f939063c868440"),
		personalization: decodeHexString(c, "f5e65b38d925a8143669046aa129447019dbd4326856892d3cf8cdbb63ebc80a"),
		expected:        decodeHexString(c, "f16920529a5a7a841ffc8533ccaced4d7259857462445bb7be98de303f9f7ed243f58668a172092109ad4825cfc96b24ff6341db70b50a06fd508143e9e0ede67f32c6673dda34ef66f74fae2f940b52716e50453fcc021d3a72746b6ded4c1b19c50b8f6d21c5c7c1a96cbd05b393790ce18ffa737c45b9c1b2e7cf05b110026fc401937493f94b4d8464638e03d19485e642cdf38f6729e0c3dfdecb1c8559dfb62987ff629f1f57b4eeffbf9943caa2b12e0d77e51ec09507cdbbaf40666756f32a7810cdf69452e46d75f2d1fb7437d1ef75d13486d97b384f030d713f2b502e3287bc014e6bb6e373821c4756828e71b4c2e08ef3501ef12caa82c0e02f"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_6(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "33a4d88a408ce2450fc303c3ce2b397d97afa2c29e1fa9f27cf98bec60fdf007"),
		nonce:           decodeHexString(c, "f870245d7194575faf70e9e63a417bae"),
		personalization: decodeHexString(c, "af2966f37b4b080d4ae4da52a5e247252c7e0dad65e180fa2e1ecb05992b6691"),
		expected:        decodeHexString(c, "84b2825630c86859c5ba59324b292dd1f4923df5b2e664ca4a3d6a5eeca62f5157dff1ad0c7bbc785fc7eb15091f25ae31b7da54658e4ff0fcdf7c1a3a4734f7a9647db50c3c45c48fc334b7ae1a725f0eb57cf1c078683aa50a7b3cd4c051ad3d59daae5e2409321dc8433f439cedf9129b1aa3e2d1ce5e659080762bfa8db259eaccfbb1f704a76f59e5878044df9fb08e65fdfeac65185603b0904561aced4ad32b6bb52cca180944c62d9102480cd0d59413fab6268f92224df1fef21c11c984ae263f24de504e6a52869066014ca230e33a9d7f64c7100ae286378c44bcfa15b1c5f43d55b79afd69bbcbe6ee3255b78cb59a0f7ae1bb9b4be239301c81"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_7(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7c796db5544d37174068161145e2e3675e705dc54cc82d1e3486cdf59bb7f82b"),
		nonce:           decodeHexString(c, "da2de425e5a735f9f799705c54e88640"),
		personalization: decodeHexString(c, "67f98ddc76c61b93270f3fab40a09eadbebde1aa252efb937d6cecf5f3a9e48d"),
		expected:        decodeHexString(c, "3c3688bf7410f545073813eba8e58d89efa56564c50475648821c048fdff3369d188b61a3a40b7a75df7883aeabaa400252e2247e5553aa6050c2b0703ea79d85de06c7c18d650389b4d30c1735bd0452798a12d428acee1800a4d9b3666f247cf9f8dd2b611e3a0aac763886fcf49bceb66af8ddef6ed4e5bb39512dc27f29e14cb4ebe2f675ee28f2069e09ff9e87c7b43fd89ac710ae2dc49d49140079ba999c19391e8d7220c176f9912b011b799332ea545c666283ccc1455deea01eebfd4ced590e3454ed34ab80f4e2f7f7336f86bd295779948f8f982c5a4223873dd7c2ff87b5ee73a2472d86817d39a9b8a37daf0935a1ac7340679ead86f9e4139"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_8(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0b8ecf86967f9f654f5b4fec1af177761caf138ff5b40dff36183a01a630c5dc"),
		nonce:           decodeHexString(c, "564ff097b9842c8539d8c255198057d9"),
		personalization: decodeHexString(c, "30320137d43b37d7a17c15f9763bcb37790ace97d88eddc92f3ee1d60ca1a929"),
		expected:        decodeHexString(c, "9338ab01620bb5c9fd698ad49a18bebf4d1613254b1bd619cdcf746fb850481d44ddc88538eed16c29540337374e901f1e8d667bdee99e40237c086569a0be686489724a58b72012281d9241afaf27f16cabe5f41c2b3652708907c63d782e67fb58ec4442e71c02f98882950fa96f58cd19783f7106159adcda38416863bcb7fd6844394733263d96590d0cdc8065118555b2a524ba3c1327ffff2d2a894163a64525584df8ee65e315a472ee9752214e06a2b6c0e72c4c12a5008a8fbcabfa7b6289043448b65c077b64863653f6c11b70ff701296631a307bdb0019214379ffb70c0eb8c3563b1eddad3359401894522819f5f82b25d0753b154bb8d278e1"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_9(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8a1c324d7c5d79f4cb89b5b24d447cfd2737a1cc166db3d34acaa50054a0ef66"),
		nonce:           decodeHexString(c, "19c7f7bd9c27a80b01722d3fb71565d7"),
		personalization: decodeHexString(c, "e81d9c0f169a6f536369e4ceca14b2828057d7574b34a535bb39ea2929e193aa"),
		expected:        decodeHexString(c, "33953f7192160d854d0fb54467382c0d8229c1331639c15a7067727b6af0fb0cc5551ad9fc7e0253441a4e54df8f7471f94e1dac4971c710d1cf4b4f37672681bec6c85caddfdfbe247855cdc4cf423805f4dfc681aa95958c804214c45e93c2620f298faf7685567d26d2de5185a591b0c0057eebcb715cf01743c6716484133024be4dbc05321d7ceaad7fdcb854f31b4858549c7a1cf296c16c3a39c5026c97471bc9034fd056950037c37dbc538e1dee56c566bd911f08e6c4e7fd0efb9e55bb4b1025b2a8b76014a19ba4c418285f177ab19308620fc4197204f0222429791dd0b88dd66d65af0ee681cf01bb7b77af0ec827ce72ab7530f1b2c0a54d9d"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_10(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "bdd5ca5f0746ec225150cd85e7d8acfad14c329b478d9f069aff030380cecdec"),
		nonce:           decodeHexString(c, "31227b1d0e935db6aaa63578f1cff0b2"),
		personalization: decodeHexString(c, "13e4bbb57e9dfe1c22fd410859b25f587be324755cb8902c9f67424796c808ec"),
		expected:        decodeHexString(c, "cc312a20d41da4fb965668c719257b1d85f8d83d667c124655581d10b84afda46b637c5bce4f02ecb538661e9cba650a35d2b802eab3f8f12c38c92518579d500e077257869b82940b280fda6af390104d78d958d5da66afbd4cfa57b1158bb9730a521fc3e8f694213bc19b974983b34a8b912aef8306be0a622007b120e9e883e966a8d469b48c9cfde72410ac6795d0eb7ce1fe76f502940845a7d3170e2c8adbd522237bc25ce04c431424b4d98b692e36b2ef1d08491319d367f0d6f25afeca22ae65926f99376495b2747664079532ff4fcac4437120d54d720cfe3e41834df5857ddd34eac2a127bb14406794d3f07e36ae7e4d1279ee347d8004a167"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_11(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "aadaccf8b08461e106ae1c8f7f1f73bb44fc7cb27cace17b9a78b4fa39a0a3fb"),
		nonce:           decodeHexString(c, "3f09fbc98dd8d90a3367364e13bfac0e"),
		personalization: decodeHexString(c, "f089ae100801d5ee126c1de1dc84977b162e55a644a09e628876a411ffc8a3a5"),
		expected:        decodeHexString(c, "7205d5cfce7d15bbe9cff1494660de9d7946160bb692b5e610e6c63cae2f4f273fd6ee3a3d2998a8be7b55557c6d591fe301f70754a4bfd00f07037a12d26dcbd9bf29b69254431f75b2c68ea7d7b42a1db0fba3fb411196388a19eedeea96a6418745bbd4c3dcb97a88eb952b4306273dc6f1b1c5f8da92bfcc34db99efe52b31cfd3585219735dc86aaf132bc9dd25d0e228a31393b6ea306b7de6c40ce0ecf31d3f69d478780b6cf54d4c5def99d1cbf36e785fa70a41f4f528acd89e9aa453f92f071915b9efe6b3170850d3870cb93da9960c1557148a1d8259f1740758790013c2e9b2fb929c953595d4c1eb54964c1d1aa31d8f886a713b86508195fb"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_12(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3ceb5f4355f3a8d026842f45513ab83e3ce2d28b55ada2767effb313ad3c2e1d"),
		nonce:           decodeHexString(c, "a87a2f032cfdaa979d11bbe96fc79485"),
		personalization: decodeHexString(c, "d7f3aed96ca0719dfc4abc445a5d5e284fa46dbc3ad180f51792c7e1f4c701df"),
		expected:        decodeHexString(c, "900cbcd97a61a8c00af8e9179259527ce85cda82b44d2fc2a71a3452795048745995d51ef2771e4feb80ffd3084029d2e6f83c99bd6496de6940b54e38041540e3effbbd89ce71871b28ff99ff9d62ee533c85ec50c116dae9fe555ef1fb444a2f8f593609a4e767a03024d6a61191bb14f59c5b95c28df537d411e6a55f89d0d7d04fe4ed2b917e966c12e9ee21af0705e6e7b09cc553c2a772f421b07a88621cb2ed5b62b8fdeadad1e1c5b3fdc875dfe8c32266078a9c30d088f6e9429877d1964b39efa7ee99008d19931f733516b2dd83aafca1bebe8c63e638169fc55c2b6cc98ff89e61566472f1713021d84c7138143b2ecf03b0cc2e77b5e001d98e"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_13(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "bab81ccb0e7325ae4efb2844013e64b321d5df0bdd6c70a5e5f5c093f246fd7a"),
		nonce:           decodeHexString(c, "4fe74a45ca5175bc0b3e1bb3c9ac0799"),
		personalization: decodeHexString(c, "27e6945dc80dd525c33c7111b17899453218ba38df9802477881d013ca7add2d"),
		expected:        decodeHexString(c, "9a44b46739ee75788dec7d182491e58796c308ab1d27a4eef0151cac65c31f7e5806b9ad7aa9636688a67c1a9f18298061a8d33b8d708adb9f05935e729dc977b9584af8a5c1ac3107d58bd4e3c751585259dfc39950ead6b47fdc0c3db5c9f8809881f4f9fbbbf2bc5299900745c0cd826993e2e3cb96df22e1b5da18a8c1b2037ef65b999cb0a7ed16b1ca92a31aeb7216723cf20c070143c1298e5f5bc344c5252ab966bc477327ad1cc52192a69baf181d07293acb00416b7e86ef9ae871a8d750c3653d8c27c2da99eb1fea14aed21f247d31aa817830489b11e2104d2d978b7dbbfd2167d599c252350f122b130838bff709bfa879a909cab5ddff12d7"),
	})
}

func (s *drbgSuite) TestHash78_SHA512_14(c *C) {
	s.testHash78_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e5f5eaa9d45ab64e902b5444ac7084b776521f36ce76bb504d8e719be4a401ee"),
		nonce:           decodeHexString(c, "7b9a876017e5e14bd6a19719c73035da"),
		personalization: decodeHexString(c, "eb97028b093f820b182384baafa56ecf196dc11ebc515a405ac24f73e465ae9a"),
		expected:        decodeHexString(c, "3791ee66e505257b0bebc4319897e80ea8a70577b8a85d809cc7e4c77a458e8517368e2eaa7c0623b91ab3ebc4de3240e00e5f0cd20524d73b8000f00a3cecf869bee26763db9689dfaad9b5f21e3975f750e0c6b694d7df35fea26b2ff3c2bc679b5ecaf129320dde8245677aab9fb54b8faa97d394adae687a35b00f026430ef29bc7226957dac5edbc4a70dc82fcac00bf89d97e11d2a3e6ecfc4af4536c329ed3f4dda201db47236b03f30daf71e6368a18ab6224a023fca2ead589d9ea165d66fbce2b37a630d18ef1c97a619cd8949f16f44a9bc0f5837737d7fa4355587af5ab452f53fb82dd8b8b4706cf04e77938d7e0c3a9744c353edd0c6931591"),
	})
}

func (s *drbgSuite) testHash80_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash80_SHA512_224_0(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "65568162700f22ac868a504110fa466c70cfe0e7c32f1451"),
		nonce:           decodeHexString(c, "69545e871b89c7b3f95885eb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "588572c2e4f0d6c7077d2b9eb593687ca92c86e5a9729505fcff52adfcf8a5eb850b910b985df10299bfe7434f3b6b7af92a3edaed732751cdb421c38431e2763afc6799eb61e176f9f20945870680ff8b62484378d3a7fd7d29202e5d371785d68fe399d5f600f34517fcccadf58937"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_1(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6d8db826a6f0ed60070b934ee06e8bccf3f9c6cdc8a293d1"),
		nonce:           decodeHexString(c, "20f2e84ef04067e356118b8e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "efac8a6fa5372ac76a9f3dd3f6e39ff442c3efeaf85fbc446a4421d2b7c09f4fee0e7d74883cb0b9b95e810818506cbf4f553f6f8485756b823e10fd78f1704adc546243346a2148a3dba769b826002ffa74dd1f0bf2da571ca65838a582801c7b407b73526532c4dd4c01916c6ff7ab"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_2(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "41d983db9c26d36697da9ab03389b5ac45defae909956590"),
		nonce:           decodeHexString(c, "9ce16c8ba7e65d061b3cd4e2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1108c6cbc9227cfe9f1bc71d5e5a62df032a8bc8f96afd34ad4348254263f9528b3a564cce8cc3773841e25652d415c8c723013e392490ad8b8a4af7b052a537114afa5b7b34d067fac674f8d9fefaea7626ca04dc4025d49a55ff3821502bad6ae644e96d6c16beed3a209ee4f81371"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_3(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c711979849f2ac221e09a8d583fc8aea14cbed3bc3610ea2"),
		nonce:           decodeHexString(c, "662b94e01e557db42d04163c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8ef303d36fd31070f836af719fc36c34df0de52ee760261a909bd6a1ff80f4be8be5b9ac8f6c5cdf2f8cd9624d92461bd8c9306931c537162d4bcd81632b5d9d611c7b5eaa4c422249940bd7daac90c2a5fef9e2b7198583a85fe521740049a2a900f836c5086b131630938b71389103"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_4(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9e32307f0307ddba166b20e1adadd1d9209678a84c0cc42d"),
		nonce:           decodeHexString(c, "d5672f24c209be66d596e110"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7929d9a6a925693f1c363930e600b41e21af13c58b3e7bd4badaec4e4563563a3788165ca4c2965242c8212fe90a62948e727349acb4131f60b66e9c9a965ffe72e82df4d74c49b23c7224535535bdff4fd42bf341204fb3f5acf617f3185be4a9e49185eacc44c0b290fd2b5155dfb4"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_5(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e548d22a097e1d2c32633f2fbc3b42d4fd8218f1d5f973da"),
		nonce:           decodeHexString(c, "edbee16768a4b4e54c0cfec6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a1927d0652ab1ffccccac434b5d22dba891622c75f4e383336ad180416adfbd68722ed6f63c0f6b34a2a427a87dd62f1df139abe2a0f48e80dd9aca0c6a6eaaf746a89bf965522c6f91b7e653a2c0cbf12fec6a1288abd4997c85682a500db0a6f7ebe98c9f0e8a5b7a00811edded092"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_6(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "34912165f33d3b3c63dddcd17d0bf5a0c789b54cc5abfaa2"),
		nonce:           decodeHexString(c, "a1fdc19ec11766bce95221a6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3f96e8dd99851979743c0caf99e40c9eb604803b45a2457e331d4a688950912888abfa23ae15f233b5648180d7d89eefe49a0ee8e6caeb7c21fef7615bea2640c48d5441acfd6c883d8bd0bc47dd5a5f1a1b9e4ab1b1c2e963418b35bc4bc994d1edbd40719094800847f4e7407c89d9"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_7(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "00eaae3aab4866a4198aafc76d7822bbe92563770df281db"),
		nonce:           decodeHexString(c, "7e2257ebb3294ce85410a7ba"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "72e97d7dab6afe13df5c66822a57b80fa651721c83efb97ebaba112ac7c632a9239fc19f707a2a8871671eb60df465afc495d099bdda21ec117ed3c7e46316b0d9d9fd443f8b2bb3ddb2753338b7627ed9ee5c9f0ad02174dfd7e1c704577214ba1103d3ad97c40bb34458cd10c11b5a"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_8(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a87af23ab0a9e5b9d85b467eaf313a6fd264120f9c46e4e5"),
		nonce:           decodeHexString(c, "39ef754427d169b779cf926a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f1bf2596fe551f4370a0adc27855a784bdd953746b892ec1053ea1615b304ad2bd2e57b150f167b0edfef2aeeb0b821107588e6fac002e664b71cafb79ae5e30d0f9fcfb22d96e5d205ae485fa6ebc6d3892fd9617c71f1b028787524b3e528c0c9e6b7e157f91585513fe061fdef7fa"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_9(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e767b88e1f3309b52d786742fa9158f34883ef6995051eb7"),
		nonce:           decodeHexString(c, "679fe80305cd357589106435"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4f94f91f14844aa0f06d1126bd3e54ca7e0e353970c0fc77f39391b9400aed70471bd0bf9f458914658792c26c923d045d85b1618bc70155e665d23f441f2e01cf64094f3564a8893a07c5f1f9d1f7a904ed059d554c8561e869f59a0d89e25c770e2623b5ad793dc040a7760abae6a9"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_10(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "627a82e304483ce645b59717deabb782f03115ce7513539d"),
		nonce:           decodeHexString(c, "50360b296b8493afa8550710"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "034be2b6b71aa11d39e52970dae6ca3fbe6076d5915039e660f4def6da51bfbfe22864c88fc4e86e5f1a4b0d4628de7659f4238ec93d301b3d1cbde172bf675fb6479a463782e5691abacb4c9c1bde65a525d44ac986cbc94f0b229e76e524fb8c1790583a41f3ff8cdc59e414cdfcc7"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_11(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0dd73d1481466f7f6feb9fa43aa2f9c53e1a102056072830"),
		nonce:           decodeHexString(c, "6c0a28a9866f0fe64bcc6aa0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e9a42f4c90c3f190c41dd90cd26abf226c1da39529b8fb2680f2b65340b375c6753eab97ac42f65e71a5a92a8f08857bba3b13b06cb0686e4e62a3a80080867bbef67fde793de451adfff6e60434ebad8272d2d14cfe4f178d811e62eb45e53e5caade08c1db8c6f2d9133b5bd8aad9d"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_12(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e239c344ee1bddf16d0e01b644e35729a88aec9330c37563"),
		nonce:           decodeHexString(c, "82760380668b3e1d1b0f5536"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1b349479778dc46eb4511acb435a31344e4a62d596b61f5127bf93be7f1fe83db61907e4f692305c6b9bd45717e63c7bdc787f2153171c261787f980ef310bd122e68f2ecbf57aa07fc13f5f97771a05d71d98af6167471a9fe55f58bbbff0e019d683fbd9aabaa987ba5256c857b770"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_13(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b67ad5d53b269f1ffbd6cb0f0c2e10dbd71ea4ffd5cc02dc"),
		nonce:           decodeHexString(c, "7b18284cbad366d4023e0e5a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d632a5f015ceb58e7e56985f6367043828ba0422070d9a7a1ad8b5738576356f998351b571b260965d79c2dec654024152452656788ce6cb5fa79acf86deab8966f7abe500c6667ba9b514a8918524854138af5f1c2383cb70ddddb0461561076ec93c02bd1f464e93d2e188a5048084"),
	})
}

func (s *drbgSuite) TestHash80_SHA512_224_14(c *C) {
	s.testHash80_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "42623115c0a43edeab391ee8ac84c2b3b1bebba8a6040cd1"),
		nonce:           decodeHexString(c, "b79f5c377be52381210c1c2c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a59dcfa9585b1080cee51ee493fabc22394ccd0949e3a4d4e5b8d60e1137288d20f65e7f1ddc1345869e1af62562d6c11044bb65d11dc0071a04a2cd0eab76718ec9a67d4482acbc82ac27685b98c50064b41e120a35e5ca57ed1bed6963fdd03e26865ddd3217d67cdddbc990c5833c"),
	})
}

func (s *drbgSuite) testHash82_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash82_SHA512_224_0(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2f0af7cdf5e627402e65fa67975754b54b02ffe18ac2bfdc"),
		nonce:           decodeHexString(c, "a77bf219dc5379a37a99c715"),
		personalization: decodeHexString(c, "ed3b70e30ba4e29c14c6f5d0b14e898173ed519f38a8f76c"),
		expected:        decodeHexString(c, "ddbd262c7cb9c049d12057801e21a32408db3978d1b88bce0dbdd205bdb89da0293960d243047796884ac28514d523c5d07210567a351366639f79f9ddeabfc06630a14ed6df9dfdff62e82a79a59ec619598559053df328bf5921aa3e21f87400612cbb52a6c3cc56d3e0c36c784a58"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_1(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "72f987de64d4e20f09a599b180e1513c8488e21c7499c610"),
		nonce:           decodeHexString(c, "77ec128a5eae089e9d10eb74"),
		personalization: decodeHexString(c, "ca9060a3a37665c26274537d270e4bb8affd076ab64f48c4"),
		expected:        decodeHexString(c, "6bff81ece61034e05b84ee46518c0cdf3f6cbe4d6e10d1834cb0def74c9528b15acdb03f8749ac9b76886fef8c2f8b4f01818ae217d66dce7855b3785ba479a591b93e81c4456f6ab7f198159541211d8391f7e437c8867c247e98c27a349807213327ac0ebc79ff6ca5b720ba3c655d"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_2(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bb684cc81ae4bc31ed11a7c137e36edde3841ee8332099b4"),
		nonce:           decodeHexString(c, "a95a1834cca4759176498163"),
		personalization: decodeHexString(c, "6ece01ad5600c194873294b82601526425e38b0d2e41abc0"),
		expected:        decodeHexString(c, "fbae71283f422550f0f567d6ee6850ed1a394f4e6870707fbca4ec24449d4b8be9fe72a5e0b1d87be1c8b4c89b8d056a04d6b196504b61d470892e294339531dcb65b0c8b7c85e55f9654ea01b3bb6f9d46cf70375988dd9a292999104b7848b9490ab5da31a4a1bdac248c4ff239e25"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_3(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "724317287fc41a2c6ef20eb466fbd707cd0018ddee71c95d"),
		nonce:           decodeHexString(c, "283561a4b7e8aa80f83351af"),
		personalization: decodeHexString(c, "dec43db3496be4765f5a0e305a880c846b0a9e699a7d198a"),
		expected:        decodeHexString(c, "45e20c24122aba282bcf342a2fa42dc272ba3fa90aa8c7342118ebd0bd59dba2001d79f4f49574cc807e51fe6bf59bdd0b81191d122dbe521055e11e4729430d14553d0390176edac67a15a4cda0d2164063fe5570560e2c1d8099a255afbe77b218ad2172d53e0b7f9af3991120f9e7"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_4(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9e5a9a30661dee3b312c6239b68fe33c00348d169aa101ab"),
		nonce:           decodeHexString(c, "b7c24e79f475ae0ac0682ab8"),
		personalization: decodeHexString(c, "42be159ead7265245de53b7bca0c1592bdd8927448eba930"),
		expected:        decodeHexString(c, "fc6fa5b9f0aecf616f59645652626b3057841605264e2f34de81d771b44f47b6e943aae80412f2d3732bb4fdf09cc1a935669d92714fe0a2ac3fc05581724ab9bfe8f5a5b505413ea6d48a7bc1f7efc3064c1752e32d149f05b56a81d4a0065a997a98377c772cf3e7d097829bfb358a"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_5(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f2fafffafbe4147b41a25026638cb7c2551a19b95c37a1c5"),
		nonce:           decodeHexString(c, "3caf68f7be4c8d177cc12c7b"),
		personalization: decodeHexString(c, "1bacac297e2cb2dc292247c038e30f1c62714c35c33b6c23"),
		expected:        decodeHexString(c, "89088f1b2c2c2bd4375455a8a395ad657515d7ca8172ee2e5eaa3b02a86fd39fba00daf2906ea83485c8b21e6776f8cf379a70ea1cd83090e6257baf34a4d2580cce4f884b49e5fdf5d1c43713e42a3afc40971108ddc9b83d217bd9fcb7ac99e1f002285ee6c438e71420f75c45f444"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_6(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "933fad2d86855f427949b567231b0718001375e08a774df7"),
		nonce:           decodeHexString(c, "fb878fc9bb993a44aefb211a"),
		personalization: decodeHexString(c, "bf76e3e3097433f46348ef46bbc74d1629870884a7cbd905"),
		expected:        decodeHexString(c, "df59e6ca711d1b9ae21523058b3a0d59aa8aebf3d233d615d7e2eb85bf015936b3970f7037714af092e7310c25bae280784c51d11be2c29909041139aef75e1fde2df87879b11a62214011f967a1cfb44abe4bd47bb0cb18fd54673d3ff52e6a2fd480367e6123dce2af3e55f1c04041"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_7(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "186d0b34e0bcbb0413a5b6bec4fba5e9de5972289e978af1"),
		nonce:           decodeHexString(c, "8fc32990df17fe63d69d5dc2"),
		personalization: decodeHexString(c, "a56e6121891194848aec57e05e2d03552fcf497d688da69a"),
		expected:        decodeHexString(c, "5e2c291a793e5e2f4fd9305b104f41379f30600dd4c536a0b4aff9d0d7d5e98587a5f042e44d396c8e002b89bbf263ad6844b967da48490a566486d2fb07f6086384ca3e4116fc3b279571fabeb3c6de5489d2421540ce3702d84c6f390519149b2ec29c8a98f501f5838872671b871b"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_8(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ed30a0ff85b7850e00bd50b10cb25322ae463fe08916158a"),
		nonce:           decodeHexString(c, "9aa741c4faa9bd8150d12614"),
		personalization: decodeHexString(c, "e138f0bff72f7e1192dddb3e5f0bb36c49cf1335941df9fc"),
		expected:        decodeHexString(c, "bb1546b07894dbdb7eedac4487a84c08ffed37d1183e8f9f18616609a1c0aefae244f740249e930c9f66f8c16ee3f5a58c323df5bf0b58bb020c7e903d06a6c1af96066da1b3e744bcfa3445c99bb3c3edc6e832001a70773dffc5dbe001bfdaf3b3987a6dbe905acf7f15c9228188d5"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_9(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "eafb4ead0744a60ec5349c4f6c997afd9410a3510513b821"),
		nonce:           decodeHexString(c, "6b236aa2e650229561cba5f4"),
		personalization: decodeHexString(c, "c6d3a51e61733a124d4580515cbfe48214f6538862f3cee4"),
		expected:        decodeHexString(c, "0282a5b8cf8a2895bee135ded99ecd62f9f82badc61cf5d1b98850693e920caff4aaac69667d2c2d705cc818fb0ce7c7a87b289eab60d7a1f75dc963b6f0b2badea43b75f1df470dd540a7eee5edb082320a9799b3863e873eca71287c50f01743dd46a3cbb8bd50b292e0e48e1e33d0"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_10(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3251085c799a617933c43263559d4079bab2066c12c175ac"),
		nonce:           decodeHexString(c, "f876fc6367bb50e29a65ae27"),
		personalization: decodeHexString(c, "4ea8910480e2f10f01322173d4bf56e78fd28e5a5ea76dce"),
		expected:        decodeHexString(c, "0db26f82dc278cdfe28018720a21b08f054205022819cf509bcab48726eabf2333208d06604b0ec58e75c0019cc0db64dfd51d42e4652b062f97402c5c9e97be30258ac93cce34f5eb72b46b8ac0e1463a4f91354ef3a0e728e2553bba05f483652ca09f3cc760afdd32887d8281e4c2"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_11(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bffe08de3c6ada50493bf7710c4f76901b29d4f5085e75d8"),
		nonce:           decodeHexString(c, "9fe7b08be59ea8f984f7bb22"),
		personalization: decodeHexString(c, "50c5baeb68259df26e9393376015446fa64f13e53ef99802"),
		expected:        decodeHexString(c, "0405a18d3c876fb3d492096e55ab18f2c2d871f6cf877d6aaac4f0b10f7ec94d1f0fde299b1fe20a93b7bf5b5cee8afb8311c7af0f590f9210dc93ab2ffd5be8afb6917bdd54fc8bb829c68065b02394b3e14c91cb6d45727d09225156d4d74aed091d349784193b26504977baf8968a"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_12(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "baedf1669fb2adad3cf4dc057f165445f88dc2ad8d10b0fc"),
		nonce:           decodeHexString(c, "a06e451ab4aa19365f6593ac"),
		personalization: decodeHexString(c, "96ddb2bafaaff6992a320c37ba30e6775cb4968791f0da2d"),
		expected:        decodeHexString(c, "0b4bcd441f192f1497a435b12153a52d3d3a27adcffd87bf366de3d1f7fc2909091eeacbcd8b3bd7b110a410cdd24e70eb7b993b72fe69e606c9e67ea7fe1e75ddf4f2d8833e79914d1cfc4b2f9d75e4f251980b2e99460bb9026b8c1021dca83f7396aca5be746515ee8476aedddf33"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_13(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7d829378240e77befd623cc191b42c0353dbad49556b6868"),
		nonce:           decodeHexString(c, "ff36e29ff50e871aa2c219d6"),
		personalization: decodeHexString(c, "418df77501e64240b3af94b01e623d3c1dbc04cfe89ef1bc"),
		expected:        decodeHexString(c, "57743e47cc9d88534cbf28dfa195f6080d73b5fb202382cb2ada100f3522fa89f8b0b1639ca7229fa7c44ab0dda3a064ab217f0793027bc88d119ff056d66558c7bc63db483703056c01bc73986ef5854c265f5d2894aa12cb684773008f51ddf761119dbcb8376fb1f3540200fb0916"),
	})
}

func (s *drbgSuite) TestHash82_SHA512_224_14(c *C) {
	s.testHash82_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "65b70b238a1a7107b83c1b9f1270bf1ab4ab454690f3333f"),
		nonce:           decodeHexString(c, "f2435f70e075f8044d4235cb"),
		personalization: decodeHexString(c, "80fa0ec5a3a1b46cd639ae19c137239ba8113db33984c593"),
		expected:        decodeHexString(c, "e547f6d8cd665204f8ebf6d64ecaa23fcc59c1682eab3190bc76ad4981d68810833f1212965def4868883529c0bae4a2345da6a0e6a7e766d16022c6f371db8ad089d9227e3a85168d080c3ff2bdd604e7f8404a16268bd66d70f5fb164cee60f1af97bdb6e1d72059d7028a13ec83f5"),
	})
}

func (s *drbgSuite) testHash84_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash84_SHA512_224_0(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9adba4f888747eb59b4754790ad681ef015fe6707acc4740"),
		nonce:           decodeHexString(c, "042ca5d6914bda92b9cae9ad"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ee99b96d6babe910dd8e042cc028dc0c76fd63929463569687669b47b22f8472a3da67b6bfd48320970cd61d2a7a06dc62e0cf496aa4e75bee83eda197f164fa275f2d9043c2bde8c87fd1b0c8673f8793e66c7ff26ecaa22c1b79ec5fa8f525474247e80bde3690d48d0381d6a484e1"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_1(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "16697879a21c21091bddfa6c27aacdf456af7949607d19a1"),
		nonce:           decodeHexString(c, "d96f230702adaa8dd09ca95f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c82a5a60a240858db67812df34bf1e5b5c7ae6d9d1d2d9cbd0aad4d50eaf1ac4029215ab2081fa802b359e87dcebc7517e61a5ab239bd8e9e82a670b9fdf101cb04c2d40f9743324aecc5e83d26cbbcd1d4d6262135f34eecd17c2093b9614eb52d77c1d57b6ad51956af395c4d7a05f"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_2(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "acb035ec4597de66d5b298ade97e01094dd21cbbd1b2eb14"),
		nonce:           decodeHexString(c, "b5129b90c1f942a078d07186"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b51a58d7d8fa7bb83fd1c871c954a141555e1e01f73b67c13a613a8a7b65736ab6205bb63bd3c95c8d94a29883b4d1349307baa781a3e2e1346537aafe98d040538609831d86424067eb3515f4d34c1d7c8ecfd48b7e1d00b71c370697f2870bd3e2c9ee65beef855f5e1520dbee119d"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_3(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dbf353cc5d0522f8fbe08752c7d6c9f67f8def3720837aec"),
		nonce:           decodeHexString(c, "922f28b3c7f11cb1bfc2151a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bc720a1a5a27beb5963992537ab2434da6547867b8a6fdf2bcc902fc54e5ad282f4277964536973f9c080226b6ac6333b216dd60ae015e0af1b8081cdf4782df65aaaf138e1c02322bb4a14900cb624c887b453a9607e79b8d9c8b630f4f8f9f5915c4159931f9c4252d92db3bb7a0e8"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_4(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3ade8164ddc5518c56b8e27dd12d729808441543093d2071"),
		nonce:           decodeHexString(c, "fc55f735f052a912d8d844d1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bc305a5dbe0de0c96540f3392f06120457aa12001fb1090d2871ed682196d63333c68767dddd760c5aa033d802573166ee5af4b8449b93dee686632a771070dc7767ad4feb798080951a1f5de6847843dd4a5e81f8f6c7ec17725f2bf1375508b4b1b9a2e74b8f7ec52251cbf855a866"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_5(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "075804484a8e276ae130d319724f6902ce63916e2bfd8ca6"),
		nonce:           decodeHexString(c, "22390f15a33ad072e6317986"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "19c343c0b156f023de9dd804335220cd0132ae69471fed0327a678a5ab1199f7a9492a2295f69a6e1ce7b7771c1dcc6d2ac7f10108104aa22b8e413883f59cd8b4fce06e17ee767a9d35a7b4a3bf415c926e39c0a4a3a151630b06a6277700b24c7644587e126966a0ec401452bb2805"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_6(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c48b3edd0eaa59b5b597e33d06686d45ebd07558ed706cd8"),
		nonce:           decodeHexString(c, "a674b554357ecbf7f11b8224"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9e7dc7c3a48c6da3f2e48f6e4ce8d19843f384b2dddc99ea78e8a79780d37a2f04cefe31c106b593c5b8ce5fb63314488feeeb2dc6bf0b46ef62456bc0c8717e5873c8ee78788f8892f10a62de78ffe63491dfdcc7069cc81e9c2a5b70bcc807d9797f926d5aef5c42c53b7608bb5b87"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_7(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5783bc44e7581781a6a7a91a251b277b3aa9bdfdf79fcaf7"),
		nonce:           decodeHexString(c, "1262f4e9c5df985b33359de6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0985885ac635d9361f1d3f8a08d0c3222713e689186ed6d761618a8843bb3f2c4d8831eacc70926cdc2c125603ca4c9190f387e0da5e72565b7530259f58d85e24765ea4059a26a0f3136ac03811166b57c876c529deb268e031a2b49405b695ad1165d66dddebecf9a96737f184ce63"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_8(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "729e8de3d5f8a92856d9f537c1ac4f06f4806f79bb795e5d"),
		nonce:           decodeHexString(c, "48e8bcb81b45d6b2a5402df1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d8af0382834c7a2f22a40831c827135f1ec801cbc2f5fea3575695a585bf12a0ee7f09b9a0143181493f9ccf027d8be81b99077f035e7d26ea78a83456fa208a1fe70a7239c40607e946ff00094c867ac9db36182c25cd7717202c0f71a20c486816d5ae628aa89c181894468dbb81d5"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_9(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7b8b66ad077aa353bccea7c2053591e08f961a1c13dd757c"),
		nonce:           decodeHexString(c, "d96a36123fec868284ffa6e2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2cb858bbcc3722b3839d7c179375e43a30198a1528942135ea8c3aa36560635b80379f96a17154853bf75731cca14cc506d5e547d5e1d7b5af972507a4392580ee59f5b1c9ced155c0ff61c9d4790d03e870d52125c29f9827baebdeff34b1c8d8b586439e3dc42990787350428cb0ae"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_10(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a5961a00f82563e89384310d53fbafd2ff3b1c8d729b5c3b"),
		nonce:           decodeHexString(c, "8ea1871eb02020da39751fc2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "59b33b69aaf52948cdcd0a408788a0eadeba9d40198d43b815897a71adb441ddcd09276795250b527427c72d15acfd7c1e9bca417b1f079b4b25ff0876f051322dded8b39aefebdb24b11baac8659ea83afc363d9f1eda7dfb5e973e5736467c551089db74b796437afbd5e6f0248bef"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_11(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a961b933a1c9ad696659e5e87f5b2d92bc470666fa3ae13c"),
		nonce:           decodeHexString(c, "81ee1293cdc958aa629cbb3e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f9138e627879ef1dd36acbbaaf8c7a23cd52a4f0adae38cd47a8082458a085da585fa87402c9ae333a28f50bf33865737a8db85ee9dd2a4c86a7bb4d0d4c47c5bb57ace31df78b11cb2835a6ff7187a0a322883b28215a532306fd8c380bae23e13605052f737fb5bd8a5ab0327931c8"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_12(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8db9ff5b00e13418a902135f279e268ab923d1554008b29b"),
		nonce:           decodeHexString(c, "fc8c8af3aee6b77c4a8eebf1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "2a5389db0f0c697d32ae0cc477bae8c92a670e19b7e431783ad6c4e7fa6572aecb40d04ee87a23491ed38a2207e90c44fd3cd1271b470690aa5f4eafcc834aef64a1f8d98c4b4b8592f17ce95badaa4e75fc95c32ff52fe66bc611d312eb008e7d22c7eea53894b955030d4b842e7680"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_13(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f859ceded81b96ab234189739ad6454bdaed399822d14fcd"),
		nonce:           decodeHexString(c, "42b14df0f8f9a1690f3bee46"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8835761208b138ca1720296e1849e32e1a02859d9ea76298eac19cccc3663ec9308a2b68ebd4d18024d4f39ce560a0bd3aed9c52d53db1b53baded8b2d24f1ed5807caac9ceb6595cfa024815d32cb871ddb71a03b116906be43b5c7890729abf5d6379333e24e78192659774b2e3165"),
	})
}

func (s *drbgSuite) TestHash84_SHA512_224_14(c *C) {
	s.testHash84_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3879ca720aaebb2a29c99c0aa21d63308b44677f2bbe6056"),
		nonce:           decodeHexString(c, "2642dd7030605b3608f4513e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b7ddc2d0295a550e44103ffe7e6e1771cd488fa2ea32b091076085284edb870220e02ba6facdf27d8b34209048d0aa4cce4556c074fc7ec2c3691b95aac3f47c3b42bee3c2e35da17b040188d47b7effef8ac471a669f29e6c4b97ff6836cb9fd8954f57309a97e9a697e061010525a1"),
	})
}

func (s *drbgSuite) testHash86_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash86_SHA512_224_0(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6e6710c92a30ecc014c1aa6f22b0951cc0430ca16255accf"),
		nonce:           decodeHexString(c, "45b5b13de6920a077b2810cd"),
		personalization: decodeHexString(c, "007f8d3fed0d3ca512ddbd457fdda84b8fa4aadb64ccf03b"),
		expected:        decodeHexString(c, "fd5ac10678a82e72b59b4b980d43e3113f27bd37982974477f700d73996c04d357c3e56f9e62c4d1c78d921efbde081d6ad0ff62e3a5816084d7206cb4bbc95b8f7f6fa2e73e5644f7a6801b603b730564b523c9b078c36cfb2ab6cbf05a0777f4ea99be0b75d02277a577032dfa6c16"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_1(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "af06de911970172cae8fbdba5d68a704d45a2b66fa10a64a"),
		nonce:           decodeHexString(c, "9c150019343b6121c7ecadc9"),
		personalization: decodeHexString(c, "fd2d79e8d237b56c423496e093f3c0eec3d42d6d495f5867"),
		expected:        decodeHexString(c, "58c46b3be593b27bd9a291a2f0bb2fbaefc50f4713dabcb30696d5bcb088d042697ac2b3209b5eeca580ed218ea277edd9fc79323f891d471a84e6c45bfb161594b8be949eb7502d3815ec88b164ce1469bd78a1a733aa3549258e64a5856b0faadaf084f9e69f0a437f47a9bb363ad6"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_2(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4436c8a1af7823cd4a7a45ee0e69d711d403e74ec6c69c96"),
		nonce:           decodeHexString(c, "55df37296d72605af0bef1cb"),
		personalization: decodeHexString(c, "24d2cb8ac193a62ab79e06221871a6f0c01e8ecf4dcda0fa"),
		expected:        decodeHexString(c, "af29c84946f492f67d6f7f8772c12745a1683d48692b7b76108c4f1b5f64acf9aa7c6cdbd11dcb5247bf7f3914a147d845ede06afd4861dab3fbbd3245107adca4c4f462674b05dd5ba6264b5606b5a4fc1c1775024b38b86025706db7927d2525a2277b06e0fffe92c141e452cc39b3"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_3(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "785124d2a657d0d9c7aced67d052af7ef3ed276e99f3a134"),
		nonce:           decodeHexString(c, "8580660681ccc094d999e906"),
		personalization: decodeHexString(c, "1d05ee577ead88fac87d5e5d6fecb3e995acf859d01bf923"),
		expected:        decodeHexString(c, "46ca8576b7667fed06438c9cdf248eac2b4dec8f8b8ddd301b907a0498e754095aa3afb8199bc1fec276e93289c3fa3a976bb84cf41bf0cc243ac9b9513bce3a65abbfe8d8c338fad7e889d3ecc4a036d188efbad6da1fa8fa63e6d861aaa2d752f123df6a8ad56fd3e113ac15970c49"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_4(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5e3c0551e9f8b7ade059965154ddfba00cd29ba005c30e4c"),
		nonce:           decodeHexString(c, "4bc4b1b444f4456a689d1d79"),
		personalization: decodeHexString(c, "d11f62673361a7118820e1b9e64ed62432b56e31bc6bd4aa"),
		expected:        decodeHexString(c, "e4219a090ede86c2a34b8565d09364a1015a979221ae2df30a835df57de44a2ff32971f9878566597366c4201387f7fea93589b910bb82d99227ef64f7af6294ac5a434794ca1f0432c92677d171fa5d870c77d2108dc38508fb580577da77bcac39cdfd64187e2779bb59807392b809"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_5(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "daff5ef6e2c193348c5ea64796a7e6788b8654a8309d200f"),
		nonce:           decodeHexString(c, "62c6606f4ae3a6fc4aac397b"),
		personalization: decodeHexString(c, "41178dc742ff695cbab25da273a5aff44d0499133a3b2246"),
		expected:        decodeHexString(c, "36c11234660c94260a06c6f7bcf2d9bb655656e5a383759d15f5c5dd4b6e48f7168bef004efffc3ae365652964a7ee7a885ac29f6f6b9ccb51ac77e35078040dc6cff7ec03d01d8ac5a2ed16058af9cbe5740cef6073cf43f88daeb6504af3c8e6511ec2036d2e353f034614e32b19a8"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_6(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a9c1318ff59a561728c9f26924acef51ecf46e75b2d9a7e9"),
		nonce:           decodeHexString(c, "8582f0d6eb3e3f465a5ad313"),
		personalization: decodeHexString(c, "cbb5a1319fcc9d0a9b96da31f626c2ae533aecc93f35faba"),
		expected:        decodeHexString(c, "a7d61a982c64fa7674f97172be791ce0b364a2e32e364b8df1cfec75291ecec19d599bf5c4ab9735240817d7c52b46c6a2e2ba05f9ffff9b19d742e056c3aa82e7be015d7b86dc99036a3dfa729cf078fa5ccb9e2bccd79142a4607f4fc94ff78d951581be4e9935f0861623bd06eb0c"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_7(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2eb43ca2539335eedca293dbcb9d5bdab627a66afbe7c108"),
		nonce:           decodeHexString(c, "06b3aa48769d3d8d2dc8bfbd"),
		personalization: decodeHexString(c, "a052b0dbd0df209714085f49d786b6033871296ef64b85dd"),
		expected:        decodeHexString(c, "81d156ff0d3c8575f406f890d81f409ca8aa128b56e73ad890dc1f36a0b466d4af3e78747e106cff7b17f27ae95b73ba8aa09aa3608b3be5877641fbeddbd5aa26ad0bc9152a57a4f75bdcbad8dc74f5ecc8cea6852c078cd9639515a9333e3e426ccfcf452eebbd4b7ff399ad58afb5"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_8(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0de760c9c3d76e864339b5490db818e4e6db41c63a41665f"),
		nonce:           decodeHexString(c, "bb1a29370c6e57eac8f646c7"),
		personalization: decodeHexString(c, "e6b33288a0f6413bc826f398f8bd6c12201a60c16c2c26ef"),
		expected:        decodeHexString(c, "655ad7daacd83cb1890ebbd6ef5095d8a4faaf5f6583609fbd9d9cb59204148c6b732109028cc1ca56a1708938fd835b3f841aabff5179590612671ed7ac48b48c87defa49811d95b5bb88246e9f8c1b246be6066d94865cf29e228a8a686b820cd7d762752cf9da15adc8066b161274"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_9(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8313933bbb67aca8534cacf25dac26e9be0150ebf7e74d91"),
		nonce:           decodeHexString(c, "3d9627615e1ea6d5d74afc0d"),
		personalization: decodeHexString(c, "11a3c0b1c19cb1d81d4ac4a99132ef87ed2ea757463ead56"),
		expected:        decodeHexString(c, "ab5b3171983d19ffad762c932fe89640d5c4fc0dd27f87f85240a80ac59a08b55a62b4b4ecf4d3cd11232a2435d4b8c803df6b70cb801671dc45b5fec76d48bb4f55ba91aa942fda880cb2bd8c3dea412b0c3f872b35299fb80298ef5b81d22e84c4b60479b5421b5f9f2d2b9a8c6f8c"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_10(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7eb8a42a6d3b773856fdd615fa8f0faaf265d09ddd831d9f"),
		nonce:           decodeHexString(c, "3ebc730446b23afab85fd0cf"),
		personalization: decodeHexString(c, "8d2883a3a40a4a849b79b9cef7da2fcc1e5ffe2b4e8e10ad"),
		expected:        decodeHexString(c, "50a43bf5120962bb141fa7d9dd669112aceb00b5ae6adacc6047f7fe1693bd11b1f915219c023061867bf1bec19c2d3849ea3c566d1c3c491540c5c84b4727e73b12c9e1bc4cca577f6b2cd3c9b626fe91672f0ab624f76a1e13cffe1e2daa513c75982a8e7c6b2f3044c21c6159c924"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_11(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "75d715ed43edc2506564c06e7dcd3ee6c6f111ad999b2488"),
		nonce:           decodeHexString(c, "c00a2e3c32ed1e0b2e435dc8"),
		personalization: decodeHexString(c, "0b906a36230c92785838d09a03cb8a0ece30138d61cc11c4"),
		expected:        decodeHexString(c, "51328103fd7e7ed67aeda05059570892d775205282ea925292e8febe64c01bdfe16e2f6afbf7de7323c337f7faca3f253485430c8d3e5f7086a647cad2e307cb80b9725d57ad60c8046b16de0c29d310085465baf966041b6065d72519f92a637a486e43a39199545a8b1ebd097986ae"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_12(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "54891fc89ab7805b3129c70ecad75c5331bb821b8f1c3b1f"),
		nonce:           decodeHexString(c, "69187d8c108c876b1c283aa5"),
		personalization: decodeHexString(c, "62d69ea0f81954352f554587533838e6193165f36b7ee737"),
		expected:        decodeHexString(c, "ad82de4dad4beb78281d29a0e34e369c4f35de269eadffe95fcd4a44e6dfbd311587f80acc869cb84eebbc48b75d7cd83e3a790cac2f5b92e97c0ffe4bc08a5c5ec38460f79736d978dc53758b6598ea6debda6068121ac1804b2ea6e684b9cda6e8786b6432632ede5fb40dad7e0f20"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_13(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7dc68690b5a7cbc776c59419326d3fd8dc343dcd91d922f7"),
		nonce:           decodeHexString(c, "6d72bc54cd426fe51815d88c"),
		personalization: decodeHexString(c, "665f6e331d0a7bf0bef0cefb47bbb41485618b97f116c7d2"),
		expected:        decodeHexString(c, "f502a71908f9396591cf21b2f3cbad59f7253af8964cedeab7d307140dc4baabc3831015e9498aa5657b11b22953a0b24da5e4e53ce9db4125ba325d270339c34e50af89df0e1370ab2c40a3989cc222d68ab14c443ddeee929b78841b02c82b922d5a88ded6c9b5a7d8a47d4b4fc397"),
	})
}

func (s *drbgSuite) TestHash86_SHA512_224_14(c *C) {
	s.testHash86_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "23c19b9ac1ae1ce4bba0c0262fffb615d010b317f7013ff5"),
		nonce:           decodeHexString(c, "ddb5c0cd2b4b640898c2fd1a"),
		personalization: decodeHexString(c, "a096d62f947314691cfb647cc2f331af834cbcdd5918f099"),
		expected:        decodeHexString(c, "dc9175fb05854708739c3da005592ada29d408ed6162dd278ee457bd3304e4f7011355da2302df1d0d190ef846cadaccfa5325d3f71c407ab2434d65d815dafa6ca15f7e701a104225a839f2fa9874ad49bbdbee576b1bc71ace28c825095510890861c851bb79e2e2e922c3ac22fcde"),
	})
}

func (s *drbgSuite) testHash88_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash88_SHA512_224_0(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a1eea5996a5a9bc30ef4d3a83a07aaf3e29bfc5070835d69"),
		nonce:           decodeHexString(c, "dd272151121d5c5a851173ba"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "340a081e6a7b044485ddb306c8aa26133a6d88dbd068bb622fc9c627f3d5b92cb783a6720907c50518963c911d836ebfbfb530e85b7ddc00dc9e262922b5354841ee4ce13c67cebbf768131d189c4093577b31ce136839c60052a4a57109cac049d7057764fe9c63d8f13ae2201bcb3a"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_1(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "90b6ee9f10d340cc43ae5edf72a9219c96ac7d9efd91648d"),
		nonce:           decodeHexString(c, "da5032b93360b0cf804d90e8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5a1daf8c44000fc7a21f3868411b5f0a0366669a3620e0566dbd10f5b43f7b8d827fea6ad97361a0c8c5d90f1eddc9642107451e0aee275e30d9cee80bee182fbf4cfcfb647eb32de8cd3dbdde58ed4eac8b74cdd391e16f26885bd049a889341a37e8bc5e6fa56bcaa4bd81597534ca"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_2(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d8de4335819ef3e045145887e3ee56390171764276e82280"),
		nonce:           decodeHexString(c, "89ec41b62c811bcaf403257c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7377c76bfe76fd807582e066e629386980398fd2dd93a3bfcd476a626e1a46b7f72da48603a0800702debe1e50ebf4fbb2583854b179c242eab345f156cd1050c136cc5a59fa1a8ba160e793623ca665bd9b22488ff018713315a0e5fe0e6f86321fcff5ef753002e8a3253e849de9c5"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_3(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4a0f5b66c344f6a603f90073d1aebe5ac69fb88af67a27b5"),
		nonce:           decodeHexString(c, "8ffdd2352cbcb4408c8b4fe1"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "eb3b6f7bf9f4431e44a7265f562968d762a298513110066b226f3f7c8c7821eb00d3caf950ae9002301ed3ce20bb473f76160251017830e7605c3160e2b83dfdd516e20b00f9f34070af76b8efdd23019fb976a3daacad8bcf158c82b3f2519907156ab978d15beccaae43b807ea60e3"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_4(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2bfcd1971a175e5a6e21920ec52791753eb1089875fab23a"),
		nonce:           decodeHexString(c, "81921e9cd6d27afab41e57ab"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a2bee41f3f38e2f356c82e461edb05218585eeb3325016d4d2bddd538e585aaeaf9b09dc652317b47f961a6ac424b28f4600f525e73689ee871d016e78c5d49e1a250409eae07a29371c43357b95d0bd9a02ffeb9541790344dfc91fe204bee47a8faf70dc2f885590f2a1a18d5a534b"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_5(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9f09d96326362aa176874095dba668ec83deb995c17eceda"),
		nonce:           decodeHexString(c, "6e17699a0d655f4752d25f69"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7bed096952b285b372f208a300b142c479d89a22b6098eb4b90d6a3b299977e2429a9461c71e7b9926a0774125475dbc8f0c1c127c916b2ca32bee8e8c28bb6a8390915763346b29a01fdb313c617ca91f382467befb89f5e58a63b1e3f826c1fda9d953709e0d91109309ba07bcc2ae"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_6(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b244d85a21073232c82c821823f196d292bad5295c922423"),
		nonce:           decodeHexString(c, "4ade801e3750dd91dbbe4173"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "44cbe6ea80ca8c9107de7733fdccafa6aa285ea82fd26b778cc2b93c652b3173bf9eb7988fb872e82794fbcc83ef0b83644d0c8f84012174cd1accff643fb57dd9ba992cba911081ceb3f67e654a4a2044195f16ad1092c095d52c1ba5b04964e2fc46f30a59ee8a5aff41cbf00ddef6"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_7(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "261495e2cce8181f414ae5f02a5dc80332b06424b5d23676"),
		nonce:           decodeHexString(c, "c995ae783f33905a315030ce"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c5ac2bab9d7a3e0e016f3400b5878826b85df58988a03969ee3ee240a717215050518ab17f276d8bead20d2591ed6fe4b98d00e74e264c2924ef5fef18fe39d7443f94edaf831736b52e8eebd89afc2331e1d5411c59216b310c99ae1219dc3375a87ac7820cd590f162f766df21361f"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_8(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "60198ce36d280b35c8a944d36ca19297e980ca5241b35056"),
		nonce:           decodeHexString(c, "ea5d96bad5525bff0db96ec8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "62402bacf66838c7fd7f69eb9af3bd6c7c6c88a346338fa340d1245af69a935e1d0a8ddd98e38958cdac357bfd1ce65652db99416d6e0a9ed1757b5167ad23bc14629fdf0422598df93c3996298e7dff16a0c02b75a6dae1b459d5398424ea930b016a538b14cf05f3509479af9d4f4b"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_9(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c1e02fd43b86dcdcb40e454e1630f44d673974165e67f3ff"),
		nonce:           decodeHexString(c, "b2b3a26dcd32751d517f81ea"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b884469b1b9f63b73499ec814685df4c794ef0db26864bced7ee6cb7206882a44d230e5fd6ff3a539397d3d099ab1116307ac94f7b16a041699838985c89dfc60eab5016055b0605aea3779d00918f0ebb8eb575f50b46061ad578fcd785e3ed639a3bae07533eaf6b0baba2db1438af"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_10(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f07143d93991f1f2a320505309c15cb2732e84cfa76ca1c4"),
		nonce:           decodeHexString(c, "228282541a29052f64617903"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6bd0cafac285894ad2d2d4399eebb2d44a133d1cc65832e674b7b601e75527611e5d7f9716c624cb026936d7f9aef9300245e061407345ca0da411ab3e21104738c32afc62f8944ae2040db6eef6d5caf57a36b1baa48458a064616f21c6dca5757ad5f880350dec8f5707a27cbd5b7b"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_11(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c41f4eb1d82e66940ed38e18dd372907ed1c579a5a92ad63"),
		nonce:           decodeHexString(c, "a0d3a5c0f8db3d6cfb9bc4fb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f2b2872a29ac51f4c5522408af7c7d66d909a557a79a027e7171a8714167776b5a372604371fedae1b173269fe7d8139b7f4093599736f8d9cb315820ac2061bef6869e97f3d33f7fb79ba57bcea537cbf0a96869dac4a69cda5ddad47ed5d96880c222e461e5ec2b1f4813749a94372"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_12(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "970c52538b1d5ccf06c66de93301cc139bdd90307c05d357"),
		nonce:           decodeHexString(c, "6fcbc09b40f49f502e3bb557"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f509589df9d4734a333e04b2a920703b9daddc16da84bb798f77a26500d584d99099042ce5cd784c57135a26470864873b83707ea9e0adc7bb8e930d5184184985348c44a23ba2a81a4188909d80a88b611322fe621f53e0c2a0c0312bddfdd793d1eff95e4a3e620f83a3e41fa8a7cc"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_13(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "cfaaa279e934c56f0f5be56aeed7d634aa1d4d3b423a2027"),
		nonce:           decodeHexString(c, "efa4ec5a62f2d9eebac36340"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cc15948050d2b54c4275155a37930aeec88c9e023c07bb7d2bac4c1368f11fb171fa39c4cfdd16d1bdb20530897e379072179686afa8f32c2837920fe6d4bd62d23da391dceb5b3e46accf7d51a621d550f5648b857bd0f8b91e89a3ad887f8fdb64cf943982f2ed718c29ec7343d3c6"),
	})
}

func (s *drbgSuite) TestHash88_SHA512_224_14(c *C) {
	s.testHash88_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7ce7dd98c93953a8b60d395a68f03b8919931031e8f68bb9"),
		nonce:           decodeHexString(c, "1c217188f9c7980b8b03b41b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "58884a4316fe8104459bb339a4bac08d95461ad8e58f333eae5ceeecbf2d375e8fbb82eb1d29890ee0c56037bbbac8cd8e202d7ef05ed7126a15064699b9dfd4523782aabc6eaf21f1727d02c1311f5812c4b4294827a75f1cd6e6dcc73ba45ea8fc5f2647dff725f5fd9bc64d7b21ec"),
	})
}

func (s *drbgSuite) testHash90_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash90_SHA512_224_0(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d2c3aecd6b8e486cb76eab38e5ebc37b5070f6a790e092b0"),
		nonce:           decodeHexString(c, "0f64a8baea52bd3afc8b5dcb"),
		personalization: decodeHexString(c, "858ef40692b7f7e62f3169fa8a13c98d8f6933e50ebc8c75"),
		expected:        decodeHexString(c, "d12a8f8f008459664f44c573591dac13151f862af5577578e3e38289743b8a080b907806cc44f9c47332b1003da2c21486395bfa81ff6187cf8ad8810d35606376e099a1933ab6852209573c8d8a0e4352dea51caf95052e5f6486ea14789e4d2c05c9472f1183686340ce301f4fb6c9"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_1(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "91bcbadfff067f44a0cb9a1b4f8f438e03c9b0843e27ac3e"),
		nonce:           decodeHexString(c, "c291985430f9c5b07fa1eeeb"),
		personalization: decodeHexString(c, "c641e0b1ec8f43159bad85cfd577ce65ff567ba7d00f20bc"),
		expected:        decodeHexString(c, "3a511c4bb4f326ac0ce253c4c34051bad1b06fc6b7bb047af3fa49be2c2786390d513aa787de6dc249d3cb6c8559774f477af2cb0046d2e0d75fbff5be4e7d31bf148df55339e1c1c08e96529eea8cb931a17625605c0e4d52c4c8360f33149e5baeac5aacd9b7515ea53035ba15fe31"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_2(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bae11100f3b038d02df5504ec3586710b453b141d03ea2b3"),
		nonce:           decodeHexString(c, "24f397b2eaa88a79b4c3f5e9"),
		personalization: decodeHexString(c, "1f83c3423b5e0cf93f47c5c9f6cbd572868c3eee4598a631"),
		expected:        decodeHexString(c, "bdf0c385401bff132bfc64bcf6f61bb337450f5e3e7c74b062c2ddaa657e5b29ff1bc65a9052b1cf9d620d999dc9031ced8b301f09dcaa0a830ff5f93f837dd118126e89f7c1f589f65de29bae3eea425f4e7409b79885f7724d21ceb52677e4c823e37632a03b9ae46fba675ce4a02a"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_3(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c2db152b8262365b4bf4aa660b3e070f12e6a14661224adb"),
		nonce:           decodeHexString(c, "a5b7010cf753eff0d8a2c1cc"),
		personalization: decodeHexString(c, "723f791c5149d19889df6a7fd26e6f3515e929c573f4ee9d"),
		expected:        decodeHexString(c, "4f83a33fe344b532956bc1b8434b013245e125493748f6e607c5169fc05e2474c703f688e896cb518d2c97d732de8f9d71b1d21e83483875f81069ca46d276e0f205079006d8589b70792abf143e141cc9b806c5209f4b531c6638393d61194e5d0525aac52372aefba937dfb4cf6b8f"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_4(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7c4c298c6f162ef881e9efaf353c1919d2ff61c663e799ef"),
		nonce:           decodeHexString(c, "a8de0d8f94afa79c44743eb3"),
		personalization: decodeHexString(c, "c9950f64970dffdbe517d6223402230c46cd2f1e56a3dc7d"),
		expected:        decodeHexString(c, "190f43d2b90ef83a1aeb14d400e6ccf549ef524bb4e3497a7b3e3cd013091049da732ce906f038cf8b44ca9a2c4ec932af1713e225a5a0d4e0263a04258cf205e94826cc855bda050e45ca63d0f77011b0f8b8f4d3a6ed13b3192f1c1bf77a0b640c038821f11d41b4f88b91d068ee1f"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_5(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "946d612a20f4faaf16e3426e903da5a6aac3c3f5d2929684"),
		nonce:           decodeHexString(c, "87a348f5273c351adcee6d84"),
		personalization: decodeHexString(c, "473125a5f41e02787ac3aed779d82879767bc0b99e9d229e"),
		expected:        decodeHexString(c, "269a92f3f76485d79ac532157b1db86857e47d06d31a9baed10f77ac14535ec3755f0d62d5ac7a319afed2c97e80f763d1a34d9081c930a51e0ecca69de5993603c8fecf48d2724daf0beee1a2121b46a722184201a1e1d458f546ac2ad7efac9f6b1dc04b86d6fd3f338b73e51c0dac"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_6(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a2195db288fcf466dcfdd2dfa28eb5f179523432c44a8d9e"),
		nonce:           decodeHexString(c, "9c646dda740c309373503d49"),
		personalization: decodeHexString(c, "b653612c7c4c76f2a4280ba9b7bcd7a9ca4b457734429e95"),
		expected:        decodeHexString(c, "0c0304e64f89c28a21312d33e41852d66dd0fa0b3182d72a7700218f733f9800919c5c797f0954b06225e98b1141b3195c65ed24b2a6803d8fb61ffe122101844b452ba5393abb4761c958a048a62632648a5fbd814e42b1085fcb90b73671066ea0469b50b8ccb26ab8ef248b6e7f9d"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_7(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "09f28af22f2c439fff5c6af171b86d9201c7dce8b2405570"),
		nonce:           decodeHexString(c, "27c07db1c3e3678af7382b3d"),
		personalization: decodeHexString(c, "6df87edc7dfdf3083d217487b89aa47447ca9affbe5e5592"),
		expected:        decodeHexString(c, "002be4fe83c41eb3049a9f1557047862e041bd60cd35b294c7482de1c91461dd533fe4e214f2df61010785d468f73e1f869197a4d88a630ef6d2a5d3c0b50b4b7fec387010f6343676f6a04bc6e508d8433fd3fc4312584c8b7199866cac5ba3e7284f5bb7da65d7cc88e8d3d49b82a7"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_8(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d8a0bc2b9ce7d23d94d6ee904a0dff1473b11316f851cd16"),
		nonce:           decodeHexString(c, "ff15280c224aa6aae3066f65"),
		personalization: decodeHexString(c, "1e3022cab1cbe04de0ab9c8ad2998db3553b8b608c3d3c1a"),
		expected:        decodeHexString(c, "20d424dc6924a19008a710de4665193bf83faebd4f239731a3bab01fd4b990c9770ca8d361cca9af6125fef5f5043717b3647e74a44258365cd729b958b17ea92ff7cb5f4c87c131dc6bdb67dbd85bb7c663738e1ea9b4b94f169488b1f4fc1bbaedcd259909b85ce5c7d5531bc8c65b"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_9(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bdba37524b555c142daa35562079fcbf08166f09a439f69e"),
		nonce:           decodeHexString(c, "3aa829e7919f1c9eb09a63e1"),
		personalization: decodeHexString(c, "f3649eb1152ced76f287fb5415dab4930fd29e84e05b1186"),
		expected:        decodeHexString(c, "3bad1871d40135e270f1378381e09301b3411e5a4a8d3347724e5189c1e92ab74414541ab8e3ac140133534611200332a05020163b77f757a4ffdeff7e3b85a50eeeb42689b3476bf63ec6b904a4c2a60be64e5f934e0de23f86261e2a5b8fd2c4d2657711fdf3c4fb59051a6d8e639a"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_10(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0d889f0d95587ded8068472717b617c8ceb69298db344b6f"),
		nonce:           decodeHexString(c, "fa8bffc02a360841b4d3fc46"),
		personalization: decodeHexString(c, "19d290761d2856e9c1e1dd2b35679d0cc1a0757c1a21408d"),
		expected:        decodeHexString(c, "d655db972f521ccc3055c4887093f7321fc21cd0f035020f4c15be34fbc64ab68a2bde5294f6e5e3f64b6f38e1b49e05d7c0c4972e8c9a6331ce1c6db742d6be2447306f47ffd2ae1df9389a150f0961be5077fc0362995b6fe0ba36693b6a41cc79c25ea0f75bb45a8ef54160e0f47a"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_11(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5405f8b990b109536745533c43bd0126be9dfe88c17d50b2"),
		nonce:           decodeHexString(c, "29f019f96913ff7ea46ccef3"),
		personalization: decodeHexString(c, "991e58db922e1cd06211a35b393fef2ff78f114e70e33cec"),
		expected:        decodeHexString(c, "b8688fbb263c38db01dac9d67051fce737fb6acb6ccadd44e56d40a2d1d20e84b895021ef44c45c04175bc8f11ab3620d685c65b24bafcd1b064929c87b465266b99b6c038c912b4aedb237f2a7eadeeb096fa2399156bc2da6d4375683753f81fe18fc8ac0fc2472a20ed6f243a6a04"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_12(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "388955e39a1d0c84effd224f8637ddeb2dc6250fd2aa3237"),
		nonce:           decodeHexString(c, "43df01675b45d6af47f02901"),
		personalization: decodeHexString(c, "536d92cfd3cc5ba79ad4717d04a694bcc4ed6d911ac715c7"),
		expected:        decodeHexString(c, "aee2949fc76d80fc2faf4d8afee1d3be3a131d6c106601e7f43b22a28983320a8ee0880f72efae6c172bdf208d06231a2d17a497207bb922210e850d2d1a03037f5a71c058fb170d91eb96dd9f31ed5970382c7b7929f5a8abe495ae57562683faf889fcfec8074c574224de29e7d5f2"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_13(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dbc97c6aab6ae3674b4f962adc755265dfb525364477b160"),
		nonce:           decodeHexString(c, "e7cfab7d59f5dff3d69d04be"),
		personalization: decodeHexString(c, "102ce2c09246c041187d63a17fc7bf25463903b27b5af110"),
		expected:        decodeHexString(c, "c58d25782af2737c8ff81b9b98d63e1f7ce58afdee6ec032450669dd1ed9f0878fd31471f937a6af7fb81c1a81fce4bd8b4523c369798b1cd8b6477d5bedfbcfbf7fc35cfa2db9ba0e22837aa8f71bca9f5c41613d839175739c1d1384fb615a0364ae5a6ef8bed781944e0dfca6a6e9"),
	})
}

func (s *drbgSuite) TestHash90_SHA512_224_14(c *C) {
	s.testHash90_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3a32dc87d05cf806884f2ee71e881d8d2bdb4f3f07784ae3"),
		nonce:           decodeHexString(c, "2b884a75ff571f92ba1eb965"),
		personalization: decodeHexString(c, "273f3885354c0a8296b0862e19157fbad69578ec121cecbb"),
		expected:        decodeHexString(c, "b60362ddfbb4fc41f4f5ef353fc0fd8f31e139876a3af0e69f9049aca46a5989ee3a1ebb6cf14f525c3d8a944f4e88e030e020ef6551289c93f5c6ca2f6bc495cdf49ac91bb86e4766ccbace5f7aba008390d2b6dfd416d63ebfe07f5d583b8f9916ebb54620953d0b73c136de06f520"),
	})
}

func (s *drbgSuite) testHash92_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash92_SHA512_224_0(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "71fc858e73ed787eadaa38733cb5ffeb072eea80b09c9e7e"),
		nonce:           decodeHexString(c, "f848717a0473168fc4371814"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a52ce6f1b31d66992e2dd6c5e57894f764a088564f6891b24d5ac7c8521b735e6728cb95b7c23f1ed03ebe39644fd3006f2e2da22311b0923f024eed0af5e359a27d6b59044b14f394f19a68d221971c6e9143753a85fcef5f245ce9acc971972f3c67336c5ea6c34a61fefdd9962ea7"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_1(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "587028c1e8f76ce745e9689ccc118674be36c7204d41d21f"),
		nonce:           decodeHexString(c, "e925267d28e1dd4e6fe4514d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "296eab44fab0bf62c413e5296fcf1f07d454d7df9e925f42b05c6b648012262fb04eb8920538515ce6bcf2504982c0fcb63db4bcf63ca8eadd58bedf89b59abfe6242ed7cfea2c3fb4d12b4d84be4b5849e71a8269cd03facf61bc27aa2d4cd99bb91265aa54dd03d134bfb9cf832a7c"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_2(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bb03984a46eee7f2a41530b4a96af56aca2e04dbf1dcba4b"),
		nonce:           decodeHexString(c, "ecc5aeb62fb194c02c9677a7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "83000ef8474b2b642bdde0ab1063d229e74931ec2d053041ef1fb84cd3ecbf07a5c4069455592387d7437ca8fdc7549f763c7a18e5caf76ddcc7e17e0c9dcd4530307a5f3d38ca33d331370b4605a9fd1e1295ec0c5d7bb6c1c70aa1a63b6da8a5fbedef0c572ef18056ddf536a391db"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_3(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "57dbdea7bb92a12135c8c4001f1efcf7c54cb12d44451dd8"),
		nonce:           decodeHexString(c, "db4eda7e3e6aa1f69c84fe6c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a232d6906f05acba7cdcb03084ffcdf4e56a7bf7e654d42e07ae7710f6dae9d1f92df02f249ad5f8e7313e93fa14fad64d17f0143c5035e5715606131dd1e1f6dce0128af84eb707ac64601a0de966dd0a64b370206dd00cba6aab2f7e3cad5bc6522030bece4596706fa142e95e1afb"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_4(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "906af4f88938fc8fbda3319724ec2cc413b5ac17290f3401"),
		nonce:           decodeHexString(c, "b2aeca9df80294d337480dd6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a2ee18e606e12f92accf27ff587a8655bd2ff6afd2b9d0e53693deaa7086911ae6c5895cc794953323bdc70e383b33571bcfb67d9aca27f2cf63b2243e31f7c5cbe848b22b5f90eaf1f5a5d92eff4304f42d5b3d4799dc24e47b0030adcb468a497f8b688989160d4f5005d9809a5aaf"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_5(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dd1e5493cf766a4b496452f2116cba41ccc8f57f6cb95a14"),
		nonce:           decodeHexString(c, "bff415595d30532918ad8ba8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7babe6d85ac651a036074cc31a14b9b37409544a6ced441b4c473e97c5c91443ad68910762f5faf3ca9fa3a258d7e24a779eec41397d34c106baf31cc709a5b043f0ea90962b388d5746806669c6e93b999a96d23a9c87a8eddab6eee46cd546b868fbf8cb101ebfe7d5fe36b557b4af"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_6(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "758e40e00995ad2876689112071d646986533b2ab411b3a3"),
		nonce:           decodeHexString(c, "525ec489a9567c31cd4ce1c6"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9fa00f4eb8b1cce59bb7949429ad926eeea463014ca69fd7ba1ab2dbe181fb535bfa3a891844dc4075c3638f8503a18144a6697e6b097027e1e06fbf0a652c55fca4abad84f5184da6a5377d37d29d7f8c938fa2fc9d0ae187d46e2b1b2ca64ccc568a6c551cabb490977932427fdc90"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_7(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "39926ef11aa90d6b9f65c298313f27ce31bf845d721bbda4"),
		nonce:           decodeHexString(c, "5d6d2d9c6393365b811065ad"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "188a62988ead6121186fe2f44203de6ee5de2f52335bc003587cfdc676b8e86acf84a3538de7c81471e20efcd1cc0e14169b71d5288e4664718ab6c2d04037447e7178a3ce6f28ecf8bcb411e3d3ff6be89ab28291838325872435aad78f3856e25bbf33854fdc7a973c08106d6fbe00"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_8(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dbc63ed9d56330ac6bd00ed75929ac14c4a59d8a0aee93cb"),
		nonce:           decodeHexString(c, "eaf3f72ddc566e85377d5f98"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9bf07006aab508c74ddf9dbd56f98f961568a84d7704f08caa32f1ef7c40647166bf77b25f036a0e59d7d5898b461fdff9b343094b8fa5ea697632fb71906cfb36fccce0e62b1afa59832375a09bac40ae79d762b4bc6a912599d93a6d1cbe4a577bc8d0f734dc21b992c7dee5c8516c"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_9(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "64127714968ddc1027b41e5d6dab51459aa682134b228c5c"),
		nonce:           decodeHexString(c, "bd4dd19ddfbfb63269b657bd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "b90349b768786c8563211362410aaabeb969c0780955b50d7eeab669eaa7c86871ae777121c1fa6ba3dcb9474fafe41ad1e573b86310fc86e09abcaa6ecc89d8b0bef1c57981f4b673fef68473e9a2fa14c3e5cb42d0d37407bc99a661197469648e6706005d347d5e5dd905a6d698ab"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_10(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c2f31a71e59f642244b2739e4cedc85a94f4027b743d7e98"),
		nonce:           decodeHexString(c, "b73f789e070f663b13f304dd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dca57d85851119dabf202831440511b3d162760ce0c6f0613ef16ed5c92babcc989b42e7b4ea5f9c374e81f5803e2febeea8b19df3de2041a80f1887c335f93a6710334ed47bea388629447e12c9d58fb1274fbe9476a1448f2bd92f2b7cf11dc8c55949774adeed4796cf40239d6e1b"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_11(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "84896a00a3e8174deeab5dd358266d58c59586490b6267ca"),
		nonce:           decodeHexString(c, "ee0bf931d1e7572f1f25338a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5feb955aa6720e98353eb0e59786857c8bf5a04e63610d975e74aa4304c5dabc9c0d2d2aa93e44b23751c1814d164cfe6e816aa3f6212e42c5316edd2fe85f60640656e5233a54dfb287efea2d78666c9ba7cbbe45147ccce53813dc0ff449292e7f83e069b827a241c07e8bed4289d4"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_12(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "409025abc3da1f7b1583e66a0d5bd971b2ff583cfbd036c2"),
		nonce:           decodeHexString(c, "d00af7fc331768ffd71fb90e"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "757f23e57616b0bf3fd7be2d2f339c056052b43ef537fc925cff33d7112f1e2e6c244f2a7dc441f9b22249c39ad21b9ad41d3b8789b5a0f1d307a0178ca89afc2dabd08e6809246d48bd251fbf830b67036d94c0bcb395ec03a9f454e2d34e4445b2286e69876b2b2cc822030ecfb52b"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_13(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f8ffee199676bdf335d2effa3a407dbd79ac61c42c7cf3fc"),
		nonce:           decodeHexString(c, "a75aee976130194789ba4478"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ea9a1cdfe63628be6fed5de00024130c5c4a5047081f8805e23a5ab3cd7f18d2f874a1da2dcb6dfcac7e7c170ec6884a80f50bc9aa792774c7f076868ea0809fb9e843de4ef5a7654777c4ab4b99e234a0bd4b76cba943a4dd70a8d045b9f6913f9ac57eaa105f29e5b8395c60292b29"),
	})
}

func (s *drbgSuite) TestHash92_SHA512_224_14(c *C) {
	s.testHash92_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e03af342db03da30e2b0e5b8ed76c2562194417fbf6be645"),
		nonce:           decodeHexString(c, "6a9a5188dabd510894073f76"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7963276f1054db251369a0b91d854fabaa3dd5b2343ef4306cf897bf964fc8b885908c4ada163b929a19c948ac89c8480170eb59b9a8d7d2d30ddfd1248e2c1795c69da81fe72d6361d34754f88eeffca2c31859bc8940d6662abe2622fdfcc28a1764355aaf46a2e00e50606af2b6be"),
	})
}

func (s *drbgSuite) testHash94_SHA512_224(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHash94_SHA512_224_0(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "82f80722b82936a3a90f7371f92ed1d8a17521598653b38d"),
		nonce:           decodeHexString(c, "b67742c5943422e7b6e74dd5"),
		personalization: decodeHexString(c, "207e1f982da78ae5f0612517efac3a13f024aef04f20509e"),
		expected:        decodeHexString(c, "91de62aab4ba484d0b419e7211a44d2665f4800a166d8621a33452506c3753aae6142b27cef8247a7170ad9a3b777e175b852e3b493fe100c5cec89c819d6dd59b42d7deb411b5d4a9b9538a1dd051e195098ef4b0a23b55351276e2adc88395140514c6a9266ff32de25b911d7e18cc"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_1(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4d6d79e80207e6f7bc2f34be3b701b84b0ef3c778629a46f"),
		nonce:           decodeHexString(c, "9e0e534a3f9a2afe7bf48896"),
		personalization: decodeHexString(c, "55abdb0275ba50f84b63a96bff7938e999a4f2087c2c0768"),
		expected:        decodeHexString(c, "a404ed0511d6046f84cf8c6e97cfd335ab4d28d0a1880da9a15b523ce5ed3edff6f2371134f55ac29c4f1c730ea0bc6566edcd3c5a848fc85f7b8bef501f055f254af6bd1361b7d0ee0397d60db1135956750669f891d993760bc38715932f36207c9caff81601aecbf68c1da3104adc"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_2(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2e71accf7079a2544a44abc2b92441b73da66aac771be4ad"),
		nonce:           decodeHexString(c, "12f5d93b63e468e3b3307cea"),
		personalization: decodeHexString(c, "76d40812c4a48bc75fb234d6eaaa5ab2ba8fff7f04f78ff7"),
		expected:        decodeHexString(c, "0e28a5c44e4e7c979f34af183cbe6bdf95376064db25198f0990d45a4ff50ddefb0f248257bbb3199e9f046081b9f55abf68f3c7703e4de4ec0750c2a7fc934b0ad13ad7412936bb907a33f65cf0b25e06cd6b23486feff09afd1cbea3115d210ef6fcd01e8ac2924c8a658fb40d50b3"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_3(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8c199b3019a1dedeb9bf42d55fa6349b378878f33f8c9074"),
		nonce:           decodeHexString(c, "5251ee36a7b5f8d676a19eb3"),
		personalization: decodeHexString(c, "cdea66ba0ce12cd4f98c2127c048ae8701aa7641e09f4cf5"),
		expected:        decodeHexString(c, "2ecc11dd488d9e1f7eb4c50f501abb9702abba33e2727dec27f3baa2117bf793da57cb3304102549d5f405fd72af1a9bb557d34cea00dfec681dd4ee4673807af4774616894762ff8e9634246b5dd6147398b7640e86e00993245d9575368c841c94b83a9d8aa8ad87bd7ff20f1a01d5"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_4(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "03a6b9b143701e2b668accb182d2326319173b4a911856da"),
		nonce:           decodeHexString(c, "b2c5cc00d378472f661e9aeb"),
		personalization: decodeHexString(c, "d00bcda132b614d8025214bef489fcfeec9a532f16a9873c"),
		expected:        decodeHexString(c, "b65c54cc7aceb322190c7228075e3811321168a8063fb0081dfb0c7bb52b4d83f81906f18f90b946de23af0871b9afbfa4cb749d5c7b2818d4a753a57cd270145671071704f6d3aced07864a3a443c11b232390bd8959476243526de19408fd3e96a598d1ed40230f8c8a3aafa48a0ab"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_5(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8785e1954572dd3ba178144856f7c3a8f6c2d9ec4c903941"),
		nonce:           decodeHexString(c, "06c4e1c7eebe745b0c045e95"),
		personalization: decodeHexString(c, "7d500869fe79ee995b47701d0027a8439907b7a67c31259c"),
		expected:        decodeHexString(c, "943431f66d874d8cbb1eb93b14fb10506e16f7eaf7cc5c09b60011fe4491796a16ccbcae76a4a31e16c13ea661036246017dd52fe32afc5ab0b688bedea23c02c30d02bdd1d086cd4a5c843b54908f5eeb7a11f1a29c6d31dfa4d004a66ccc8520c3f016077c4904836df207b924cca7"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_6(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3d744caadf5e12dac7ee05b2716485ce3d6ffe74be1e61d1"),
		nonce:           decodeHexString(c, "d68ac7fbd4608bdd8d60808f"),
		personalization: decodeHexString(c, "6153c6eec875c7336c05ae17caa9aee71e74de74ce6d8760"),
		expected:        decodeHexString(c, "ddc959d5cc7b9bf9cc50de20d450b2b91fee5ac90c416218933a90d453bf448e391d0df88021032db82ac82a79ae218aef0d622a370ab69140b79896b27de188aa6563dd7e8ed9dc7ace1b15860e3ae944bcc249a4ba9353a2512a55abad2cea26cb6c3811d835960764d143eb21cacc"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_7(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7b2dc2121cc9f905afae63d19c012b37589aa5a1959ac85f"),
		nonce:           decodeHexString(c, "bcdfff8bc3171a2c708437f9"),
		personalization: decodeHexString(c, "22bb071709a9dd5a91ad11c8aab5c8d33ec6ad362486330f"),
		expected:        decodeHexString(c, "f4a63180ba722f70204c9f65058863a56761fc76c9078fc28f5a5bb945d878c61dfac1af2598ec333113aa4301fe652b13a80f7e39c1cad0f9ea3a555888f0b942517cfc576e2c1d08b64a0f18258a1692d3f24376147847700c15d3690daa4b1fb76290be325ccc1445a0ce1bab5050"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_8(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "87301c8c4755737f7d4b53402f0aa6dde672f73335e388e6"),
		nonce:           decodeHexString(c, "8fac88676f79916cb94e7edc"),
		personalization: decodeHexString(c, "4822054e5b777ef1c84c22e9a64a902b50c3c792dbc54fbb"),
		expected:        decodeHexString(c, "15fdba37887729e1b41fc9476abb8091ce43d3bb695d50a949a889394d1a8afa81d28b18e748d630d5b685b655a06abd82c23e2e8e82b3de3e7dfdd0b065536917d649fa9b69805be4c4c53c6855ba98a9f4194e7fdc63cf1dcd08b2991dd9d417dfb5e245cc7b1fa4a432a3311e73a0"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_9(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c3066b5b1740731e553444ebd46109e1eab2f88f4e6ae6bd"),
		nonce:           decodeHexString(c, "01e9f3ef450b23f624304b41"),
		personalization: decodeHexString(c, "f395a173b9fe3598d7fe48606682a2147a7fc59c5cb84572"),
		expected:        decodeHexString(c, "9a7aa949fceb393736655a43c27a138d0ea49eb6be7ff4076444bf9d3d36d8cad49506a90c347270cc00cd915087e55a683c3f1e0841561ef3cf923855eed9d61622cf08f906e026eddede5d025b6e7862539136f1e9823cb0bf20d43c023a70130c0d73fd352e9e7e24f7b224038105"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_10(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e3aba0ed7bf3629d7ca5d39113c152841c19fe057704de63"),
		nonce:           decodeHexString(c, "9f60ce4f30f99d30459f5811"),
		personalization: decodeHexString(c, "8f1bb66a0f1c5138baed9c37158c0e04a6ecf7e5344c3c49"),
		expected:        decodeHexString(c, "e1cbba70b4dc058de330f33a7b9ee76656c72b4b102cd2a38b428216e708c7d8a403e9045407de2de7f1db07aad1000e69f6969d21b71b83f7502ed4e638563bb212db5be6daf94e645430dadf0b08d72ea726f6a1bb3eced96c75cb1c9202ade822e386c1f6024a2b5ad02f132971f4"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_11(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3e84bc6241f9af681846ec2937fd34c6353833048f548628"),
		nonce:           decodeHexString(c, "bd2e9b42fe60087ba3b00fc2"),
		personalization: decodeHexString(c, "76a6f3cf8da4ec437d4c2ac4433c0c5ea9e777702238642e"),
		expected:        decodeHexString(c, "bdb5d00d8ae3f94d931886023393aab4ef42967be2c67bd59c9b549f215e086809a6fefa6692f3ca56375acf5798ec7a400938ed34da2cbff1b3284446b42536844242061b4551e005b3e83e63b61494f87148699f149608745bf0a9df5296675e0026a1255365ba8f33adff8894a332"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_12(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1cbab75221a9c1cd75af7e6949b43eb3ceb07dc2895379fc"),
		nonce:           decodeHexString(c, "33764191bfe1e1085c3eb069"),
		personalization: decodeHexString(c, "8642a444814f7086d3271a1728ea6a4e6ad54a062fdcad2c"),
		expected:        decodeHexString(c, "7818e2068120a003279975ea5132d2e6b2477bcfe528052203d8f114537959eb45e6f64a71cd9bcc53e99213f1c6ed16d1fc874419cdb46ab32ddaf7219855fc54e8583f1502fcee1b6362ce40a46802e14745982c068b39b881d3aab21629e9fad97241dac2c1a13f07ed9dd3d1dddf"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_13(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "cc38ffbe80111dbda46003b743864f93ef26b297d95b20b4"),
		nonce:           decodeHexString(c, "5b25836b5ba143123661c6ff"),
		personalization: decodeHexString(c, "f1126463017cfde28aca230aacf02544f3e5b6815765e6f8"),
		expected:        decodeHexString(c, "c036c23671f7f3ebfe9e4c34afce5b892a668572223f86815867f423a9c2cc704b1428036e45913e029d621f9a5f8478dff2a57a87cba21c19fe969898c2cb97e267bb6fbca6cf86da2dd437ae46a54f1d0b094f476715b425b35bbe988b1b28e54e6ffea2d74b85fe3bf1c208ce34fe"),
	})
}

func (s *drbgSuite) TestHash94_SHA512_224_14(c *C) {
	s.testHash94_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "19970d8a70d136a19088c975ab0262e51d2cdc41792d402f"),
		nonce:           decodeHexString(c, "9dcc6c4317ff492d0d7dec5b"),
		personalization: decodeHexString(c, "7d30c5a4aa169c6dce156a8eaf000f9be0f8681e3282dbae"),
		expected:        decodeHexString(c, "550a9ad9e45ba359d463c1e084777bfb2ee25ff791070a87f01adc04cd1a7e9e6ef334e477fb5cadd82381e0add8a39ffc222150f17b8bb0d3b1cd80948c0a5ee09a84ccfff6c9ac33e6831d1a84182edac6bcc25fe357a708f78db9a88daf553914cdf0bc7a9b0527597f73707fec8e"),
	})
}

func (s *drbgSuite) testHash96_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash96_SHA512_256_0(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "44ce0a55dd28a430bc87627f2a06a391269c4294f10d65cc674b47a12cc9d6f6"),
		nonce:           decodeHexString(c, "c289eaa7eb8c0ec54d1a1d380f16def5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "c294640085507dee07b3a9e14c89a9d246370314b88ad7f22f5143132f953bbef8aeeef29dac7907c5f6da5f79f5e0cf89e9d63adc9f4eea7bef098d68389e681e9ff31dff03b26d6183bbcabad590cbdece476dc0cab3e6fcf85ac7c12149640e272cf85571aa2c638165df5553519116393a3c0ee3aed718d42380201d2c35"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_1(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "81db6e036142ee644359d026d3722abd944ef4f801091b7dac913b193df72743"),
		nonce:           decodeHexString(c, "194b73a2374a8f06ca8defafa55da78b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "698fe521f8d37410bcc2f084d5a4fd704440d0c9ce1dad1f06f2e8fd79107457a2f604f1f0b35c4579fd2da01cec3327b6f5c99ed3a64f9f972218cbbf0070e73d7f12eb67bf18b43a3291f3979f36188a201f7638e3bed7749abaca34b65a23a5ff4525097172ca397d718b0ca13aaad7c97295a466da743dafa035ca1481fb"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_2(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c819743d44b0c5154d1d448d3e7e0e02efa80dccea6f9843b15a668888da3d44"),
		nonce:           decodeHexString(c, "50e36ddc82ac6a685e8810ed0beab583"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "02be729982a0d8f619267b2d574c1b45e648d46fffca0068664f835e272c89a53b470f6dc2cce5b743b447a5a7be0d4c5a3246d648dd729dc181043025aa5b5f8c6f603e3d921460e1f1ae90b618c9522a63fba1b28c2766a504908faf091b2731a6ab04d2770a1dacb2de12f48449b7b9a720939efd83cfa07e2ed98e9dc919"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_3(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "85128e5cbacc89aaeb6351bd06044ea4672791007514d2c9e8a65d1174e2f483"),
		nonce:           decodeHexString(c, "a32f0d51f9ac809154bd794d913e3998"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1825f282561b15bae06e5b874fe809d7dab530dda79c024608453da8351a21315c2f32a226a4f3e50a6a7803eb6c7d1c0ef034af809965d9da39942b1688c45f5ec88ce2c80343710ae52906c0d864781e493ab70ef8bda30f513a912e98efa64e40cb6c8936bffe196f02bab50987d6777eb8812e930228777978735feee0ed"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_4(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "69a947c4df683cae4f7d0880ddd1b1ecf162ade97360711e75615fdbbe54a54e"),
		nonce:           decodeHexString(c, "a8a4136f9828abe10e9014555b092079"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0fc08cc068b5d4a3f90bf6cd7f6f5c9d5bd8101b46bd618b80ff62d524d00bde3bb115bf3f8b819ff0d898579d8eb2d3f94b0ad1ab39a5ec784ea47a480ddb1a34d7bc472194b28a6df40d3098e7b3a47218d487d50b3c648b71fd4d3ef6f09c1cdd6c60d3de6e34583e8c664ad3c84128b16124b962fc519fb5a0a3fe071a81"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_5(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b03e1c29ccc69746a5b4ce0d0900c98f471711b9bfe00a3f6496fd290f619e63"),
		nonce:           decodeHexString(c, "c1ebca6465ee352d159e489593de1b1b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1f0c7c8b4c182f1ce3a686b719439ccfee663f6f90bce5983b35d0680ad4d87ea865bba548f2e37f7670a8d2860f988372d3781386977819b9adf97c020655dece66bb88c027cd619b24e680f254571a2801544fa2d8b1207a8d431eff5fb32672c4df8fc143c6d4ba2614a3d601fa05730aa49b513389f01dcfd17b2541f597"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_6(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d89e696eda1436eab85b43264b484ed00614890ffa6db1890ee93e39c8b6c192"),
		nonce:           decodeHexString(c, "38a098244fbbcb2c1fde4b84a6c623ac"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e7aca2411dc9d15fe008864e1a8fad4a1c5d4d70ae324e102a35ffe798767948650fc34f23a42c1d2a779c7f6b44deb06144bab6ab1ef8664dabac9e86103233ad97164784ed23b878a223652da3ccb7d60396f1df945b6152233708c7ed22e8cc272709f33b4e21404b13dd33066f5557ced5415f3c860c55d1cf6ed32fe047"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_7(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e57a58fca96ad41884d89ef1433232bcb75f137747819959684081d754fe52dc"),
		nonce:           decodeHexString(c, "fc3de0c440a955bd19d1d0e3feb1582a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "7955e398bbe54f70bf430eedac37d5e8767a19088d5b41d4180e64f41b15dfcdc74d77b573030ad3ab29824b8bac5172d575e2fd035e7a8640a51536f26a3d8b0dcfbc92fd47e2f90cf9a125c9e11a002debec0bb08e27790dd2977f11c67355b435d70bcd84ee0cb672850b65cdf75ead392c49740942b865a16ab501d36c0a"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_8(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d5f809f10e0fd0ad3ff770006734320d4894d790bd21b1b7536fdac5efb5ce58"),
		nonce:           decodeHexString(c, "03fe039e7e942a7728a11367a73f7a32"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "596420d1cf1296081f985bbc8d39bf7693890fb0995043ba548054e4a161c0cbf807f8ad7187cbb424302f4e41a33b9ddec8a8dc07bccc511519116e29958fbd2c842c528536bfd6cadf6e77f97112fb30b370d1312eef66a127d1de5ed85db0f56f8bcd9bdc7c1d0fdcfd578b4e17f34b63188cd74808847ef7c72b9289ce85"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_9(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a6c7c911cdb55e30a4378a9bc822a2addef16f8bf95cc8ecc23461fb22da0d83"),
		nonce:           decodeHexString(c, "3b3885f628e8ccdc6653b2100a626001"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dd26f2bd84bdd8545893359c9f97ab81f98a0b70d56a8c0f0f54f16cf7e9f5a3eaa18f326637ccd44111008d9c8fa028f2e9a2b65dd0f06fa07bf4f90231657158f901003b42e07db224bc2db5dfcbc64ea6c394e76bdb82e1f4747b2d8bd1908169c2938c9a4bae8de37110daaae12ea3b974f7c5637f68c9007442af04d791"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_10(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2d4602c7055b2fd556d342570611c679a3b0511f05a6fb548dec3a68abf39e8b"),
		nonce:           decodeHexString(c, "2abd4e48ae6216fb0d7c57149ad65c36"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ab8e4f28b147addd5a0a8b89f385b26d35c38e1e8d7956561c974197bebec46e9e1ff63ed57cda3037edc88a3ad1b891c4276f6c5ffb052def2cad96a274d68c9d63db2d9f3fdb367b0e79aa7bd631478b4d1c15d4d3a6aca9a4957fc15ff5cd7770955e6d58afe1cad201ab87248178d88b8d15d410790ec89600d551159f19"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_11(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5660c5540607a5e4e4f425b6ccb5e21a0d5ce831287250c0ec09530e6015a9ea"),
		nonce:           decodeHexString(c, "c7acad8bdd4aaf7c32920228e7f1292a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "00904c4dd19ae62eaf31ed2b15b90f158e5d6e5368e6e8b55580c95d9b6ce91b902d7bedcaa39d6741b7e0e01db3f2f713118a4534284bfc1d6f72e3e22443fbbdbffe869c3700352071f4926a58957f5bfcd0970585feedda6dfd0297a17375b43d5c27b5a3b2c9049ee9e825bb14e653235f710e01eed8decb792488646e2e"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_12(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a59be6b1032007ea49513ccf13989d3494bdf927b1d3f8be0b66611e7e65c08d"),
		nonce:           decodeHexString(c, "0f6777475ec852294ba42fb74dc97760"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "fe0e0248a9e9097689f39b043918db834011e15949ff5960898bbee0822a22556e84cb2098161e7ff5e8a4957a404bf704ac59fecb2d99acd0727400696fc1977f28bb702392614e79cb0820682215741058d6b2a7c96cf3d35b357c7361ed5e614193b781d81ad1e0c081947a13d30adf4710750c2535d82047d609701a81fd"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_13(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "476c950159ac9772eb7c477a3a5266c0e3b55c8f94a293268b53c3d4cb2d5490"),
		nonce:           decodeHexString(c, "369f60012a316ee36a0febfc0c8c508f"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bc433937b71f65d261167977afaf152ed57cd834c1367797e14c22277b4317d2478ee3ab2755d4ffe3a63f9325a21a5be13fde2d9a8521b5e8f3477d62160a42145dc368fd5e24f24b2e33aeccf4debeedae10c77606130b0c575c41147246ccf851d489e030c8f6795e25462450711c59839a4708984a0d7443149ff0a492bd"),
	})
}

func (s *drbgSuite) TestHash96_SHA512_256_14(c *C) {
	s.testHash96_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9021c403eada5eac222dc48e1437b6de48ca31b9e7e76fc5f60653a3d901308a"),
		nonce:           decodeHexString(c, "503b4bbc0ca538983285857a573f6166"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bca7456257568a178877bca602d331161828a4ed0758d1ec3febcc21717cc4142e5481dc9756c56099cb043130345689156cb96e1664ad007c461ef8b5b0fa7d18508541f528a43fe8c719f3a269ff2821ca655980579dfc2c794da673b8c9234d561b833855efc91b4747ea5135a1a05017543f5780f2cde8b472787173ec50"),
	})
}

func (s *drbgSuite) testHash98_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash98_SHA512_256_0(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e724ab61bd5e236354310c8e3b1c1cef587eacc99ea3411cd61e1e033c834e5d"),
		nonce:           decodeHexString(c, "2951ffc5d08e47040572ff1ba43493c0"),
		personalization: decodeHexString(c, "59bfffefbc2c23df1f33f6b6dd852039daa82ef64d219ba4ff2ab243652eb9a2"),
		expected:        decodeHexString(c, "d640ceacaf7a7fea51dcb22704cc6d93d042e4fc667189e891ce5a221b7911041240498c11a51ccfae98dbce4e7b0ee1b63db44b04f8349631dd935dd18b205a7197e4de79086902a2a85594213a95cf37cff5068b51f23bb6e99c2853ce57869d1032071459471d8a2103a620a76826749bed5428eb197176202e9bcfbb3ca2"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_1(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "08fb48fbca8c66b084be402d80196ddb171f70be1a0ef209139af642e98751ed"),
		nonce:           decodeHexString(c, "8b2e95f175103ebcb419531deedc47b0"),
		personalization: decodeHexString(c, "ebeb41167e04ece3f0ba908671174ae50a4c6e2f38ca97c8b45a89726c48776a"),
		expected:        decodeHexString(c, "35a47ade8f180524a3a2da52a1b41e196fd5fe2d7e8f4456383a459c8682b501fcea1a21b730c70f7f5979a1d15c22446131fbd41e661446ddc02090b90c37816345384eab418c7a9266b16a76df8eccd665211ec7a06cd276c1164442f23518f51196ab76486d2891d6fdde918ae66b84224d42c07936b4a00b92453f3ce633"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_2(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e1a456bf6ac6f942a82dde80ee33814d30cb920d3bc94126e583cd870caf15cf"),
		nonce:           decodeHexString(c, "76ebdb506909457b308be76e5a62a54f"),
		personalization: decodeHexString(c, "3ceee1ebc781a9cab0e04300c972ef69dc548ade6fd731ffd8c343d93d08d185"),
		expected:        decodeHexString(c, "57e56d0d7bd6f7197c7504f7a390603ead14ec6f13a4a744bdb9b296f08380dce9e0772f43de2009040da2506ec44b9dcd455c352515d17234333aca348c488242079b63dbaca2a6863f6b821c5840eebfd682c98619eeab05dad517584e0864d6be51df43da43f4ec1c95cf8164f8ee97f2c3776e99f2a3a21e6070f9b4ec60"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_3(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e25523d7266a5dd737b1e4ca76aaabffef4fc6fea945984e1c627b7eebc999fe"),
		nonce:           decodeHexString(c, "371c38983c6e99eddf211cf5d46e8355"),
		personalization: decodeHexString(c, "03ad49a7cf8a2df45f762af8d826d436a7f27c1840d53026a5ae3dfa00cd1346"),
		expected:        decodeHexString(c, "32d68a82bfca15f8f1ec6f237601fb3bdd2d0078269c863898c6494b7ded5cc3eb110e0c25836721cc22a105817029df725bb65482e8776c2619e9bb97a2dcf7ac6e30c3fcfe15afdc7ffb9eca24fa41ec8d076065521bbff417c670aceae43267785caec7e978d1d0705d32e5375da93c41b7cb68af3592ed6957f225da8cb1"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_4(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a81b323ec47b3112d08d51d3abcfd967b36380f0f9d233d9675309b8455c792e"),
		nonce:           decodeHexString(c, "8ef18e08c3f6f957f026296c61dd8077"),
		personalization: decodeHexString(c, "91c526dea9e0f80e46cc2a07f793fcf36397bf528e63a7fe4891becad029bb31"),
		expected:        decodeHexString(c, "ca8f58eb28693eafc2f1d2c111f87e864d2a59f7966420d5df510639b0af39cbb577969de697c0bd14c36dc946c60ca257cd365bacc740e09746c1c73264bec0370d4f9b9fdc7b8db7f38514c020993386153115c19f0bfe211151fb482934f3f226ddfee8a392a3feb7e8f3c8fd707fdd8b260dc34e0f6165f5f4c6d0ecb1aa"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_5(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f26f12b72b13316624c0981d40c8c9b21cd570c5bd7dcc2ed0d8d63e1bbd7dee"),
		nonce:           decodeHexString(c, "dddcaf5eca7cdc074325a6090f59259d"),
		personalization: decodeHexString(c, "464a49c5b2a999a791ca83107ac10ddd294c5ec8efdbf645072e4258f0ef2025"),
		expected:        decodeHexString(c, "71ef604646c91a59471f87d7f7e968f06b079008e7713189d75a0e5dfeca5c95a8b2612525ecae1233073fdca57f68a58ead71cc0c9830cae1eb4e6f136e850657b507e00d3abd1caba6c7b36d2dfd562872dfe1695e3283bf3759421d0f00c50c43712c33ad6e65089572b33402c8a75374009d934af66b6dc93390a037e3db"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_6(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8bfa430c3d068c53d4585dc8ec918ab63233e0f77a6b8515fcb34f6b0f4b6367"),
		nonce:           decodeHexString(c, "f00c91f2b479bc03426ba64975e1a3c7"),
		personalization: decodeHexString(c, "3377a98ebccd45729efe0c12ce23ddf7f6ecb91241b5b355fbc005ab1e2e9c9d"),
		expected:        decodeHexString(c, "cfac175dfe794093c1abc24e74718c5cfb08b6ffb542aacf4dc966aaed2d52cae48f85022977339edcbfccde88f6eb03c3f4dc789fb0401ac63257783740168b789159b2ab4bb56fa00d0365edc3208e70e6b0cdd535a403c12b54919095500c0267d9cc69ed1c354f34d5f8bbd4e1282f7f07b6b233dd3d11b04920f503d597"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_7(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e0b146dccdb2e37ff596a5091185833eb7fba5ef5524bde1ee0bc9158ef651dc"),
		nonce:           decodeHexString(c, "c07559a3718465d5c0f4a99eefb62324"),
		personalization: decodeHexString(c, "649f74cdb5f0301a7914d6535d3df548930c7e1427c75978508fed0471d39d45"),
		expected:        decodeHexString(c, "9e8bc8ad94a1c5b4d2b46c5f2c2055cbc896d34bcbae9fc05c9f5e03ae2749110b50b4539a91cbf57ac62ed0cf3f50e76623a869b519f5a3e4293d4950d6c2d77dc7a546413c8725d2e666e54c381d6d5f45a43672c480110c503a7bc388bcbaa0aa431db2e54159fa7790f71bed2a78cd9cd3795a37bc7eefde6b442f39ebc1"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_8(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "845fd8931c77e4bf47596f06e89c215254a399f1495c49945fad2c5cb36d330e"),
		nonce:           decodeHexString(c, "bfd5379edf92ded08630f328af6d8dd2"),
		personalization: decodeHexString(c, "d560adb65f7b844d95ffa0616add4354d3c6acb5853efdffea71f8f0fb883293"),
		expected:        decodeHexString(c, "c57fb3411dcb917b6ee4a1f77b38de618bc454f650952d59c9acfcab49933d2b034414c8ea8da47d77bb3d8594ac60595f63b9fb3e43c21257fc3cae7b47cd1b37171abc54602312dd1513bb43dadc84a6b37bf0c916e8ef51da7cf6d051b0c1290dcfc7c9791828b6d588e470729f4da568f30e739b327e64b1ea4cc6fae034"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_9(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "cbd7f084473c6168d48683b7944d4556ec2fa28742170586e75511af9180827f"),
		nonce:           decodeHexString(c, "74f44a86c386d27d9af962232348db03"),
		personalization: decodeHexString(c, "d513dca6b39458c8b1b9f2d2f74098f2efb1417fa7f73073f9a34fe13cb1fe9f"),
		expected:        decodeHexString(c, "d1cf18a8232761dd30370c31253e5daf1be13ca524591948e0059c4e13e4ddc292df631d5dc8249accf981a4b1fa62dabc456ff6e3f4a972d587f6751155564664004ad8d957fd5231302b79e3243f72a3e01a611696d347ce3ad9a5e18312b71334294ebf1305c5d67266583e3fc9b06992a9077470cdfb74807e44351b8970"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_10(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "aeb1ce335e02ac888506cdb89f484dceaf8e9a57b521d3dc47f03a82372a383e"),
		nonce:           decodeHexString(c, "70f20f150c35224dba780ea65657500e"),
		personalization: decodeHexString(c, "e53a56519c5bccdb4326510b314faf0954f5bee1aed96a3126f3b38a2a79e69b"),
		expected:        decodeHexString(c, "4ddf00587d70d1e9e35f252503e5e4a4b60ca6fd3de4fa4fc6f1dde8bffbcf60ee331bdae6fbf9d6ca9656e681cdcff243b66644e4808d71572b081760498604e32259c4a9d438c8134dbb8dfbb4ceb8913244e4516a36e8cf808ae4c91d65d56e5bd618db7a3ab438f3f6fb75136958a4a62b2e60d38545b177f90b9316087f"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_11(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "eb94dbfaffab3c835efca8f6a2622a20287dcad7bae8b479bc9b4eaab2728525"),
		nonce:           decodeHexString(c, "c3e3ca60398229280b765e0d0b53c3cc"),
		personalization: decodeHexString(c, "a2268c8f7bb66f717e5e5a5682cd31901a192848578f0ca41867231cb7b26594"),
		expected:        decodeHexString(c, "98be7dca4d36b878fdb708d367ccf9cbdc6075e06e3cc8c96d29e1ec5e01dd89d3a03e630b40bd1b4937fcea7386604bb64f4ac4effaff5f3037617a1ab52f3e0b89fd33d5b0e765f7234bce8f3efdff0c9c7000706ab96b22c673d9524fa6357d230fd12c77b490274641eeeefb6bc6aefb66a08d7522132250ceac3e8506b1"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_12(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "62a3be65cd40f626fa593c77f7fb098394f8d987e747691573fd170dc2863b37"),
		nonce:           decodeHexString(c, "38cbe852b48ebd1f07be7a2eee40ff62"),
		personalization: decodeHexString(c, "9f110af9f88ec6d2e0244b5a939aa8fef180c0dcf3aa53f4b31dae88595304df"),
		expected:        decodeHexString(c, "ab11fb7ff24f0fc05b13f6fc26dbecda3daf9157704c76a94a47ec9d4510a127dc60f9311306a0c02bb29d1bf7e01171743381774194728d9d0ba28ea8bb04d19eed67b205a7e511e71e3175c574d9dccae046ee9de2f38d360ba7816ba32f70ec2f7023e1b49de108483df1accae257e59b66b876cd5c2e590389ccd54e9b0e"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_13(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f7cd72cf750d99b41b08d1e88552119e9105cfa27c3038d1def40e919c63218e"),
		nonce:           decodeHexString(c, "3ef0bc4710cd8599dd342df67c4a6e74"),
		personalization: decodeHexString(c, "89550defa381aa25dfd1f60333c8a4d08acf784b538e13ec4718349fa7ba34d7"),
		expected:        decodeHexString(c, "e1bb1e2f3d4efb3378469779e538e1e1762c996361d14c400b198648a8d0ebb8700f73acc9d916c62f8ce74cc72357caf9d9d601c279de562c4e9e37b1b7cd45032ad93276bf785ca6022e3347a065811b2d34721d66bbe477aafa9d98dc3f5b34061d740434fdd682caff77934f4e00802c464bf645aff920d36a297e1f0474"),
	})
}

func (s *drbgSuite) TestHash98_SHA512_256_14(c *C) {
	s.testHash98_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7282abdbf2244658abe14be954a66476d48b06436c3fd7144a56d80a0f7df290"),
		nonce:           decodeHexString(c, "ef68efad369ca5fe791ad438cf9dbbd2"),
		personalization: decodeHexString(c, "012ff5b08fe14fad65ebad5f15d74fd72d8577115e5e91262043e85a13a3043b"),
		expected:        decodeHexString(c, "1779c05411254dc5ff714eb56332cdf9a378a160bf0a20ca2da9e4c3b4e3c425d2f08dc969bd4924560c8caf9686b27720307af8246e6cef20fcbc00cb1f137b6efe9902f9944c1384bf917675a52b7b816795327afc4896182a78d4664b98196f89c466d5fe1e2a54122035863c8bd61461b2ef9e7b469492ff63364b013dfb"),
	})
}

func (s *drbgSuite) testHash100_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash100_SHA512_256_0(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6b8959a8cddd935015cbeceb995c5418ddfa7611dbd75671d2dd1b5747936049"),
		nonce:           decodeHexString(c, "8273a47d99dfd7f6397e198551c1b065"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "d2b00bb883798f8b4db72f53ea28a6c87019085d858dead160cd7d7f59ebba333ad59542f1351998a1a5ee93d7bfc5a11c30898a7ae60a2a98a5b4c0421d86306c5357422362791eaa22d913a91f88805c34e97c5ccb0dce5182a68b429f46c9eab04a134e16af7967630dc53091269765a806f285192866d8b44b4910dd3134"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_1(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5c87b92d5bfdc04b6e7ea8c424588a0384797d71546be7772a8a1eb856742c5c"),
		nonce:           decodeHexString(c, "b6022d20ea5bb6873a66ae5b2ff35b4a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5274aacf6dafc0352e1362e0751ad929d789370e97c066c5c538b574666c5fc96a3d40682cd461929c9cb334e525c23a3ac64101c5ea992e94ee744a4ade3ea57e6ecb1a99ecd42a406ca5f9de7e57e6539955a80fed2a094d45095114427d2b156b390f9613845332067f49ddae05eb75977fadda554d65b229d390ba6a714c"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_2(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c7713c833739b3f814ca26478a80b4226c000311afce895b2d57ea1b2be62a2d"),
		nonce:           decodeHexString(c, "eabde28b11e5a74bea96bffbbff23372"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "081d6e1f6b07d7c1059e9d2dd94c7d05be33c197c476a6834c96e588341a363016468113f4cdc34b3192cafbff1dabddffc3e611db4f23dd5ae866521397f4f570f7bccd15b318eaee7f24981fc51d2eecfdd2cabca6cc24c38b97012517338c3b9ec9c19a2ec97b30a03cade30e941f351c4c18c05005376bba014168942c6a"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_3(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5288e404f724ac7c46decefc0abe0025a499b3c40b6205bf75188b56edb4080a"),
		nonce:           decodeHexString(c, "999fe785ca96a292c10ce6bf04c65fb3"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "abcdf9ee977cc5028d86c7fa3fbd5338a6223644e8083808f30e49c5f335d5654923fd26d84b972405d06bd4601c845a0b98cabeb87e25c8d24e063748b3e3fbf0c161faaf2f339efe54395509f1a5a04f698aca4010438cd3caa1648e84e934b067e0c9f1a9b5489d30edc160cc9633598f949e96bfdfefccacbdf104b0550a"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_4(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "bddca3bea89caad07d4738a9102e37db9eda2b6bbf49a26fbefafe1e489efec8"),
		nonce:           decodeHexString(c, "283b34d93edeccab93c19a64d1b6dc6c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "f98dd65a3f940062ef8c17ae1ccb0e592a7488913269450fdbfbce024b59fff234667ee811a73e8022c70bf4dfb70f02e334e1c5945e63e6164318f0cf64344fe8bc1107628a9335f718f0a4a8968054fe7311b2ffff9e25c0db8de396107f7d54acb8453aaf16a99dfa435e0fd2cd5e2e40011f5fc4ad335523ac0c530ccb90"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_5(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a65a81f933e09ff147e99539819ee8d9ccf0cef5c40c61d01355670161e5a21e"),
		nonce:           decodeHexString(c, "2c97bd8b2b1ca680bd30e5510178d389"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "caba65a5c56aa4bd9de518494d83dec8e0e7cf81edd57013be3ab8370dac3f5118f568a460dca8e126f3e197cffcfd88270e80de2630a8e0c8b921d8d4b49b59e2c69b0d84180920436bf53a6e87883986216c82e76a41ce1f0091007aa95ac98e1b24c86a945844d0024d22e66c5553d11ae09d72d7fe1e71634b3a18015f8b"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_6(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4ef4884ccaca2c0d21a0449945e4c4830cffb670de3230a94166b9aea851167f"),
		nonce:           decodeHexString(c, "7076c9ac76169ef2c86de3d57c310a37"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "321a73d3b018d1e7d56703ad895e83f95fe527c89e27aca2ab8880f27b93acef790698c3d8f03c463f5fc1424ebd83992bddbbd05da00d05ce8ae90122981d3df71d7a81f70ac6faf3b15d7e46d86182dca46d9708839696778fcc345a4d7b01b88a92f3592b7ed4f12be26e4046c3af82a5c369e98e085d6d30cd549801a63a"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_7(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ed0f1e9b57791a225f2f30bf3b6b23b5b7e3522891221f4104a3de50e64f253d"),
		nonce:           decodeHexString(c, "3b1511eac28053ba0e617ebe9e3a855d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "cbc2df37fd9c3ea926c75b516d1a23fe69e720903246e79035ddae60530bf21758246dbb404d4685c4cfcd4f678a9c30e59be13a3b4149a2de84d74daab47cadeb43eae79c2a40f5b30cc12450872f320087c5621ccfd94deb397be150ef69db4e8f8fc12899aa174d11b9223013ca887c427ac03f7c78419df940fd86b407fa"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_8(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f17065ca3d67cdc96ad35875bfb0c5ebc0a3b9a0b1229fac931b3b2bb94bdb8c"),
		nonce:           decodeHexString(c, "1bb5fb90d6bc99d68a121a506651e0a0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "0e49c041f17a7e9efce3a648635ec94b21e85ba0926705a46ad1ed9a6429ecbd75d846cd8aa493c70ee16b4064b4829ed71bd3ac43aa39c83aa4b083467510ecfda55c58c86aea9e96f346c8c1d2c24704d36d11a6e9a8ef4cd523d3f6a5a3c58f63fab379a539d7ec0e2f2e74e24c39b4457a7994240a3aa9b675a199fdd738"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_9(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2329c54d4ff27ccf43911dfce4d7089bc7e1dbd097b8e54ea58000d1ab075917"),
		nonce:           decodeHexString(c, "f2ec3e850028ee960871dc25c3cb0230"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "16245b7f998e714cfe8388088e00d17796e4fb77b520d70103e8af876005a1afc48b382e2c05b72c4e8b1ba1d918ac2303a02f33e02383ec53ee7ca1ceedcea50963d8d57ab5e4061d6b1e8afd73bdf9d064b5d4c977bb27e2b79320077a0d368f727aa3ef95d70d5333dbfabb9ba5cf958e7be79d7eeeb8c83d3b2e63060673"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_10(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "20b3a9c78aa533afb888486dd4c4a25a236205724fe4e4a5f769974be2089b8b"),
		nonce:           decodeHexString(c, "e96d564dd0b12ff8d2872495608b21e5"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "01930849a07748b0c2469160afcbfcccc4bf909df5a4c2eae684cc08e28883142e760e7884bf10873cb3700fcedafec4f2dc4429fa712546ee750bda0174e94e35f4cc04de4c79055ab457d9629168b6337969f6f2128a7a7e2a4651bf99512825b851217df9ca15905df4ba516119f84d0c8aaa3f6cb3b5fcd3a29dc55f940a"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_11(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "902c4bef72d4140d8c7a31406880f8e8a9e2f3e6a9b8b130a8f9a9e7422b70b4"),
		nonce:           decodeHexString(c, "25cb3fd05429899977bb62077b55341c"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "34bb5610fdc5a9668cbdf35158bbfe8854ac2fd82dcb2dce70f549cf9152fb3380ce054bb12f4e4e9a1e3d507f8fa3b7e63790f5d5fa4fb987ed6c67bc1ad0c9dfa3cbf987bab4392088d97d76a12cfebea471ebe49b11f9e125b78b49ce01d1d932fde99cf482f902f2f5ea444261eb25cd7c6e9ddabf296ce05a0e2e01dad0"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_12(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "590e6c0cfdb6858bd8820664684bad3f2c6e599b2864ca497f2dc9a6d2bc4237"),
		nonce:           decodeHexString(c, "025b0b96dc76e414ee0364f851f2bca4"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5bd5ef1b1d58b77f86f6b33e7afa14617622672a27f599dcf938dd0585cef44e41b736fca01ca13d773f6117a9000ce6cddc0119f60da8e2d07a0f23df8cc623c3a597f86c1b6b234448b8e056433e1ced41e6c9b909449876ed0ece18ad7371ebb86cd765dcc65af13ea4cb35e82d3a437649373fac9abe4099d15d2547ef3d"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_13(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4a90c6acd54292dbcd698f061143b3f41331008d8749da24034c77433d9ca735"),
		nonce:           decodeHexString(c, "b2ca57227002eb0ada32630938b908bb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "880876ee68e2d0dcf07951479e1002eee41dbdc5c4713e818f7cd8c6928ab600bd92155fe52a2f8518dfbe430c3f81bbd5ea093d012e8cbf8c010ba3628677a547791a804b5037a95c51f33196435e7235573c1fa173b6f28bc1cdf60944b8a2b6754c693a3b9ab1a59791118988357b0a4f95f353ee7e0dc4f3bb42998222cd"),
	})
}

func (s *drbgSuite) TestHash100_SHA512_256_14(c *C) {
	s.testHash100_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0653c409e957302f6eb62bbc4f42b30942ff7860e7c38dfb2fd26b164e83a713"),
		nonce:           decodeHexString(c, "273f7eab3dc9bf11216d5216bd12478d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "51dfe9851da8d7d5add3dae413d8bab8bc7d1fcecea00795ffadce047d5243ae36f29f3611fb8cb66e98717a98735384aa6a310696356cb48f4672b2ddccf86eb44777c1616338792629b6cc6ec2b66dbacc1a6b66bd9364914f1f43277f6f43e13145fcdb73a4aca6b784f9084d22c967033651da610e9a85b1eb7513683dc9"),
	})
}

func (s *drbgSuite) testHash102_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash102_SHA512_256_0(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a2b29309b2f92b994cca9341763711f410de0809864222725b0a6788c93c4edf"),
		nonce:           decodeHexString(c, "9ce6dda51f41070595a1e46ff04a9946"),
		personalization: decodeHexString(c, "7a76798b54541f1e467d8c9b3abfb0fa4aa8d0198dfdaf8f76018a44b39ff01e"),
		expected:        decodeHexString(c, "ebe18d74e532f6b2fd39cc67578a201846b071455399e28817f88d821b83a7241d67b3339e668590fe7095a777e91e648d535acfbbe6dbed8da2a4a372afb6665a450252758a311a26a90c59a31b2b231d7d23b5b96c85d505fd00b8181a92b71a33c7d01bd4f9d99a304fb5ee5201a8d252fb56cc41e631f489f153037765f1"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_1(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "df32286b47c0ef2e1c970a7c3dfc467b91ca44f6d7a1f0445b42ea0d837bc950"),
		nonce:           decodeHexString(c, "7546e66191cf9e9161232119d7e13c69"),
		personalization: decodeHexString(c, "c931524ba9e0e2b2f3f6022feaf919e26747dc6844fbc5ba3860aaf54bcaa0bf"),
		expected:        decodeHexString(c, "922dbec1d4cbb4db10f0e820df95fc89dd8621ca5594d5805d15d705cd37cb36a62c381ef769e7af533af4093840bb2831f49d280a8861d82b2730ef9ad99c219554d8975743d68e8690137fbfc2e5533395c2399782e914f1d79f6dae6f2f2b9baabc9f6554955dc21f07aa9adb322253298b0beed2ff5f7a4531b53e64393d"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_2(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6fce9964b6bb05281bbd8311590012e1108271c8ad097db0699f7ac3d67f3a29"),
		nonce:           decodeHexString(c, "2e045d1cc4eb81ae38413fa6659014fc"),
		personalization: decodeHexString(c, "bea5d64a6baad14fc071bd6762a5c12479453924d5aa5e323d21221abe198dae"),
		expected:        decodeHexString(c, "212445f37cc2a1ff5cb25e8a2af91bd27fe35c51785ce1cec4153cf948cc11b306cdcc0d51987f966f4158ce0fe7d220da97a15e673013d935cfc2fd02387ab33bae792855a1293e7693347d247201d9197bbcd4aa62e8eddfd0a451471d9b87a2fa364fc5ff26d3282628284b0920faac064279ca14115193a3b34446987a6b"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_3(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9f8b0f7624abb0a45e80b90c5b3553f8d959aff3f815800e25e5240a3600bf62"),
		nonce:           decodeHexString(c, "10c7fc760070664da80fdb1ac11e2d68"),
		personalization: decodeHexString(c, "281bd732a5178359bd5a41d12f4dc2d98fb765e770ec0246e027e0111f936482"),
		expected:        decodeHexString(c, "a7ca3f6d2627c8206ec0c2b2384a280704e13e25438e1d0b3fc8adb5007ba878d1af2252f931065e199a01067961f4126b68f7f2e57b704dadbf9e088a5e46414ad2e8e5c737c84076f9b278b263aca7cd47fae99e67e4165f0cbe4188f07a96f9642050c5f4cbe85ae6ad3f4d07ec16466af69016f4e4991f1d73bad6ccbdae"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_4(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "bf54e9b65e42afc599b1a12c8e2d375c6bee191b726f3233251cf7d54b81042c"),
		nonce:           decodeHexString(c, "ba8ce550953593d132ceb2a745e3c389"),
		personalization: decodeHexString(c, "49e27487fab5d22994ceb07e334374258e77dfc044aa233be3a3671ed4d49444"),
		expected:        decodeHexString(c, "f1ade51fc3b79e8a2a800ba853a28e1575a89fddda009f2539c8c33a5e7262e337b4a72ed687963936d39da22295a71c30f80c4712ce4f32e09450559e72e1b1189ccdf54b1b13a3452716d48a2104c6855a89c4fbf1f0544d3a16e7f8b5e5bb65130f78b75e648bf19f70548c48d42e9267c5afe31ab45204679748046fc692"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_5(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4735955e851914d0d4d9af22e10edcf09e9f27435c29227e4dc2b7fe83081a0d"),
		nonce:           decodeHexString(c, "bd9b292dcbcbf64e11d402c30a76b086"),
		personalization: decodeHexString(c, "6c69a375f34ea77f015324b2638db8078d005d2ed6e719d3275e02fbe277bd78"),
		expected:        decodeHexString(c, "b1b0bc1e3170d66293e5eae853477cb0d0124359d39c03e7797d0756a696e6ab432e2e30296897b065ff2d0ed352a06fed9960e25c562bdd16a9e06befa4c71d97c6a386f8d9dc15fc8510dce6066e9deafcae0854e6919255b4fb58e74ca74346b898b33ae6c67a43d3a4d9ff0c733ae037430892a890959d22ad8402ccc789"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_6(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b3a2333c8bdfff01ce14a548c449ee740373a4cc5230d8b98942aee21f37c850"),
		nonce:           decodeHexString(c, "f5fec1553d0f592a169e29fd589ce3c6"),
		personalization: decodeHexString(c, "1f6917764a67b698377791dc5a485afbbe61d9a31c5a51467ac626d4dac4cdf8"),
		expected:        decodeHexString(c, "7c4acaeabe4a2286a99a69a79140090c274c8c77b17743caa20df2fa1a53278ffe89ea16011058ea42fe34513b77334b702efdcd10ca177ae6142f8b2659e9d798933dcaad33c4c461dd22114ceb33c419aa3a6cd39e924ad7d67c4473c9e2c7c0c5a8527be4df29dce0acf7aeba64c0361c6ba00593acc913c225b201ea6d3c"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_7(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7b002015b18111df35257b166fbdb5164bc6a7c40d5ba772ec156e0e743652c8"),
		nonce:           decodeHexString(c, "19c0a51144fb8075ea7940d4f5052726"),
		personalization: decodeHexString(c, "7b60ffba6c8ea841bc142ea2a5f0712ec5a388e66c782a27c24948184ac14d6b"),
		expected:        decodeHexString(c, "b6fc6ef2cfd4d6eaa83d8519456eebc0e4252f63f94596868a4221f41f82f58c1971b1fdfd164ab9f537b491c823608eeb2ca0a099762d8eee4ceff82067fb7bf6cfd41b60cbeed82c3a971fc00b7f119d08c8ab1d69ce9ec63639116964cf29d2bdbf22213241493e6a2a08975e76335ac454a892052ce973a557cbcf73c3af"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_8(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1903fc982cc88bcf375bce7b64e493ba9733a728e81caed82a0e3a86d98b7530"),
		nonce:           decodeHexString(c, "592c7e7a4aa8d34cc21afce08f230249"),
		personalization: decodeHexString(c, "aed355a1a441126913c093b512532afebd9d9a847162534654bbde9681c1486e"),
		expected:        decodeHexString(c, "7e912023704f16153c4536fd54b7f04233ad944f5d844605eb804d26f1ca9b67fe7eda2f92d0dbec79532739d82d10bbba01ff4a54a1d2924423dfe55c279ed734e34d40123ff85cfaad3057ee0700940c6aa0ecd6fb0eb19b1e65e687315d59d18cf713fbc21dda8dd810b1df9b82dabc045b3122fc15311ddc07a6f13a6d3e"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_9(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c934043116ae190c4ad878b68baa55a105ea3d1cd1a23e8666a3c1b3e02ba71b"),
		nonce:           decodeHexString(c, "f08277c2711222d21e3318ab9248f8de"),
		personalization: decodeHexString(c, "b35121b4542add788df00c652c248532fa7c7f13b8d00f15b6d688bc0248dc52"),
		expected:        decodeHexString(c, "472ea39833518026a07fb3e27902eb45c67526f097c35411bee82e57321dfd19cc1cd5bf0c34df829130a6cb54f4393354edc2c403d3060650e86b284fb62220771dde26c151495486e4b6b3f08fcae2477ebef222dcad87e637aa8caaf965ea116452c2b3e633a1ad91d0a8ed53c13778901e83de77517ebd9c64011c131f5e"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_10(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a206aa10c2456110318e3e76cec80fee80496e1f595f26afd100f2a531131699"),
		nonce:           decodeHexString(c, "9c332bef31e05c6ec0c0c2f2c6562cd3"),
		personalization: decodeHexString(c, "2391dab997a7f4563a5f5ea03835293645ec700b922d1d722e3a1a4885c165f7"),
		expected:        decodeHexString(c, "ff6947374b3d0658da07923ffe4d1f5c014061ef906b02ed82c1c59321c4776a5b4b43f203d94a86f309fbfbc9c1ff7384778a5b35c74f5b6c4ed1dfe23ffe1cea0435effbb7faef75e9bf83fc8493319b8279130c1d0373d04e8f1906ad03bc0563ca2551cc314d7a160982740a0212208a46ceb1ecc738a1b49987fed632db"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_11(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c9632fc29a38d4f1b72654e1502544e786fccd7fa34ae513cb5c96680c4214d8"),
		nonce:           decodeHexString(c, "4d99af0e49407764159aaa3928d6cd1f"),
		personalization: decodeHexString(c, "75ae0ec81469e7f2c902fa4c328f9eb9ffdf277f656b82ecb637db898aed5dc8"),
		expected:        decodeHexString(c, "b0654f50e28ed708484952510dd4a04c631fe420025fa006b937a5046d5726803961ed5474e07005c6b3b6e391ed5eb89f1ad1e23fade6247bf14417087e62d27320c75a1eb5b842a4722b9cf6ff9f79911f747ec25709b8ef643cc76bf6006b3ba237ed9ebb18d0f98e9f7f6fbc6e5591da1e51956ee961bacb51a1037b25fc"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_12(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c0819e94b28e3ad495edc492d65e0d58cf83ced02e31bba09516c5be06c87476"),
		nonce:           decodeHexString(c, "afc45eba87e9542f12c85287cc79c880"),
		personalization: decodeHexString(c, "f64a0309ec12b8b38433d3e22870a8efd95a9cb891a706ef0815720a7f79bcba"),
		expected:        decodeHexString(c, "03b81d0734664b3154c1c1b6a354a5a5c5990596a141a5153f0dda4a91d02e79cb2aa1c442f1f34d65852100e3b6522da2921820c791d3db0447a31698e967d24989fc9071b0571ba4484a7e87966f85a99b0b7f1f13bdc156c546dd5eff2bd8e62419390291f4a6d8b4706cda3dcac5382150ee68f6f41896daf60692458040"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_13(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2d44aa9db2cca111cff20727708b96ec48aa270b9711dd4f3a7e41c7c91627b6"),
		nonce:           decodeHexString(c, "d9ffef52eda7a37a2ac55e170c8287a0"),
		personalization: decodeHexString(c, "eee6408c66e3853730d50bac7ef6964dbb6e0180b75de7aff2102e178209f1f0"),
		expected:        decodeHexString(c, "a4f7e08a321a50417d71076d08f86b71e644303a4366fa39e3cb27b8b2cc0dfc2903ca54cccb019463e0cd6c7cb29ce024820c2fb5d2d40d56c158117710a80018a6440b19396f025d069d32a59364e758f13bf05f406bb8ecc6dea73c8da68cc36306d7e66a1af6909ac3fbab7b9d515e881547da0b9cececed22c3ed8b01b5"),
	})
}

func (s *drbgSuite) TestHash102_SHA512_256_14(c *C) {
	s.testHash102_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "708525ab7b7b2027fe3d5024e81a14e828ea85a78633618486938a4460c601b1"),
		nonce:           decodeHexString(c, "10818cc50b58ccb660d65ff705041a37"),
		personalization: decodeHexString(c, "2756a89e79266d6d86bbd865708321f529b023d0cb5ee5d9888c37db33dd5164"),
		expected:        decodeHexString(c, "7b3d778ee1623b08875305d5761ce2cf44ef1bab87c7d0f29c862c40d3da31240e7450d827909b6b131a9b0e9ad68d5c02caebf4f3b0b7d7ac1cc58e353ba68e7ac9eefc3de1310cf9bf5f4b854ef3fc36e940d4fc50072845a83c38a7d4372c191b900d11d11a907a50607c348951ccfeba4efc30377e4a965056e4e84eeb02"),
	})
}

func (s *drbgSuite) testHash104_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash104_SHA512_256_0(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "db6dfba414ef49f895955df1945d700563af82c139d2bcf6c01b95adbfe77f00"),
		nonce:           decodeHexString(c, "69ea910066446cd8ba291faa094db8a7"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1533fafabfa93fd946de67a35b7c26a9a143c59bae9338e226a2ac46984b7d2d674d8adbcbaa9795c3b2ad64540207a6f6131f549cffeb6e39522a1f23fdc8f347f23a51489889badfed38b3ae3742bf4779229aea54c5e844ee84479a8786e61755d610fa3ce6e687ba18ed5d174d823b15ccef9880111e02db9315b8515352"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_1(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9699a65f2df69a8b3ababe4a7227608ac30f63d5487e7b3b05f28ed941803bc1"),
		nonce:           decodeHexString(c, "7d42534a62ba99f267dc52feced0edff"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5206df57c834ba53c50b116f9a0cec6add0c9541deb030b39c217a5598fbc6372dfaed871162af6c99c36ed86d8c08d819fa56b1fa2a203fb54628a8d348c8fc65cf21a021b85b8b8650d6178042d75124557e55334a7759307900c42e0442dcb090a931d4dd817ee1dda05f7886529315e940695a8ed56b2006bfc61b2e85f5"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_2(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d5b674e58f5f8f21e0d8da8703ee62dc1286de9af95ee7421b34a951ce5db6a7"),
		nonce:           decodeHexString(c, "19c2ba4373b0e0c7c20a281ac8d3c438"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "991c8007d8632e34001bdc6283190c2a43d89a56176708247c74a24ed65cb1f544d1abadfef80133015af9bfe9502834c13f1ad0d5259a61f19e378c970fe7eddf9bb5750359d54fa30febe7fd3768db08d8ee3772dab65f3d78417cf13747af2bfae448b3ca4e0a02ece5eb04195c6c635f95b99782e42b74a07815936cb064"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_3(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4ce06c20df676af7fa851e9be2b4ea2a86be64d8188c7da6353df113b4f000ca"),
		nonce:           decodeHexString(c, "c7542cfb2456650d2ccefcad9c7964d8"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e0b6d8f203e6ac81a4bf4a751530c2f09fea755bb0a972bbb2dd30d413a43678ac90315ecf05e624d10e1a5db7fe89daeb2a4ce455197f4f490c4ebcf8866587764b77f48be58f88949e7af6e759fa99d3663fff8106c0352350a24a78564212c6da2d6772d1d0d038cdc509dfe1f066e8714ee230366727958570e1a6e4abe8"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_4(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f15833c6350257237e8307a32b4db1d638639d8b473810493ecb6d62ac0c1094"),
		nonce:           decodeHexString(c, "f562941b78e840493f81760a83e47209"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "760a9b1b06ef0e409efc635e5a86da02718a84927de5b51d30474984b018e466eb176d3cd548bc3dd6b776fa102dab67ad1be00e5754387ba80921a90ea5ba9299cccb8a2e3eb72b3f04a5c6ae4aaf62ab04c5660421582a305e1a54f34d9dff34c3e33f47928ac780afadecfe50a905a672a7fac476a7c12716b2e0d5de92a3"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_5(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f33f1c74da1ca7000bb8c4dba59a79f3bc8a11c3fdd3e73196a54b0c93732946"),
		nonce:           decodeHexString(c, "543b324f3807f63e749c3629c4a5ea0a"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "8d2b1c2c2835c21c7d1ec1c382e717738a2a8eeee716146fd23f12d0ce42c320fd935b97710702639628592f4dbfc83334bc921cb27adc8bd704affe1616af16aae655f4026a7d931f8092bfaa60df8bb750e4aac86505df154cdc68d5be3bcf64f09297df172808efa2baed0ac6159db3ee4d887c74140803f0927c56e225ea"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_6(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d1f72d93915eb1dbdc5e0783078c64b7fc1ff3f746eba67f07260641bb4ae597"),
		nonce:           decodeHexString(c, "820759cae8c50a47f349acc059d8970b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "4255a149e758b54ce159c7a627d5b0ae5ba89822094d7d5e8ae5ec4b8149ca04655d7ee953a78200358f95880434aab6b3dd5b5d90440dccf7acd8001728adf857610de53c98e9717536dec368e9cdb4db2e683db30b2269a485fa5087be25bf4f845f2301b858a9b32e1cfb09b8bfeb7e4e2b38cd3140f016e4a17457efc1ac"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_7(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "89af1c3421ddee1b8abd1a3dc386f10c0d02b9efa1defb30f6bfa02faad51492"),
		nonce:           decodeHexString(c, "f723457ce9aa2a3aa439711829a15a70"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "508685fa0696b2d5d2aac8f6987b4c83a0118efd349ab72d3ba13363a4ccae18f41ff1c05cb5be59b3b45de85c332212d8cc827ce4ca00630581bd15f47551848557494d0040bafd02193971802db5483727eb00d1f7ea620648c92760de8780e5d70487085b215f3a67f130c633bd7e6e4a963c57d0b35232cc16f332933890"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_8(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9c2749813fa1d0475abb8fa34d2ace6340d3693801f506448f89284693380d98"),
		nonce:           decodeHexString(c, "2c2fe7f4ec934b5f7d51dbd1410c9308"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6ddd7cc110272e0fbf8aea493e5319435d3d2446ff51ce89c84ee2cfa4dd42c0a10e1bebfc92977f6c898ab65a2bd59a7170e8c83a0b349399026bb8a656f8f9f27d167042f43fa367d407d460a44d1f6776f5420afae894f76fb6b960a2d76b2a7ac4ba2653e8753fcd54dc36ef5907373ba20db4fed72a078eec3d99687bce"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_9(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1de3b3eac4ac1b5981a60b929fe054b81780889919cecc4d06304b5efd1128e7"),
		nonce:           decodeHexString(c, "d46cf622a5ba659a3a53a6e3aa02abed"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "58363af7e61ea5f8bd8313abd508bda4bdb4c89f26fe3f2f4ed0d56b5e22bc24f28ff17fbd03aa842032cc0f780407dc9a67588f31634d28ad6cad773a36e58dac33243c2e25a9c72cc91fba36a6c0ccbb504f1b64f76c69ea857c9a58ac396a054095464a69ea916df9eb178872d1162ec3b857fb69d5fb0b28ee98ea309fbd"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_10(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5ec6edc2bdca4fa7e3b885e70a43045b4088ee07eb79ed563cab5716e9843d9b"),
		nonce:           decodeHexString(c, "fea3bdb647c22649fec9a30cd1d44bfb"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "1aa2d21d79e82e6382423101eafbbb905513930beb78864a023c0ba81f9bebc99f74e9f97dc8f68c5701fceb6991a7b65e3978e17e24bdb898fdb96037fbd1d6820caf2ef786d2825d95fc3ea031597f4e286c48d036d49194c3da219cf7b9d90ae72f161ba2ceb642d622cc3256689ebb2cc8a4e46051ecbf6a6304ec36c54a"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_11(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "59d17c36e4eceb4de7c23c104a3cc94572a7297c8cd83735a9e0184e74dbaaa7"),
		nonce:           decodeHexString(c, "1147202d56aec98b784c2703f8b66474"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "72624e2c6f1bb62079e3e3b74d60869a7d63d49426f51e4bc6da2c171247779dc3370c3ec48aa2c64f5d712d0d41ef040410f5056fb08894392dfd576f2df410947b54c4bf3540187120d4301b51fc11014b7f6c1a03867a81eccbdd6e0d73f8e758c3ae0b935df40771a0f0c890c9f3d2f46c1eb9e66c1688c14427a6b58da1"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_12(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ca9f514aba48a854c94f9973f69994262411da1728585322a71691507895b3a8"),
		nonce:           decodeHexString(c, "b04944da2bc79245a96a015d9f2673da"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "bcbe1625a4e0e6417c13b0a615102934333d942dac85ef3ed0289b6f7a318f80addd5b1e9382165d5a3ddf11a171979d855c7bd5a8fc2e3976029f3dcacdb14e04178d4bd84483856be2f988af694d8e482eb1282d7730b288b7dd7c3eabbc60f673d3e229628b5f6ab4af9f173f7aeefd249d2bd73a78403cfdbbae6cb2a053"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_13(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d31ae8d557811d17f12d1e8d98e897499e6cea5ad51afa654f3ab2c43b633597"),
		nonce:           decodeHexString(c, "8478c766f94b48f94aa2b67f8963b52d"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "6ce2058f4dd4d7c2aadf03a0424a33c439b641de320ec2e8fcb33f8fdab0410cb015a76d4931892ea0a188e55d3a9790692731648be5e3ae36be3b9d3eeba21a2c62a0ec7af9f8c2e3eff2792e7bfafb4d346a4fe5077f6b3c2e34d059104072137576721a113e981e47480635e5d0da90143f2c960ee3f34f5e50cc22b15b75"),
	})
}

func (s *drbgSuite) TestHash104_SHA512_256_14(c *C) {
	s.testHash104_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3bb1f6cabc56a02643eb767cc6e5bb3a5bd765555e4e27159ec905012f58de22"),
		nonce:           decodeHexString(c, "cc37cc9b20a2e4de0bdf8ccc3261eb90"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "28f20b9a94340aaa6ca98174b5929ce3329d81bebd67faf5e30d12f775748c34c848bcda26cac8b4a9b34c7c92c9984a6f5a85269583358e985c2b372a887f9e3f0f3920dd512def27d818522ed1a49e96d00a5aeb41bafd152144a8b6f93426e73d6e8ef7a8a5381bc464b24061080af02aac51fdc52f404e1349b7d04daef8"),
	})
}

func (s *drbgSuite) testHash106_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash106_SHA512_256_0(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6ae74ea53cf8de98a48987c0791031a3788fc6f1a3a9fa3c2ca98456fae413f2"),
		nonce:           decodeHexString(c, "77128adb2bb9ee72aa11b510c92aa39b"),
		personalization: decodeHexString(c, "d309529d43091c81bff08bcbfc643a1d46121be49fbb503cd8401d86a5f585d9"),
		expected:        decodeHexString(c, "7f7a9cf087d098d8f437304c5ac8896b16d8190b618bccccc5b6e15a83e9a178abf78c176f8d43c80451f15fdd1af1e247d00475c759f269e5d3c30d279c90152292c3bb850fbed2c59bbff1d4ea15aa57e97aa35204e1831a35ff53e5f4669733db3629f213a1a1efe3c758c6f9c23dd7d99685a4b19f1a3c3f2e0596019e7c"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_1(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b2192e2f41f611db8fd6578c4db7b622e1356747b49a63277815ba90113336e4"),
		nonce:           decodeHexString(c, "a9879ba05c4b012f9a371fcdc37d6b4c"),
		personalization: decodeHexString(c, "5bd87f3a4a6f3b5f901382397af83ac3e6cfac953ae1b35b257341e0e8ee4bc8"),
		expected:        decodeHexString(c, "814e44b745382415fc4978094c77dfa29ff6b2beaa09d89ff1301355f72535cd35b45a3766acb81715d7e71defd76a73488ca327c4633bdda604d4b3a5e7311e85b828debcd56ee1cd306b69eb09293aa3bd4ff79d857b5dd1ceee89ba47e7142bdf786a3724ef6ea9486e1f3d49b634e3ee1f9684eab8b8f0fb447b9cb0ad63"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_2(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "de2bfb9cb335e6bc20ec4996ee55ea9fcbb5332d0f5609dd08b9a8e6c3a764d6"),
		nonce:           decodeHexString(c, "d002e99b429afc604c2fad8be38eabd7"),
		personalization: decodeHexString(c, "cddcf4bc93b29b5f80d3007bffede16937aab58c86ebe57268c9887c8dbf809d"),
		expected:        decodeHexString(c, "f79d24aca980c80d4e446a1b52ab36e9f5cde9726890be621a2609e3888fd6c4d7a263ba045603b28dd2059398986387129d08cdbbd667606d83c561bd7e024813656834643adf5507101275bf99c9f3f706c06c031a03fd34b10d05df736d819d720265f7c6833e7291150f93c19ee3a563e969aaa7c7ab993d2e995fc4cead"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_3(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "608a851046e8a59c9cbef11357552d67e4dbe386b164ba0972939f11343f6427"),
		nonce:           decodeHexString(c, "17f976167e4cc80effd01d7e63635a51"),
		personalization: decodeHexString(c, "31296aaedc99cf580cd06278f024f6c64ad1497195396f303dba4ea0757bb631"),
		expected:        decodeHexString(c, "782f444c80b8d9fc17120795fa5873414f6a3bac01a6f4dc3152aaaba22d3b6c592c5745a1f6d51c42887933d7077cdb648c4adebbeaf14f7eb43a001e2d6350c7c4bb4912ec75de5383610704d76f4c7e8da45f03b337a7fac87dda64b896b9b3cd1c4530402539871bf974c69d3d26eb11c0fb8ba159a723aa06dc0fb7b262"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_4(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d34d85e13a4a8b2b22818984da7b1025554a9a5340aee24002e8cd6504fcff28"),
		nonce:           decodeHexString(c, "61fa36db1ca8950aa4862abb44b50600"),
		personalization: decodeHexString(c, "76e9f9bfc30cf06b1212d0df29660f1454b877a83a4f90b5718b2fde18d73224"),
		expected:        decodeHexString(c, "3df907621663d94d48613ef08d1663249a4b148989fee50d44795337b6edcd9f7dd22d626524cd90f725e2c26ea5269b5cd10ca341186c4bb0f488c0a91011bf960bf535dcedcf6c2d0021beb24a2466929bb3da14ae417612ec609d09e563dc5dd29fde5b9fa84c24aee995380da430b381c2c8bca77a66e3c589497f0cda8f"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_5(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f8dabe8985be5e7d44394353b116a05f04639a9af63cb86c5d7869c52a1c081d"),
		nonce:           decodeHexString(c, "492f6e8c76b8f44dee078c05faecfb06"),
		personalization: decodeHexString(c, "82b9e30283d501574db8be220af52b91537f3c4642ca187f47e04c3f18094136"),
		expected:        decodeHexString(c, "d161b0aa71e697bcc4c5c66573c9d4256b8320aeba913b41b84ab5626db7bfce534dcf655bafbf518586e68fdbc86026a60626b96f4c0b021fbcfb03ff39cbe537acf30af98a81e1756577fa4a99a0f0d92fd5f05d654e53f7b50de81befcb2d78338f7af6d2b7522cc2d709797662d2b6e75020c21a327d03d92437cc95351d"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_6(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8b7c9af20937836cec75d7b500dbec1249815da50471950b721473203cb32045"),
		nonce:           decodeHexString(c, "f587727b11ceaec028b58695724896e5"),
		personalization: decodeHexString(c, "92caff644278f146b70b5c07239b4759f76c7a7491fe810699bf632b95931568"),
		expected:        decodeHexString(c, "63f7946fa19b086ae9c0dfafe4222a5f71aa1de2ad00fc16f1a4cdbc428b1dc5e33bc0512c3bc2bab4f38847eceeabf45ec49310cdf27809125aade4cae5922043ef63f5218e08dbb09c04551615e8766efcd77d7d7ee532cc8abb730917aeed6b9afb33e7fa7d659e1f11d6cb1ad178dc1c55a9771fa08597e615e2868e3d87"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_7(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fd95873c6328ea01bbd080bc83c6dc6396da15484e6458fe7af7c43ac0bc52a8"),
		nonce:           decodeHexString(c, "bed78eb94bd44d8d542067cd04c68fc4"),
		personalization: decodeHexString(c, "5db74cc6cadd8b18dbc31fddfb8d22af93dd63cf7c1070bb377d97b2c18c8475"),
		expected:        decodeHexString(c, "7636443dbf0aa1ac9fc49532b62c74cf307df234b84c2b90e24dfeab7de95334adf2b3304fc549a27c45f915219cb3b305942a902ac08f6975dd5d607ffbb0a7d75d0373d647d5ab49f35651a53e18ce3c7f8a3355368199095965b7cf79c4e6cb030d5813ca83b1f6fa353245bc2a269cc4c905c51f5944e0e0336f263848bf"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_8(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9db7bbd5d511a3c605c4aeb5d7815af5fea38f3750cb01f8f8ae74a2071a3ea9"),
		nonce:           decodeHexString(c, "b1d9f4c7b1f2dfa17d892b341c55e8ae"),
		personalization: decodeHexString(c, "e89a556721874b6939a8dbcab703f416380bc054d88bf50783260cff144379a5"),
		expected:        decodeHexString(c, "ad1b0813e743524d0aa4ee845ceba906ea66347a4d285b06cf84707a9ae6bcc36fb0db52141020bccc846b0847b633f3d5f24046dcdaae2dc456ee2f67655f1152a36383448d835fdd1333c832ccf96cf96f394a5830a3909010eb647d4366d63cc710433ddce17310e82c49aa56dded4e0f5f9df213a1dcdf3e456334bcb404"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_9(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b516efeecffd7bcec3bd16f39dc3aadfcb230385153112df9ca3a3413563916f"),
		nonce:           decodeHexString(c, "9ba212a4d73bda328199b5bb7252d84a"),
		personalization: decodeHexString(c, "7e2343b0525373c968cc752a66345c30b74cc7fe95d558f86d96fcb67b9ae3d2"),
		expected:        decodeHexString(c, "3112e7dfba7f5571bf806c49c384dc025ddf537f3c37f5d7af7b98c5b809b5cdc9300816c25ef7dbda98856f08c8aff7db12d62d4f4dfc2cff3b7f7f043feebbf09751848b01dfba36d26f33162c0f57c15dba334093bc9b7a36a6a023c5a29100b2bd3406bf83e56d4e68896d70467db38228c82fdea9aeff1574c34a99e134"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_10(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b0a0e3d75f5d91dcea7e53f283f0f613075878c654925948c15531fb97016e8b"),
		nonce:           decodeHexString(c, "2eaa61a0624b32c1ad8b0ab1f6d9b96e"),
		personalization: decodeHexString(c, "f3b8d9d83f8b212c84442cc604fb4e6475a8e92e2ea1cc38fb8990da9d8af148"),
		expected:        decodeHexString(c, "4434a9db8500c93fa9bb921733c6f2dcd5489830411af3e00a2374e958ec759608ff0c72cabe91dad49c6a8f3d89cf426e42dcb74a279064fa8747eb387fcdf513f658d91b4a9ef103fe02c35d879c9a07cbad40b0dd26ac29c67416492f8711bd391d34cef8f242f0a3ca9c421cc2129d609dbadcbb9a6870aaa5079870ab34"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_11(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9a54bc2e5a90360029b9fea13a5336f61c437a939318d0006f07269f0276f86f"),
		nonce:           decodeHexString(c, "76abe2c9ef42157a84657584e86ac70e"),
		personalization: decodeHexString(c, "556f13f8ab3f6650a67625118cfe5eae4c0a341c06ea923172eacc779896b18e"),
		expected:        decodeHexString(c, "1c972c4979ea6f14f39c8539a1ba71e37fe8fa37af64a415bf7d67f55125a4ffab8c7e89643299d71298c1737252e670a898af1c687cec44ff6a224b9ad5718deed65f1ea30a59ce3b7495e7e93f3d7abe9c137cb48f848acea34cd72573a44fac2889027aa4b055f73e40a0aa1a5935990770ba1b69c450deaa9c811df5a6e3"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_12(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "42710e2a84f8f1d6a31e37e0bbdbcedded32384b6b4d375ea1cf83c77364b983"),
		nonce:           decodeHexString(c, "1a79de4edc07936df71a9bd75b03a680"),
		personalization: decodeHexString(c, "e61d835e4f11b75c98918f21b9055a5bbc03e30cf61bb155f9d8b5671f16152e"),
		expected:        decodeHexString(c, "61dc4d2b522e1c1b5183896910302c43f3233d0f4d615250865ae13ddb525e4d32091e832e8ac9c3b21ad0829b7d22a092c9660f437542ac0f5d677ac7c70712a8073696f96264daa0d600f9c1c49edf79c03f2c7a2279ffa1efb1e05603df367ab435791af7ae2b15ba3531540c5a57e00bc5d20f699251cca26acfa2c10e1f"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_13(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d242a4324a6769c5a0e4877166fd8fec89a5cf2707bb6556cb30805f003927cb"),
		nonce:           decodeHexString(c, "dee5f4c2e66d90f90217cd138d5946ab"),
		personalization: decodeHexString(c, "bb95bb17629b0611cf2ca41b8762f0efcf3795401bca5b5770598982f2218812"),
		expected:        decodeHexString(c, "bd331c3416fabc12e29d69fa497d42038c42b17c1a2eb717cffc6bed960ba03fe156b0cdc83d5bc97cd4013e8e04d2a2588fa5064449aa9829abd64ccb5c798f597991e9d04feb5c80c09feb48247f421cc3953247662a98a4cc9b48250da4c4eea6fbfc8a5ca664c94c4a37445863787ceeb112b25fe17ddea6822464475632"),
	})
}

func (s *drbgSuite) TestHash106_SHA512_256_14(c *C) {
	s.testHash106_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "38c054fd0b1218674700518ddd07985cc9bc7586bb7453daf0e4c0a1e5b90dd5"),
		nonce:           decodeHexString(c, "704e8e29c7aac1d8cbe97bd7305f8cb3"),
		personalization: decodeHexString(c, "631c5d0240b8d9800211ee6c97a5ae77405a354ac25705f22d405e17a52109cb"),
		expected:        decodeHexString(c, "9ee855e661d4293fdd7353492c711b39625ead90849ae5808b1f67c55cabe17ae13f0f18c0954341d6a2d24b899785642c0b29bb1b81fe098a17f8701e8820cacf6c00a8dab2e96e7f8593e188aae48385ede7bb5ed5ffa3f19053663383d666d38eea377d121e0b55ee58ee8fbf1e49c42a4d3d48fb0c9247c6b94c6539f4cf"),
	})
}

func (s *drbgSuite) testHash108_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash108_SHA512_256_0(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "977bad794d6a66f653391048a93fd5487ae87d5786eb3660b3242f9745196945"),
		nonce:           decodeHexString(c, "2da69e3c2ad6113fb856e64a9952f59b"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3b668c087681b0754e11cf961586916a33d94241e30590c54cff103eb8d5249305b4f5d5f2caca1f2917d76dbc88b6b7c5d7fdf81c4d2335e4bec48ab762dc6071a445bdce662723f9163162719892626ea64db5e5a679eae9e7ead61a4ee68548476807e274e916b78e31b3f24358d0f85b55d3799cd004c52b3f072fe513e6"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_1(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6ff27c10e8a5d50a44635f2c8523d5be10119ba9ca91138812da510dc53c3df9"),
		nonce:           decodeHexString(c, "4f9e28d517e4c9fe2d80ef045415a5db"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dd4683e3a61712a3f9a5022fd85fa721047461c3f14594cb26e582159c5da63b6a1feb35bc2d5ad0e91d6753afb88872b0a7452a794324bce76caec058b49dcd1bcff66650ab4351d28bc9f27470f49ff0624cb887307a73a53b36ac538efe7ccbf668452d554f5bf29b5eecfb239f65b4f93f7ec170b1bdd4d702819d1bb08d"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_2(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e281e4ca50cef54b78023f0216811c8e496c283f8129b67b0138a721ab9d4c29"),
		nonce:           decodeHexString(c, "3aafb1ecd651aa6af196a5027889dfb0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "dfbc79df8f637f2a5700ad6b909ce181d57d5a77ea6dc57345bd81c2c3abe17698ba449756648d0374f3eaba4330061a9c0fcae19c0cefae6c4117f17c4b4905dd21b279c927fd98eff97a2fc4d8c17b2ff161f0bccb8dab8b8886068d17aec68ffd8dea073ec13564e20c405a15fee13623adfd27cdd7aaf2a445e636785052"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_3(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "97e7a9d8590a7f6d2091bd6572d47114dea68c15210d696425ba7ca6a8a0befb"),
		nonce:           decodeHexString(c, "592c5ec696188a36c377709e9f403979"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "5846dc2fd66a0d8c90d0d539c175019eff89c13e8a13924f71db344196a4ae1f42d86ffe9ba8b6919b68608ea89a8a2dca19d2d0ff27fc35e5210d0dde04fdfad4cb5d3d9910312df4daac2b9a072d1002e95b0c062bb7b9423c4402bf7b2a2872b50abf2e1e9a2341645ab18ee60290d3b8ef309fb43aee97ac1a791dc49ebe"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_4(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fe2f9a2dcf2d3676f9182343ca2bc9778d391d9fd4dba746bef150a3c64d0312"),
		nonce:           decodeHexString(c, "1c17ff1e271f7ec1dd46a027eb762c24"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "9007fab4989a4e950c746ec716dd16df19ed62530d3926a363660bf3ee321d86ee698510383bdd65a5e8e0572c41e3f439ece3e8d9188469e086afb260cdd835aac531b449729eb05c4b333060ce2ace0b7db464fd6e6227b4d0e2b0458b8cc64e4a4c60e1c9976cd2ab4bff3427f3d4da8ca3e79f6f02262a48bc6b2d0e241f"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_5(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0659dfd417ff136896c1bb6b2adc25eebc70913754f764cd1fd5d6d00403cf1b"),
		nonce:           decodeHexString(c, "4d85548cbb9f647b60dcb8d28c57a0a2"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "123a082d2228a4371bfd8666d83cd5d4d2d3d140dde50c8e0a81c725ea38145d4cbe27d96abe618594812fcd291523ba4e15f60a19d7e19296076a0ea082ea082639579270b2751d87d1636df08b38f542891024a166b2927335ed5d98c468fee4957867bccf2e5b03d631a7c30d67e4730503a87010608a4b76d10f0c789719"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_6(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c56e1588c753cbbd1f7b4ea9caab01e9e2326b194f73a2da7a50eb1006ec9cf4"),
		nonce:           decodeHexString(c, "b7d1a7edf25ad51ec8806d85152aaa21"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "e76e079021c9403d2dc1e1d1c116948b34aeb08ce8a11fd50ec698e0925570170956febc0a50be7f08fc175e27d989e11802403ddfd9d5354391fa716cc83fab6a26b364aef36d810b8822e76d4474722df58590148a0ee798082a7c22f3a8e25f8e30d3f5b8189f1e93ba8493f395ab2fcb42fdc6450af3865d23f734004c51"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_7(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8491ecb34bb773da280dcc16a53d1ad06ec448b1cb07989e7391ce231941309a"),
		nonce:           decodeHexString(c, "5ea5d2bcda790c24e14e8974fb4dfcbd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "19038826a6ccd215b4a65e99ae00449d5591313e9fb0232c071aefa2967ba057ffb593dc1017b18c80cca3a0e11d9f380181e0d9639cb353a668d53ad090eefdd7b7d1f6957c18ec53f4d790c6c30903a8a3b6d7be0e113fb068a15c089d6178374d5f624aa85b9033f15decd454be569ced0b6e660240d70bc75bbfd6908c13"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_8(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "48badb5d8130d9bcef7d56f70213455887fbbd9b6fc52eff7f1fce3e1686b342"),
		nonce:           decodeHexString(c, "9d43bb414ce755be3dcc04016a8c9870"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "a64b5f39f00ee23fd9d95613993ce5f69c1f55c466e0434537b2c3829653f59f0a35742084f7fef22f24f642b2912fe2285eb50add5fa76e9cb96d09a482776ea8f82886d547864a0cf5e397481192a3fdf11a8a1bce892db86b7e9d15a7ae8a12607410203fc787c92b9273fa522ea7191af0593815debc41bfcbe465df0790"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_9(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "46be19b1b70166e32c2b1704387586c3c50a79749e4f9bf3f2966403190156f8"),
		nonce:           decodeHexString(c, "4e706f2158e038b19dab6c3bd8137868"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "3c96cd98e0beb49b8b88dea365cf70af8fdcf9c1080d5212fedd1cdda17c9d008425acd60254c21c411075164bf50d0432f3b984e5be6cac47dfa4efa802f15432ccc2c2630cb0a126c33d6a2610c6631e6dd1f1745139ecdfec8563fffed93afe2f35b5435fb600d451830d391c924ebdb7eb233b1ea8df38a658e3e3fb1f14"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_10(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d48b7cad74849bec068e7743af6cf710685cb4e1f2a8b7d7267a12ccbf3c3706"),
		nonce:           decodeHexString(c, "e61fac110b7beddf3d9b6a0956991600"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "755835306c0c0b799cdfb7a6daee20d560ce3b5baf7bc6d92d60eae60f653fe820ab6896bf18aaa52b9308c9afd940ed447cdb7e52248597eab7cdcc3bf9b03b078874067a4a4c58e548797691f687db6b12aa61b85d70eb6293d6e7d0b12f906e85051183152427a8f6aeb3f4f27fbc77dfbc6b27939e4b94663f0f120ba091"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_11(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e71e6ef37a8a6b5b56941634ed456c1a36f0168dbb4e13c21f89e7ab1eb843e4"),
		nonce:           decodeHexString(c, "2bdf609ba15aa5ee348c3a18253546dd"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "21caf52eea10dd1d5182f003b2161e5608677721dc926ec45a5c3a13640b2459809a5eadd7f10f314a0b1380d5cfd18bec41fb9a6f3082e6be19f0ec36acd640d1013f62ddb74af2e4af37c7b6c50a1d993612dcd1c1a3b008dbf7efd80a2987050a33b0c5e0eeb51d9bd42c3782a7f541a4d228b55a2f2ecf54bc72d2cac46d"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_12(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a6ded3a009274d1aede6412ab7a2383bc11dc302a82309fa6e4a25159635e4e7"),
		nonce:           decodeHexString(c, "42ba80e06774c7355d245b103abd8dff"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "14e43d4cf7fc8efc26c36bf74b42381a5f6410fde51e3d37c8dcaa7d2cb8fa1402ed73b7f3b938c7cfdb13741557e3fa45851fe54e35a594ba0c07bae01aa2bd3a667813682d4b7a1855c48d8ac7ec0a1129463e8659744fe16196af806a305bec9e8c26682f3d4c4e710f380fc6b998a0de036b042058eb49b51da561245e1a"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_13(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "01097e91d496e7154abfafb70c4a1813d5a4c761fbdba36f097448f6c1920b12"),
		nonce:           decodeHexString(c, "e3a1b6a347bbe21c7204ac04e5499866"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "ab4336414fa90466d90b7e62b6d1aa8da7b590b6e95a1ed298d3300bd1f1fa5221225d34145b2eedd00ecc25813661d8ad43665d9f32d11a4ab287db83618006ce7936f559c9376fcd168d3c7cab6a719d1fdb2857747a9173bf3e644049d4e8cc82d49a38957d5b6e84c316784197507b883b91ec60b2bced85c53d8de4af17"),
	})
}

func (s *drbgSuite) TestHash108_SHA512_256_14(c *C) {
	s.testHash108_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "043872fa9f0c4d97e2c6824b778a4fb0debae214d3358a5aa01c0092c9dab6a1"),
		nonce:           decodeHexString(c, "0fc8d529a37083c2efe84aba8c8abbc0"),
		personalization: decodeHexString(c, ""),
		expected:        decodeHexString(c, "22e8eb6b4d11657a66cba93f89b519bcce87a9bfa5ee22cd3cfef6180cb8ca842e8d408257b8140fabbf1dd65085ae62fb8b1d2a679dc0bb0a82ecd3b8bbc05782a20a6345554a1f5467e9811e0fce41a786c805ce2882f8b4d972b9a37eedbf828a381d34bab95efc47233846f8b5c701563033253323eda41effad5fe37d3a"),
	})
}

func (s *drbgSuite) testHash110_SHA512_256(c *C, data *testData) {
	s.testHash(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHash110_SHA512_256_0(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "36bdafb62d8d85c6c1dfc1e74e618967379d8b2894cc91cec2d63e59eea27454"),
		nonce:           decodeHexString(c, "0e917bee109086aec697e039a2649da0"),
		personalization: decodeHexString(c, "7934847193396c925e3527a3be05f8f847cbdd6a97450c421af61e214590f433"),
		expected:        decodeHexString(c, "c89c518bf530228c5286c0e8080c54d3800848b6fce01c5ff5e48123c5da6470b54597f08c215d27622f0e3c141088b4dea13042a22ee9f56f9cecb44077b651da382d996f7822878b57124938879cf5f95dd0ca277d132a74b1f0fc4d3264cc2883fad8d2dc5525b1e13538dbc7dd159e56b445ee8edb307adb7be2fbc80aa1"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_1(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6a59054b7ac00a84cb8a7b6a2c94f2392602be03a964d46084786e59e3c39351"),
		nonce:           decodeHexString(c, "2e46a12ecb7377212e7af1f6dfd0a5af"),
		personalization: decodeHexString(c, "d2fe3aa0e0835ea3d35fdac43990a9996f6a90a3d672d5210b798b96620fdffd"),
		expected:        decodeHexString(c, "67c78059d7da65a67642d78c8a78066ef6429b9410f9c6225a10d59f35d0355dc1d0b278f36e54654bc39d0264284338e11e0f4d2f320e02d18c79f4c12e5f6c06d0123312ce031657308baeaf370aa6eb0706bb75de2d40f10eb3667d13f874ad30bfbac42120ed319e78056b202b19e002ef5e07861bc9dae8f22f606ad5d0"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_2(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e39eeee22c0cf449605bb65f595a230a93081fe2e9c1c5dbbc9c76ffda60d469"),
		nonce:           decodeHexString(c, "e438292cc51a948e95de47b2b900c04c"),
		personalization: decodeHexString(c, "408f5fd16a3f69e173f8bb03b769bdca5da2c7ea23523de2a1fd3181af028ee2"),
		expected:        decodeHexString(c, "64f34c811fdbe73192a8c4e176423e05d8003e7727566917b5fe51e32174ce3ba9ced9aad03720905688501b640ff4b74aa6d59e50fb69f73b31c23ff86d237d16b3550c8b96f426125406d7e551b8e9dc7d5cf3de62851c17931429b83893dd1dc1601eb1a75f977e3913fcfc093743a65dc953685d63d3a9f0aa565735ffbf"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_3(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "878b3976dd608df84e9f052d4334e8c8509d2216bb700029a99a96d169be21a7"),
		nonce:           decodeHexString(c, "bca9170bf78e85805fc6ea2d3b98c227"),
		personalization: decodeHexString(c, "209da5e2d50581d0a52aca020a2f55b63c693801de19e43c7c181761ffbc16bd"),
		expected:        decodeHexString(c, "6a5c5178b56f9c4c7c183f32ba6ea8981d575beb7fdc71ac19697ce58bceecb72fe25428be950adde5ce468d16c459dd7a0f1dc646cf5f53d193df030e5abeddc807b2e888c1adaf74f2a7ee469b82235772c6dc0e737da07779046064d0edfc21891d365afd1c6f0a797907d319f48797a69ca45310e888862e1a4efc36819e"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_4(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a703f570ffb78938dd155b0cd100afee6c26ed97c2675125c7cbb7dee598af79"),
		nonce:           decodeHexString(c, "ea5e00c45ffcc23ae5afedc3e7c1894b"),
		personalization: decodeHexString(c, "bdaf2d9baa9b8d80aad7afae5eb38232ffc7a726900b4f33d7e4e31f7bfd5018"),
		expected:        decodeHexString(c, "46c088ca13d596069732cf233a625e9541a98df14d08f2f58b9365817335698a287edcf26db955d096ba43cefd37b4de4fea1b2bbf9c4fd0dd9c34d9d5c7bb2029453a455031bc69142186151524ae8e8c1114c5074a4751dea96c7bdffe4747c63ccf0eeed6732981fac6b28288d414b4ffa08ffbbeace515251e5cee0a6b7f"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_5(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d2a8d2a92b5e98080e38fc5c86e3e8950a71993dcf8b1c893e0adb64abf2e505"),
		nonce:           decodeHexString(c, "ddd08bf7aa7a03d0af0d08a0f6a91d55"),
		personalization: decodeHexString(c, "a6a3697a569825871d1681ca5d6c7e3ef7eb927c49738358bc116e2d0b65fe61"),
		expected:        decodeHexString(c, "347e66e4ed7cfa5255275d5d23312489562f7d83e024e921344223945c1135621e09f52cab7a6425474c40c4cce594257451140d31f09fa3e740cdc17884aa01d251976e7c8f9671e26f8a9de27d163c951a970e2ec471324a77d433303b5192ecb5776d2f93f3741c0911be509e7c868933e1494e68e997f0758cf364b5a8d0"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_6(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4c22707f97a09ddbda3ffc43e2dc41e2d8a91ea751c327107b9addb62a2f692f"),
		nonce:           decodeHexString(c, "3cb7afa9053bf6bb6dc98b7b31618405"),
		personalization: decodeHexString(c, "b1dd737b2c437ba426810c0263d10992ca9dfb0efc8fe5f64a2ccd8f2831c25c"),
		expected:        decodeHexString(c, "2f0712ed85a3a7ee5f940e37ef1bb571bd6701c98c45ae652be0f88895c9372001eac4ae4c728da07573b7cfd3443ff18ca0e2d7f9798457b5133fed02f25526accf90ea69eb57eb582461106a04b2f9175ec301ffb5eeaa392d45e250016b1c64a466c6215febe159bcb15ef702a98514d92a80f4b8a9f8b5835ce1d07ce240"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_7(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c5990752da659ae294056723ba56ea93a82bd152530d018b5b58b65c65628605"),
		nonce:           decodeHexString(c, "b068f59c108526820c5d490b312a4686"),
		personalization: decodeHexString(c, "7d032fad9355aa9c73ad6d80b2a24ff293d9bc7419189088a60fdfe57df59f6d"),
		expected:        decodeHexString(c, "e4f4d01ab06caa4430628fd227b24581b3c0f33ae51eb6a5b4ac42aeaed548d5e44c286f1ee54a45cda80dc3a16e8ef739861d40711e5526191dffcfd6082fd38392c8ad5525dd3c4bd00db00086b48b459c1188cdfdbd4fe5f0ce8dec7dc11ee0238a813db043e1c73de82abe21396f86d4d11495302e64a487da654013b62f"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_8(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "aaf44678e88d8e7a98da178d806d543dfb77593f2097c1aeb254cf742c59b765"),
		nonce:           decodeHexString(c, "0a971c8bb64fcb80edd392656d322beb"),
		personalization: decodeHexString(c, "88fcf865da483f1feae2299ba3783ed417ef14671d4163d5c85652ebe44d1f29"),
		expected:        decodeHexString(c, "45d1acf678c646e15a9277a453b77afdeeb7214c49c29aa8e6e8b849498880028f7e764ce1713e6771b633c3753cdff943b96366d5b0f88d8c41369b352f6e0f8939b37b90fa79195677c555ad48aa0d40050ab35fd797758bfb20757d26f44d5b610ef0c0172546d6365f7a861c629dc8fd9316b04654ce5e309bbbb5578627"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_9(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7f8cf3f0c0ba8c3a8b72c6442f486df6121431f9622f2359377ba05329d61c18"),
		nonce:           decodeHexString(c, "0768cea6f0fffa07bf57a9d99edb900e"),
		personalization: decodeHexString(c, "80e5a3f74e89a75196069f8b90254b3809e8e9695c70624aa6fd2b65bc7932aa"),
		expected:        decodeHexString(c, "0e793e7a940a7d5ec3168b7eec9712197fba8d330cf4e0327ee77009d9ba6c60f3b75586ed07fc56f4b2e56834012791a9f34cab2d9284644a635026244f3dc6798414f3f9ba743ebd3eebe8f5e7a2b4339730e52cb001a48015398a89f5cd802e8da1bed1b93135bba8f0b1f71ba4e1ed3fcb6d8be05102e2c53fc0e8f0daa5"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_10(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5f483698dfeae3d00e4dd1a8c5d1055f9faa9c37b76c7f6b427d4ce1504e8970"),
		nonce:           decodeHexString(c, "fd6abb49f9982d7462c1a52231820301"),
		personalization: decodeHexString(c, "24308ba52c488b388cd3ed49277fe3ed7f4023f1ab2d4e839da7e3e2a7595c23"),
		expected:        decodeHexString(c, "b341031f9e030db833489f45c065c9a106abff89b43eb0112cd8ce2825b6cf25a9e8d58c969310c1bf9d6c849e133e44419c5d23d673b897dfb7efdc688fdbc779b56f714d8434b5cd12ca5a657e3c0450908425612e230a9235eadeb31d4202f02b38f8eda36b4135bb8a869eafe9ca77410adba8089ba2b305735e262633b2"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_11(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "023a4f36a435e33b4b6b6d3c484a165ebc61e9090245ff07fa59a363c29d5115"),
		nonce:           decodeHexString(c, "07309a34c4749f791e2f17ddf711ea93"),
		personalization: decodeHexString(c, "0d20c4c4be9883e1e251f3075193497d55c9bea63db4d1b87502e037a99abe61"),
		expected:        decodeHexString(c, "97e85682a9a3260f958d457d6adda086902d65415dc9716f1c8f54c029e5608c15e0efdc5729cba64b373c4dd811b156f7730439a4bb3564bf64c9d5ab170d4503dddc82b5572489898e9d5230ac318676327a983b58a36cc28cf7fd082d63dbb4bce99ce3e949488a98a3aac576d83844abb41089be54056b41e2872bedd0bf"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_12(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "156a743c0ae8e39ce81b7dbc3c756256aab68d488e74c857e630b6ecae78c853"),
		nonce:           decodeHexString(c, "e9ea051ab34490e29779b79991981464"),
		personalization: decodeHexString(c, "4ed22791055df7800f153f2f0c9187629d6bb1df4cd5c5ae738427a40238241b"),
		expected:        decodeHexString(c, "ae7aa0c1fb0b2c44775bfb5eb357104e308fe3e4ac21c8b0dbcf0810c815bf59473f3d252f4b469607398421ffd96bc116fdb09aa3116678d344f53b44230198cd1d87cbf3f82e68a3f7890487f93a7c8058d2611f5b952ef869fafa542b3006b833bbd27fc5a6115702778d0c87e7f76d96fe2164d95c1bb29e15360920480a"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_13(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "924140b7374a855269956d3300dfdaa74f7427815fe8930d2699ad9717f12615"),
		nonce:           decodeHexString(c, "1a320adc8d60f29ea9debffc2d4337ee"),
		personalization: decodeHexString(c, "a1005683468a9e0443df0fc9170f80c950831d5c7d41f3161b60be684248dff8"),
		expected:        decodeHexString(c, "6e6d4af61a5c67b7265c74e2da280ce8617adaa90fbc64fd886de42a5107dadc6eb81f76fe02e8bdd2aec2c6cae4ccd11954b5033f20303cc0a301ead5b33e94ef1d95173bf1598db7aea0087a92f838b1e18fe95e738b4da7f81e91a0060fdf2201aaf4c9fe2679943773602a0abdeb784c38538b3a47f47414086b3d299ce7"),
	})
}

func (s *drbgSuite) TestHash110_SHA512_256_14(c *C) {
	s.testHash110_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5c8a9f7e1416be2aec921eb7e0534453ac6689deb0e569011ae6ccf4375acbce"),
		nonce:           decodeHexString(c, "b2328815495d926dc8ff075d5834bc20"),
		personalization: decodeHexString(c, "4c539b94823c6c7883b071ac395203bfb5117b6f9d5db7cf4063132e6a2a3cb8"),
		expected:        decodeHexString(c, "4f6035946d4305290485c7aea10bbceb99b841770dbf5529e31ad51b0ce138344ac0b193a5074234adab8887a51d9448a2cc637a543372ed93885975b8de342c6a12a1ca8f3d053ced1dd2c7d6a3fabf6ea7860071c035f0fd54ee5775ae3a5d457d4af9e034ed337d79e9fd52c2ad051388dda50aa78d37403f33d52d30f6be"),
	})
}

func (s *drbgSuite) testHashGenerate1_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate1_SHA1_0(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "c3ef82ce241f02e4298b118ca4f16225"),
		nonce:           decodeHexString(c, "15e32abbae6b7433"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b790052f09b364d4a8267a0a7de63b8"),
			decodeHexString(c, "2ee0819a671d07b5085cc46aa0e61b56"),
		},
		expected: decodeHexString(c, "5825fa1d1dc33c64cdc8690682eff06039e79508c3af48e880f8227d5f9aaa14b3bc76baee477ebbb5c45547134179223257525e8f3afefb78b59da032f1006d74c9831375a677eab3239c94ebe3f7fa"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_1(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4ba70743accd4319e11de0461d9a37aa"),
		nonce:           decodeHexString(c, "845e4a96462fb16a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c7deec6cb5049c34c8be42375afec6f0"),
			decodeHexString(c, "37af8411085b41d88ecf899ff2bb1325"),
		},
		expected: decodeHexString(c, "7b6dacba0f66f2a12071f9da43f75a61240df75a47dda16f474ed2cf0308f50794bf017cc6e6f018fa9fa1500748f7e0b36e62c62a8dc427f58c1f2c5aed10a4726d886ca12325ef0c566d5bc9a04ecf"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_2(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ac3cd0ea3d26197cc9379b82bd8289ff"),
		nonce:           decodeHexString(c, "e363ff61741aab5e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c7c30f2a6e500b0bf946d021932bb124"),
			decodeHexString(c, "bcb40c373a4a9be606790e551737f06c"),
		},
		expected: decodeHexString(c, "15f49e7914fe0bce039b99060cc372ceb453282946579a47d9bfb61c5aed7a4da0dc77be7e7bc33b63d650f28490d92fb58725d519fad94492f712bd8193d094c865ccbd419625d5d27e249b1cc555cc"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_3(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "eb51fe7bd72474659947b0ed5109be38"),
		nonce:           decodeHexString(c, "0a2aff93bfcc0722"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "94f6173ed7c36a63c4a95c914d0742b7"),
			decodeHexString(c, "6b11989148cb860407a3675a33798969"),
		},
		expected: decodeHexString(c, "a679a08a100ecc5250c33b9b1dcd9e20469b30316d0e0e4780ffe15c06c99c0440f7dbf04621215d3d5081201d4a10416a9138782c5692ed9eaedc99c7ccfb09ab0849381150145dc0e55a8fa8898068"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_4(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9cdb91a21b4fdcc410f960ceb7ac8ec8"),
		nonce:           decodeHexString(c, "9d01f73ae168ed6e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1eb4bb2d080b1d3e95bc042ace94c68"),
			decodeHexString(c, "062dc866f414b951e3f61aa7fe6d1ffe"),
		},
		expected: decodeHexString(c, "bfb0077e995f49c403dc38297ee47b41938864d734b2e7b794e9bbf461a2a4a45f364d82a66b3730bc5c9902d7b5999f74554e59e454d658a86d4813b5e7609e03bc750c38cd52b36676057ed80bfd41"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_5(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7dd2fffc51456dd47260395ddca60c8f"),
		nonce:           decodeHexString(c, "631e5b0ce84e3652"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfc3ab0a51c3b0adb320fba6112ac856"),
			decodeHexString(c, "f5aaae47c823c04e6960dcc205fd77a3"),
		},
		expected: decodeHexString(c, "c6118f4689c7fccd5aeb468775807d39631f5b315f0c83b5d96fa6c2ebc0f95ef4414efe1c99ce71e62c4617dd1cc95777dddaa8258d065bf3af2adc679dd3d19d23ced6e2b4b47c856576f9697a5f42"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_6(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7491cd165de84be1ce94f0bc28b7a01c"),
		nonce:           decodeHexString(c, "7de5f37fbd777526"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c2eb193197be11fd96c6b4f8a56748e"),
			decodeHexString(c, "411d9f71e0f97e940650f4ca999fde5c"),
		},
		expected: decodeHexString(c, "dfd15d00e3693e89efffedd287af2f6f33004cb42b16b38b41a393548190f841dbcaddf67c410b79a9cf104ad1805e89e2c1a41a24053614d67e9567c1ac989db33d792d802455b17b174adbc9ded7b4"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_7(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "14986734e419b647da59bad386a16cf9"),
		nonce:           decodeHexString(c, "c37c9bf5a4365123"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "58bb485852a867eb556c53e904c55939"),
			decodeHexString(c, "92fd0b39db4f98260399d5c12d744ad3"),
		},
		expected: decodeHexString(c, "81c7509fd3aa29f79e6ce6037ed4800317b74a6eab5c8ee15205d292bdab76d7bae62cb2c26c6bb95d66bc8d3b270e89f9e61b62818ebe27ffe49f3eb86ee5fcd492b7ee03ddca6dd333a3d9334fe2da"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_8(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "29872460a7f13c18e68067a0fb8dd6c2"),
		nonce:           decodeHexString(c, "7d62e20aa71a945b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ebd987bd551b354bddc17414a26e1f08"),
			decodeHexString(c, "c2c0e53e61451ae17ff6a90c49b466d7"),
		},
		expected: decodeHexString(c, "95609822203263f92a40955a5619240e7409136334e31b956368b49bb855065172de3718c40483871b455d8e25f43423b991b3aa9bcf0e27b4509b45d8f7983bc054ed5ff1999fbb75f9e91bfeab8a6e"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_9(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bb0a1f9b84741b55384b89c055d50272"),
		nonce:           decodeHexString(c, "2586dfe6306db73d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bcf6ee1eac1d2d3a7b960500f80c5328"),
			decodeHexString(c, "543fea5515ec0ea5d25d019bce973909"),
		},
		expected: decodeHexString(c, "9d88970a8076401fc132ecff782a2f6817e4829f6e874172ab3b991f46ff5319987dd6ae539fc2a3657f00480c7bb5e7dd6d1a12969e81a387a9ae43ab9c0d2826448c6ca9e9bf9ae0821a35c4e2f0bd"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_10(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b9de6531312e4c7c6f492f943d74c2c3"),
		nonce:           decodeHexString(c, "ae15bdf3cd2086dc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f40354918f5878ccb02e3829893035f5"),
			decodeHexString(c, "df587b0822e64918c2f4903a0f3e2e3b"),
		},
		expected: decodeHexString(c, "a7ab93cd9ffe246dd4e3dc55ba946eb2151d03d0dd2b6a812f8e3a2db19c7810fbf2b9513413141562aad7e57f8ddf7425702f6c1976dfcd821a715868cb6d436acf9708481bfa095454c8c6b81de62b"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_11(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "70fdd37d3864be6992fbdb7855649fcc"),
		nonce:           decodeHexString(c, "9f6d994d1cdd270b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9e5a48c9b34289dcce947c37cf1a8db7"),
			decodeHexString(c, "a23dd58bf5fd187fc2a0636224388a3f"),
		},
		expected: decodeHexString(c, "bb89ab5854ede92ab6766db2db04a78cd03192ba64f957779d6a23221edbe86c1ab76ddd1af7406688fbebb8ad377bb499f66ec9672705d2fe30e8a2d5eed9b5da5c2c2fd1e059d06c84e3a4d046fc66"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_12(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0e1834ca718e2ec89df66f767e31018b"),
		nonce:           decodeHexString(c, "b97757adf5158e82"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b8f115dc9375400212e503376a90f6b"),
			decodeHexString(c, "b7b8a74d1db1ecb66c8a7f82ec55ec13"),
		},
		expected: decodeHexString(c, "a55d54fa57aa36456c64edf2a4bfc3a0458d20c00bd19b5dc971647eb46d282466c5ade26403f37af1906e57550bd41ed4e8848b485a122050c71ec1c59a28399ff07097ab2849cb0165fe6fa577f032"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_13(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "49666d8b26cf630f37eab9089eabbae2"),
		nonce:           decodeHexString(c, "85ead758fa67a29a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7702e397a447472df6aba9b322368aee"),
			decodeHexString(c, "d1afea4c22369333a7b08299ae3d44b1"),
		},
		expected: decodeHexString(c, "63854c32a58054e7ddb0c0c39b8e54a9de6df4a9d8b6324452cf9d022319f6b7e30c7f6c75019a0f37b74b8d1cb19b0dd2814de6b3668fc79c34222fffafbaca9489413d0e29f8b62d7594274371dd90"),
	})
}

func (s *drbgSuite) TestHashGenerate1_SHA1_14(c *C) {
	s.testHashGenerate1_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a3a0cfee0a1fcc885583615d2d4b5952"),
		nonce:           decodeHexString(c, "e7de2c6ffbf1fca0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "93dc424bd0d266879601745a23317141"),
			decodeHexString(c, "a17321015d327c5dc0bc1e130aad81ee"),
		},
		expected: decodeHexString(c, "f682834b5b492e09ff8e0f2c80683b032a3b262d16bc609c550dc0e74a4b7d8ebc0e3b8f2c9970d90aec9a82497dded20422b17b9e3cc3bca771cbe717ddaed5a7a6ae2601c7f765eaa719b71624e83b"),
	})
}

func (s *drbgSuite) testHashGenerate3_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate3_SHA1_0(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6466e1799a68012379631b3aae41f59b"),
		nonce:           decodeHexString(c, "6b0c61269f67c576"),
		personalization: decodeHexString(c, "cc936b87c8c8c1ab85dde0ad2e9242b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d1033ac553ef08f22fd38f12b49b45bc"),
			decodeHexString(c, "f004ba01f51455430d84362e376eb775"),
		},
		expected: decodeHexString(c, "5d675d1e92490952703c194194e1b061b6ec4e219dc2e1edaa891ef2d1b7ed050a06342d3c095011eb339f198519779b01ab1a580bd2e34d6cf4e47c1befe0c7dc37b4aafb31128fa396267f3732095a"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_1(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7ed284c8596b6f0107de3b4b95cd9114"),
		nonce:           decodeHexString(c, "69116c8a073bf4f4"),
		personalization: decodeHexString(c, "af668eb65b0f4df2ed49b37c842b272e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0ddc45922363f40271e7a01ed67ba84"),
			decodeHexString(c, "c2da95cbfefd2ac7395cf989711c1350"),
		},
		expected: decodeHexString(c, "306f553077034ec2a86a64cdf34387c59769aae149d8cdb0041a5c2e6df9dd1e00ef0898179d6c6bf02b2c42b4a898f48cdd9ba4ad2b99fb133c5ace4249a67bc30e6452495c186244dc5ac6928b1ff3"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_2(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "48fefe997cef3ba2b73e76aaf003590a"),
		nonce:           decodeHexString(c, "19db21e0d05d99b9"),
		personalization: decodeHexString(c, "d81759f6a2892c5b2d51b85f94d89872"),
		additionalInput: [2][]byte{
			decodeHexString(c, "700842841573e6aefc1fcf20aa877416"),
			decodeHexString(c, "a91efe1415ecfee71df068a16baf034d"),
		},
		expected: decodeHexString(c, "e6bed78be09215d9d1beb0b8b0889e677962a61bf901df09ad8e36ceec052588b57cdd445ce5a2c57fd40b7432860fa3c1c97847d790abd5d704eefc12ff1636a6c999c4dae9400a7c968e84bc7ec3e6"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_3(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "31c4900e6e37250a80db3b59cbaa10ee"),
		nonce:           decodeHexString(c, "8e194c494a419d9e"),
		personalization: decodeHexString(c, "121674898e64775d344f022ea692d9e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06620c1998de3331b92f2409e8635861"),
			decodeHexString(c, "e0bc045344e45927364b27d9fca2c53f"),
		},
		expected: decodeHexString(c, "1b6e68ec91ba9708562aaf2ce6e3b499f42a1b72b14e5c20a88e373b85cbffc924da24b4c08836b7a84927064eb0cc824f2dfa0f5aa8d480cbbf7ca7508d96370d92a59f8137ea39167a37da7f75c89b"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_4(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e8b41a5af5c4515282f3078688be48a2"),
		nonce:           decodeHexString(c, "4c3b5a559ceca51d"),
		personalization: decodeHexString(c, "cf1ad8f0839817061ba534e004f61311"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c783aa5e096f5305d84aaef0de0865e"),
			decodeHexString(c, "62271e8341725fadfc41ef136492c6b3"),
		},
		expected: decodeHexString(c, "48a11729d198f908269065bc852d062b9332047535c04d8c0ad0b6b99e9a90e686dfca344df68c7bb72ecbc739634519077fa6f1f00e8df4e3712cfa79ef4d2d7e950085994bd553502f673f8ffec17a"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_5(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e900d8f9803f7fdeb4fe5222d99ce8b5"),
		nonce:           decodeHexString(c, "a5412a73d59ffd2f"),
		personalization: decodeHexString(c, "10523f20a690465f7339f66f8d91f9af"),
		additionalInput: [2][]byte{
			decodeHexString(c, "754fb2b62ce1791c0a1731eca8d006dc"),
			decodeHexString(c, "66a8fa0727f4f880afd4006574a51bd8"),
		},
		expected: decodeHexString(c, "a72c09f23de8cdab9d6067b8ee0dbcbba97306ad711860f7958d4c5889e61549e30fea415abcb6211d0ebddd27da0ca1104a4c585486ea495edea87257d2b75462504538f21d1803f2679128f8fdab7a"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_6(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "395b1da917188371adbb0d5027dfc2d8"),
		nonce:           decodeHexString(c, "7739dd160f53bf02"),
		personalization: decodeHexString(c, "3e864c1287dc15ee2c585faed12226c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b406d8b89f3d602560257fa4760316e1"),
			decodeHexString(c, "94b72e355fd12a0834cd2448f4343d16"),
		},
		expected: decodeHexString(c, "e0a3a7c36b9461a03f75356e588b6434c1ea08d9168358c8287e7a3d99fc15530e1561d312c741df9e8fac58299ebde18fc90ad8a952c8984ef31dcdc9a6023d5edb4bc393b379feb9a918898d8c468e"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_7(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0acd1da3cfebd6c66d4f2ac36aec6dee"),
		nonce:           decodeHexString(c, "fba4c200ff691bcc"),
		personalization: decodeHexString(c, "6afca0034dbcf632c815e33e69f73340"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0f3deadddf2c53bfeedb47fed10cf4e3"),
			decodeHexString(c, "326ed610fe038f5f168cf7ee4a1ef38e"),
		},
		expected: decodeHexString(c, "a65ef722c91721baf5e609ea129a3211d05c53677a576ac5552e0d032ca17228a1a6cedc41a06e5add7d9c44c41110afdf5fa27f9cd4b4fd1b65c7a346c39fc3c22d1e042e396ae19628b2ee4f3cb5d9"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_8(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e9492967a06e84c80bd049fe9f2d08a7"),
		nonce:           decodeHexString(c, "287d30dc972ffc8c"),
		personalization: decodeHexString(c, "fa60a894d9955fd14d368aefcbe50e67"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bae9d792a1d667fadbeefe98d645780e"),
			decodeHexString(c, "418202160d92cb59d1e7378838643c1e"),
		},
		expected: decodeHexString(c, "a6dbefeaf6f859d7ac4137af798caa8fbb4fa2fbe496986cdc8c86babc72b1655e98e52c40f66681c4d4cb1319b3cfa97da73333109ce414ce41c93b1e62767fd26a757eb82dce2d4454f8e9dffb791f"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_9(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3a655b77527c1524aa13c71a3d9e1916"),
		nonce:           decodeHexString(c, "6612c746e4bcc0ef"),
		personalization: decodeHexString(c, "8a1c402e8abc71ff11d7e4738f14b00f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39af3ce99eb8e9ea5964310c27c50673"),
			decodeHexString(c, "b3353bf522fdf8ca87e840665db73a1e"),
		},
		expected: decodeHexString(c, "2be29338c915bd42397d73907d70f5d95ba9bff499d11f7a27399db66470e26598cdacb5ab06d1d13757043c8dbf56a05d30392cc3b21f4210cc141652ea42b02e4b957c846efd214a4be0f015b514d0"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_10(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "12420eb02fd4383263814968dcf60791"),
		nonce:           decodeHexString(c, "377a3fcaa2670b8b"),
		personalization: decodeHexString(c, "4efc5926bd999ad46c30e9bc7296b2ba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5c68c0f079110476c14877c5fded2b7f"),
			decodeHexString(c, "3f1747b2a64bb371eb566a0204c82e7b"),
		},
		expected: decodeHexString(c, "1d73392928438da9e9f7a28fff3332746f7ff90558c987383305c8db8175c9012debdaf73659fdb4c40417b5d8daa4fef8b42696359f05584542d14721d68f8ca7807b751d649ef24eb42946c1c5003c"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_11(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "847b94cbbff8bce709530aa019d10281"),
		nonce:           decodeHexString(c, "f1266d652c327aa5"),
		personalization: decodeHexString(c, "af28af297ab298a838616f1fdde1ceed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "09334ce23df4cf7629794ac016d4ab61"),
			decodeHexString(c, "592f2a1f075ae69f310827d15eb2d6c9"),
		},
		expected: decodeHexString(c, "0035684b66bd9e73cb23fb04fd47c4e1f35467031acf05dcd9771a8193180d7c69bf87521a1df19bf847c659a6c4cdbc0c21e2b9cb26034cccb902563d16c63f39314d8cb5950487bc378f775b8cfd8f"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_12(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3daf9f110bfe02bb4b1cadb61f79da85"),
		nonce:           decodeHexString(c, "1a0e5f88d50fd86e"),
		personalization: decodeHexString(c, "16b320d8bf28c72642aa32d4d9798c4b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "153ab430f0750659fdffa6f98c6ea9f6"),
			decodeHexString(c, "7eb0d6259b237b7c38728fe7649e643f"),
		},
		expected: decodeHexString(c, "92d066eb16cb8753630888e44018592880c6253576531d90d042d1be9671c1b78cb84261b5ce0b12f3fc1e12a88f9799cba1a8a05b1cb0c58925a7913ab274f875cc71c47403fb242f85ae858ec58505"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_13(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "dd71993ab8d7f4de58f4a94aecb0962a"),
		nonce:           decodeHexString(c, "b617be934450431b"),
		personalization: decodeHexString(c, "84c695d83bc7d5ef902a583bd799f2b8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "13ee6cced402ef8c8543ec3ac16a38c6"),
			decodeHexString(c, "9d0a0fc678849860320568f9b19053f9"),
		},
		expected: decodeHexString(c, "fbda060bd0d00b0c31c8cd13507c36579e6af5e156c96bd860646b83e81c2437f636deba7b2ef6e5958fb3dae265934476a654990d08926deedecf1e43a41ffb61bcad560dcbce858c6ac3f748955660"),
	})
}

func (s *drbgSuite) TestHashGenerate3_SHA1_14(c *C) {
	s.testHashGenerate3_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d77ff86d653f38975322d0b7f1c02b6b"),
		nonce:           decodeHexString(c, "4b2d2a31b1367c86"),
		personalization: decodeHexString(c, "842108e074fdea387cfe71526eaac9b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e488e16f48c61dd2152afe925eceee92"),
			decodeHexString(c, "12c692abd90ab485f4d9499680a6893f"),
		},
		expected: decodeHexString(c, "8ba04617a135d8abe0c3c0a170e7472e7ed750eac706e5c3ed8305d6f6f8a1a53e0c52d4853b21ab8951e80970b426008ae11952ff364817b6856ef0810860dc65faea487b5d7c3f3d63fd443756d2a8"),
	})
}

func (s *drbgSuite) testHashGenerate5_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate5_SHA1_0(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ea97cecbcaa4ed7da13becfeda6205b4"),
		nonce:           decodeHexString(c, "59315cd461663fe0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b4bc495eb171e88bd9f63427080fa75"),
			decodeHexString(c, "dac97bb5116f63bdb72f29f46d38e57c"),
		},
		expected: decodeHexString(c, "d7536dab2b3b6c7186443de2a7c69e6965a09ca8c70f5da069eaa9d1b9ffb2714bda751e479d837f7de4c8c97bc8c14925795ff1983af71f042df3c873e8c40081b9a42053d42153dd1680bb2e8a4556"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_1(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "be8bb186bd76c6e3c2aa016785ef0c94"),
		nonce:           decodeHexString(c, "0cdf980a9249180d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5762c6478f213df44118a872a761623a"),
			decodeHexString(c, "984475db5403d4acf71bad13567228c6"),
		},
		expected: decodeHexString(c, "1519c0132bec9881f803fee16fccf04db11da71057a883fe268d3c120e41b6ef8630a191adc2c9a4183303966f6f815a1cbcfdc22edc1f95bc82076ab5261e8ea749660dd3a8f1077201284a752970a5"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_2(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "8c3f3c3ad85d8dbf0b755714477b456c"),
		nonce:           decodeHexString(c, "69628bcc65bb1328"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d85f4408624692f0d0258dadeb70e16"),
			decodeHexString(c, "4f943e043dd224db1a144ff74fe913ad"),
		},
		expected: decodeHexString(c, "1e39687f18b08f56bce6c2022e5a7de1b04ced771630efeb32b6c4a125ba83eced08084c9ad179c626ce930704a060b25d15be032e15ee67695280dac2e2b3864ad308bb54f9b60b0f1bd9212e0321e1"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_3(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5f5a57c0e78390ba0e9aa6073102a563"),
		nonce:           decodeHexString(c, "4678275a8b8dfcbd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1e457cd70484f764fd44921edd931a93"),
			decodeHexString(c, "c3dc45c220b7bc21b318053f3629f56d"),
		},
		expected: decodeHexString(c, "1f582cec88d71acdc1544a89918628e9abb9f58b8ff8b96259df55bb1fa2b5a7529c0e790eaceaa8f4a81f8622698ebfb2db9da255a3f2b45156a4219f6dea2498d8dfff599a2d0c0bc8f0fb220dc6d5"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_4(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "90ada55bf6def39bf8f61699e7c45834"),
		nonce:           decodeHexString(c, "f034db6d3251b3ea"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5f15880935ae775fac2c15de20a32a9"),
			decodeHexString(c, "bff526e108b7818d5a30e9b0626a8794"),
		},
		expected: decodeHexString(c, "78793871b3d29667cedd4396389070c8aedf115a0cbf3a4ad2eba1c3bca058f8c3dec4e23c6353ff501614ea376783e9ecd8396910f04fb7005fb9f279eabd1b2620626499cd7702f41e781fd3413d7a"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_5(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "467d32153d4503255bfabbbbe445b388"),
		nonce:           decodeHexString(c, "182b13922fa86d97"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "84e961472125df37396be2d8f4187a9d"),
			decodeHexString(c, "1232644aaab0b9a661fa2aef5976dee7"),
		},
		expected: decodeHexString(c, "204ab49a983dbdda27bcd1a0b83dcd2333877d6db67d6c310d492c1827274e34226efa028870c5c125656dddaa77babc47db6bdafa3c2fade12d8ec5f3c8b81f81b1e9eef38f33cd840234d39767a97e"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_6(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1d22fa6cda79053b68bb6ba98b985a52"),
		nonce:           decodeHexString(c, "2f7d01a0fb26145a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b786ce43da77a58a531fbac7493ec2e"),
			decodeHexString(c, "917b220b809793a4193827e4fbf0db70"),
		},
		expected: decodeHexString(c, "bfdc3c800681acb5337bd3ad904e26fae6174c3e576579c495ccce73ecabd54a5e14e6a8980f6e8fb2cee621343092d04559451ee5e16deecbaf57d1bc4cb5087b3291941ef7e6c6f511a869ee2d57ee"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_7(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "54b5fdd7dd2e7e1c4f09a6118e4e60eb"),
		nonce:           decodeHexString(c, "8162379c2b3dd97f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2ed5078e176447a17986e98f9827a43"),
			decodeHexString(c, "5e6a483cc9f23e5c9d96952ba7cf105e"),
		},
		expected: decodeHexString(c, "867ec6f925c5227c7483678b4b0985f902f1fd87f22edae2a5adaf85cc771b16408ed646778d8724370bdb0137a872b76994e874de7fc2e724de16f5a07dc949d1c3bc9e73a4a0c29905c2b1cd99df48"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_8(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bb20617cc0f7ed8ef129a7a0e4784c58"),
		nonce:           decodeHexString(c, "cb3b83d613cc85dc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b1419e3dbf91e155cd3207ead528b23d"),
			decodeHexString(c, "9d5488ca664c2b1979489a4cf7420e8d"),
		},
		expected: decodeHexString(c, "97ee02e386b01b929bde522e5f198c85ed031025f4fd3f805c8aceab9d43286f7ec71422828b427006d035df494b86fb9e710901651897187e1cdea5a649418c8724f0e641269a03127252b29d79494e"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_9(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e9ae7fab36e16442fc6f88b7d890d73d"),
		nonce:           decodeHexString(c, "37f721f2b227f172"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "63f92ec70f47458ca0388acb1dc551d2"),
			decodeHexString(c, "853311c75063ada99d25baa6484fc953"),
		},
		expected: decodeHexString(c, "2ca79459fa301219881213cd3e0c14cb004d12e1b0c776fd4f0632f91673cb67a66522fb724be121f8b46cfbd122cfd2b16d36f27d1735e5f1732acae85bf20fb4b55c53bdc9309062a6649fb50fbcb2"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_10(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ef8b69c2113d3e8387500b8e91e6d077"),
		nonce:           decodeHexString(c, "a4b25bcbe92a9e5a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3a426211e76c0246cf2582a07e5ca681"),
			decodeHexString(c, "d8721b09b240486761ee0c670e5af473"),
		},
		expected: decodeHexString(c, "055e5f058b054377830ba4c731617f9acf164fc5e25174234e052095410b91243666ef57335329908943c6d88cfc00ee3f0dc00023ec32cfc490e82cfbf435e388949815dfc005fc0393d1d5eff7fdcf"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_11(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1c98412f62d9220ebd841b379128b189"),
		nonce:           decodeHexString(c, "e1be2432431e83eb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b43fe770e72497c13685aa558727f2d"),
			decodeHexString(c, "9682fa8b498d853f3b436498aa68358b"),
		},
		expected: decodeHexString(c, "ca1079d686754c553882ab963dbd43a953bc76bc779b945cf380ac6d38d21244a1bc146320214041bbb5560439fab99721ccdca64f79b557f6cd1e051c6b41d3a3bb867caedb4575749c5cd451b695e3"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_12(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d7f75f8896cecbd64927320dbbe7a71c"),
		nonce:           decodeHexString(c, "bb0e49ae3b40e28b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cdd35d76e4dceceae918a3f58dc11ae2"),
			decodeHexString(c, "efddd6121e3f27665e0e585b035f771f"),
		},
		expected: decodeHexString(c, "236bf72559c48ba0ea7d0d8a6c76e06dbf966af7cc29b168fd798aecbb00ddda6e82cf03d430e083cb4fe42a9eb547e2c82ad0dd62882c1731de37e8874419e896a4a53e448e98a0b30887a7fc8e50b5"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_13(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4084b05fd62da1890245ed6bcce6cd72"),
		nonce:           decodeHexString(c, "cfc362ec0dbf23e0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a5292a172339a4291fb30b9a3325aa97"),
			decodeHexString(c, "eae3dd073edcf84caac2f6161973ddaa"),
		},
		expected: decodeHexString(c, "b030974cd3f0a21251821be65a0a2c9d8baacaaa06804b6e74bfe00ba0691a055211acbdeb2fa7da9641ab4f8bbf74ab3032a98f2417697fbdf80d74887752072659f817f168175341ddef5b6efd9fb6"),
	})
}

func (s *drbgSuite) TestHashGenerate5_SHA1_14(c *C) {
	s.testHashGenerate5_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "46ebaf3fb0583fc5b8013e14584ce717"),
		nonce:           decodeHexString(c, "d5d68f69567cb290"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "32d09b604a65dc8daa35cdc34141b751"),
			decodeHexString(c, "b8186a294c7824b7c550c1054badec00"),
		},
		expected: decodeHexString(c, "ae9a091cfafbf0e74c2be8ad4b984e824a24e65ba7610b0f3ab1750e2f12de1620db6bb8c493b3d8b06ab78e69cf2dffd73d4322a67ee7725aad84fb458b8f26cf04846850202e53c874213221e761e5"),
	})
}

func (s *drbgSuite) testHashGenerate7_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate7_SHA1_0(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ef3eb1e63f9878d62984876712e76e56"),
		nonce:           decodeHexString(c, "f959d31650364e70"),
		personalization: decodeHexString(c, "fcfe42c0c65bbdc4a29eb0b598353e17"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d218da501fa09b43ed8e2fb8c3ecc564"),
			decodeHexString(c, "2479f4330af9910d7408404690d8eb93"),
		},
		expected: decodeHexString(c, "5de81d92cdddb3ec236037f4dc80d6c778ca72e128411a64689f26a243fb2b6fc54411ee9f417b1e113760139ae4b2f80d7475b666af16f87badc58e53046ee605ae9606ba9743c5e57a6959bebeb3a8"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_1(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7480afff274e3188c6c68628fc315c0b"),
		nonce:           decodeHexString(c, "fd5ebbedaadb6ae4"),
		personalization: decodeHexString(c, "1cab5735b249e550ff3609efe89dbc9e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "834ea3f15f773e6d9c27fa787aa65886"),
			decodeHexString(c, "85cb35d2e7ccef7d22e1638554228912"),
		},
		expected: decodeHexString(c, "f8b050224ee890defaf9aa7dc50b0e3adacc51f5d2b54fbd1cf99525681876d21e5c45271f8a8e9ef89870e52142a7f990afd486895912c3d456dbc13e89b28638e9a3130e808ddbae96de74b3dc1617"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_2(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7266e7e0a7ad0252d27b82a0289858d4"),
		nonce:           decodeHexString(c, "b02aa92033b4045b"),
		personalization: decodeHexString(c, "d0d22478c069deda197e7351edfd6a0c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36991264cbc2171d2e3fc956c2d81f57"),
			decodeHexString(c, "e4e2e976bf833695e0bbaea1d92bed7b"),
		},
		expected: decodeHexString(c, "06c9ff2a148a9b5f080fd0fd7742dee91e5f1b4bff6fc4ad274638aca07e9eebc22d484733c827b61f47c6d0c44b33ddbbec1f2ab3ad0042dd501aeee2c919af266351e2f070cee6e7288c306b8f84d3"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_3(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7c6c0d591b81bd601602f1f3be60a053"),
		nonce:           decodeHexString(c, "84e2d7b9d80af9e2"),
		personalization: decodeHexString(c, "e96d183121239ba35056264e73edbe79"),
		additionalInput: [2][]byte{
			decodeHexString(c, "673f409a0e133c6f37f2f3c3a30ef0dc"),
			decodeHexString(c, "c26810121161f3e08c854c299a3c5b45"),
		},
		expected: decodeHexString(c, "7b1c784cce238da765184c6fc03f2bf582d2652c5b763d425b5be932bd3d7565aad01eb90213d00fd1d38c59dfb3d5cd92cf8a0b676de1c113d7c567ac92b852851210b6207e484fdf4a3a6244a2ffae"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_4(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5f6ad5aefcc39b3319aa7edabd5c3b5b"),
		nonce:           decodeHexString(c, "dcbee75db307b6f5"),
		personalization: decodeHexString(c, "6bc3fb023c6fd9ceb65eacceaa5c4e76"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e9ba1a1f6a7315b7b5c557ab00c68d7"),
			decodeHexString(c, "e54bfbf4415104e476cc9f37c50edea7"),
		},
		expected: decodeHexString(c, "3371866666c2cabf028f888ab12b6aece43a7b2021d8098ecc423c3e72600bf49aedc71d24da4c7d992a7ce15896f7ae11b324fec93d76150b13892b00e911026ac8e3543bbbd0caf1996d9e07b049b4"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_5(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7f267c4cb07d85bac0614dddd4d89d80"),
		nonce:           decodeHexString(c, "d819ac8c6b43fd61"),
		personalization: decodeHexString(c, "617d258740d8ab7cb2c632b6372ef3ae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3a299fd07e8611e1c3bbffac001adb2c"),
			decodeHexString(c, "94f5bfb53e3203b212bffd88695cfb58"),
		},
		expected: decodeHexString(c, "468bedcbb2f9c6deb8141888a758bd7931ef128de4e678be9985298c2664d33999d68342a0747acf18dffcabc32a0c09ce7c6522673b6739efe66cc25b28c06e8677ab3c6f1e3840852d245e0553ca47"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_6(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "858923f05c1a1a9370c495fc8402589d"),
		nonce:           decodeHexString(c, "a88f688f22e8bd53"),
		personalization: decodeHexString(c, "4cc68f42206afd82608ddf9f18507398"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4670631a5d2fbd86f58487603b880065"),
			decodeHexString(c, "34f7b4c92ba1aa900f7bc676c28f4283"),
		},
		expected: decodeHexString(c, "a391bb3c2f2cbde7dabd18a72b4e29b3b5c11d07c5c77a6b34e930f2804d3abd5af45f4102ad1e41da512572ed94d9d3317ac9c76bd56a0f10ff10ca7a8beb592dc3c8a017030b0b190a7abd506ea59b"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_7(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "317ddfb1a01bb0e147eaaed375999730"),
		nonce:           decodeHexString(c, "d7c5a27ebd9209ee"),
		personalization: decodeHexString(c, "8d535a8d76042233e4b2bcf6ae3a7142"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b986568460caf36f3e83cd27d79fcb69"),
			decodeHexString(c, "1a4be6766a5899a21bea3287fa21cd88"),
		},
		expected: decodeHexString(c, "3e1c688bb6b680502061514b59ae90809dfc72182f54f0e8377ff50db2a86082f99e9f4c9eac9e3c5f06eec49d9e51434028be4e08f70634b1339db703bfc848ebc660a06ab8440409ed1ef4175584cc"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_8(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e3dd2e767f5205b6d0c4908d465cd2a0"),
		nonce:           decodeHexString(c, "4e356c171709cefe"),
		personalization: decodeHexString(c, "eb84e2e5b2208882d372f266bd1b5ba1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "831868d30c12ad5a81e39f74eda9f87e"),
			decodeHexString(c, "0e34960f9469e23ed4fa285edd6b8371"),
		},
		expected: decodeHexString(c, "e47b96a306a4079a1a79e7e8e93d8a5e2f96fd995a02be29c4c36f980f2342aa949967a3a4f312a702081ef7bd959125287411f96ce647b91b56ee932e5554d455703faa6abe4109436335c4d2312b77"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_9(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "cbff42d1361fa6cf283ea30f49f85abd"),
		nonce:           decodeHexString(c, "82418a778aeafccc"),
		personalization: decodeHexString(c, "93de9731c0c71807984681699a782798"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d11ebedcc74e249b27ab30987539792"),
			decodeHexString(c, "dd2c3632f573ebdbbdb5622c04b31ddc"),
		},
		expected: decodeHexString(c, "12afcb023c29795c6b3deeb6558d59c7a0739d499c4135c37ff3dcd0022c7515b1f8777c1f2ebb49322f5dfdf9ea14151d20869b5ca145feec0dcff84293ed31557744cc74eac3b15cf450d19d1136f8"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_10(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9c501a2207d416c084f8c6ba022a7a35"),
		nonce:           decodeHexString(c, "cb44767de7042909"),
		personalization: decodeHexString(c, "f3232ca9def83fbb545e2cbaf80bc806"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f4f676890634e131d03750e93b25fae8"),
			decodeHexString(c, "48bbaad191bdc777937444bd2334dacf"),
		},
		expected: decodeHexString(c, "200217f9151c702840d9fcd13dc30b993f1ddab2291791a92ee562e52abcd5358aff1ab24e63f7dd1af270fd1e3e58c4d400252253a80d7eb0501e4a4113c06d945bce640b775ad657bad105af60280d"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_11(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a8c68826ec8254bef24517adc8962f0b"),
		nonce:           decodeHexString(c, "bd514bfa52bcf849"),
		personalization: decodeHexString(c, "00072c1d2e7670bd38f7e4093d894b51"),
		additionalInput: [2][]byte{
			decodeHexString(c, "351af55b61249dbae60adee7156cfe40"),
			decodeHexString(c, "02d997aae48047eead333c640a10958d"),
		},
		expected: decodeHexString(c, "9e3dcea0562a8c76a569abcfc805a178825d8de5d7ebccaf48747a68d5e5480706ef6acc5fe5e0e24ca9362ab23df84ca629876b23bf4bbbe9eefe58c93676b47c582c1a7181f5057495e83d30ef9844"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_12(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0e579bc11f69b1d106e92c0a31833aac"),
		nonce:           decodeHexString(c, "8557f80c6f1ea349"),
		personalization: decodeHexString(c, "c6f3848b26fdb4b4402b4f9516e71145"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a068f37e9c4a7a155b8b73eb31a726f"),
			decodeHexString(c, "8c3597d23da6cd672b6ec873aac9502f"),
		},
		expected: decodeHexString(c, "dd605d5f8b193196ad843072768f8727594c2c4e741d220cb5d4e7d7001b93ced734f1a3ad263bdbf203fe5fbb07e62af456f9ef4bfd93d0c4f6a7523ac84b8088da6c5786c52c648902b972d0781c15"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_13(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "06ddcfcd7c11f7cad49e83290ccfe320"),
		nonce:           decodeHexString(c, "bdd6f8b19ddaee6c"),
		personalization: decodeHexString(c, "c473d3e0778927665f2e36187bd8e8a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6463160605f3d40344ae8fe8d5b7c5e"),
			decodeHexString(c, "ebbab9e5e4d84227e8cabe8bcaac7711"),
		},
		expected: decodeHexString(c, "0e57836e98299c4680bd28fb26ca848070ad83e9991f7d934c31e0ae17f32cd591d4f2eef14b2eaf95b27e3b1c75e9a0496a6deceae8fed5982d03a0baf861ee9324fc6e75093c7953461918a608450b"),
	})
}

func (s *drbgSuite) TestHashGenerate7_SHA1_14(c *C) {
	s.testHashGenerate7_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "03d389e9a0fc110d173adb2ceb3358ba"),
		nonce:           decodeHexString(c, "8b325599297c0d47"),
		personalization: decodeHexString(c, "ab25bef8d0097bbd42d55316af321bac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "af578fbbb8a830947e9b4e2c9e729336"),
			decodeHexString(c, "5a69864ca39da1ba4719dfe1dc850a4a"),
		},
		expected: decodeHexString(c, "8b846f03cb66f7e49fdddf7cc449a5f3f6ccdc17ae7e2265a5d0e39ea10fc3e6cffefc04147b773a1584e429fe99e885f278aff74a49d8c842e7ccd870f1330692fc9c4836dac5046c544be74652da26"),
	})
}

func (s *drbgSuite) testHashGenerate9_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate9_SHA1_0(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "21b6808c0fc59ecd925ebe35ddfece08"),
		nonce:           decodeHexString(c, "09dd03ccac5485df"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2272f1976f1465a07ffd72ae250e200d"),
			decodeHexString(c, "0b2e0090a21ac372c94ce89a2cfbc5f0"),
		},
		expected: decodeHexString(c, "165915d1ba81eb3f0b0213b058e528265d290c14d30b532a7f3cf1c3941a73ef5fe37c872d7241b1544548a23e9230cc7f2115d3bb44a30d1a34ea93bb5fed305f95ad7d4c3be5efede5a89edf97557e"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_1(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3813f376f4fd1c6d73f3e160d4f998e9"),
		nonce:           decodeHexString(c, "95428569742d387a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "64a733e774596ff48ded129b04d9285a"),
			decodeHexString(c, "5b12c6915e0b86998b00ed290b901a30"),
		},
		expected: decodeHexString(c, "6224b1ea5d097290a603b72fdb2a94dcd855fc702f9e7f0c1f4d57fa1b64e20f660beb6120f6d6ee24765b50674f1e612bb29159d09934ba18403328edf82f3530291e6172bc4b7e76e7da5db0e6cfcd"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_2(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e75004f41ae07db8ecefca47888ec114"),
		nonce:           decodeHexString(c, "1c1d86980d1dad6c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe3a341a5c8faff31559793f3dd9b43f"),
			decodeHexString(c, "95ee782ac0ac3ea4d2c5148f3b37747f"),
		},
		expected: decodeHexString(c, "bf506dd70b76c9541a063b8cc4aa6f93b5549d71df899823c9b69c47d30a77c4cd6f4e50654c4955a8e5581e43be2cf46a5289560acf000bf54430a1949b5243e9a799db3cb086f08e6e1e34e54d3208"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_3(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "786471928ff558a293f4a36686611872"),
		nonce:           decodeHexString(c, "dc41930c5163bc77"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fcfc99f05fe9a058c047dc03c0171c6f"),
			decodeHexString(c, "eba3d9774243a273eed091d5444a7ba2"),
		},
		expected: decodeHexString(c, "5eb133f8f1ef9d764ce450d6d2bedab3dbc82f5a956be57ac408d6ba9251e642bda0bbcd920efee32bbe77c3abe845b4aa0cb2dd450e97108ca2a9a0e8fa9b3c4addc20bdb2ab5d76a5a4eee3e015793"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_4(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "51359dd92bf3b8c432d328aa4a6ce8da"),
		nonce:           decodeHexString(c, "f844b34babf2bc9b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "593b025d3278c32b2697076195888ebf"),
			decodeHexString(c, "ae23f51ebb06f517cd5ccd2b86cafd28"),
		},
		expected: decodeHexString(c, "1d9fe28a9d695d14200d193636933c94ac118f2ec33c16a8a671f9c1ef474b5bcfb18e99d29ba6d55c1a07ea42958b5ff64685172cd7de24faf06510d5b9f7c84cf8955af6707b9321692336dfedf2ec"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_5(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5672ab20f667e5918a8087681c187dac"),
		nonce:           decodeHexString(c, "a9b42cfb74ccceaa"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f4d34dd4cc41d015d002630a57b5da5"),
			decodeHexString(c, "d571f6f4c1200b619483b69166a59cdc"),
		},
		expected: decodeHexString(c, "6c4369290d517d4097260f88618c366a855351bf5e78abcbb23321f5f0f2da592b21024fc7e9b27d768e841e8d778d4367a0faca959a2c9b96bd2f256fbdd345ab9cdd5b035bdd7ac3c5d356bc1ed8e4"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_6(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b65bc4cfa115bcdd15730ef5f7b3d7b1"),
		nonce:           decodeHexString(c, "577f9be90f625ede"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9e76dae1d2f68f6993e531e613f62263"),
			decodeHexString(c, "16a5fc599f9d94e2d3717cf77551d47e"),
		},
		expected: decodeHexString(c, "33e09a710ab41034d16bb1369e2bc157f333a3ba6dfc7300f6fe600c5245b043c5918dba6bd3bca6afcfff3325adabe550884f80b07239684bd2d8f9d558f58b520828067ee90f47b30954a2676c5cec"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_7(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5639fff8a23ae7c51bce0744cc69e534"),
		nonce:           decodeHexString(c, "c6d5632fd6899da2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "abce9c7fb00d7e4801651f89d5bd47ea"),
			decodeHexString(c, "1da0833202c82da971e8198ee7aa0b90"),
		},
		expected: decodeHexString(c, "7c0a2305e5233edeeda421906d8528426ccc455ccdc28f30df3b31ad8bec990bfc283fe5ffbaba93b880f9a01724684ce8e7242a26c3e9b1a9d23a14a481e5d3c75612c6be2763361a749e8ece57f7f5"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_8(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b039d4adad57680ad2a0f743a50633a0"),
		nonce:           decodeHexString(c, "0a472bdd9f6e2bea"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c539241ee05944ed0874eaf3aabf342a"),
			decodeHexString(c, "e97f92e56cde350d1901206903605f66"),
		},
		expected: decodeHexString(c, "228361a8b6113eed3d84ed46a0573134c70d2d5a187a35b4599f2bf1820309e7211dea34d33a62dfa742a216752a9e57f33a604be3e88ea0f15f5d916d72664673d886104a7b6c3904af6d6563e05761"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_9(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "71e7d5b1845707ebbed471bc663b8517"),
		nonce:           decodeHexString(c, "42503fc9496864a8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "59ea5dc55e22e034f1ed46d1739f1d33"),
			decodeHexString(c, "d97af01277043395dbef3a0eacd6163d"),
		},
		expected: decodeHexString(c, "d6c5cad4af95483428497f0ff0d8a30f673787f44ffcb9bf55c1ed39fa41e3f53849da76faa5377eaa832c835eea200226f5f3f0575d67514820024339e248b09111195c0bb7148facf310b593947256"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_10(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ef325265d5af25d255784e109b20b761"),
		nonce:           decodeHexString(c, "52f6faa7f37c7df2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7709e220f067ba161cd361639580c42e"),
			decodeHexString(c, "ed6acb902f1d0266c14f2993bdb77ff9"),
		},
		expected: decodeHexString(c, "3b8bc3e1cab67f41841f74b0d20b87b95483be53da229fe34b47151d2ac2808ceb6e50da6cfffb14b55d0f3b846676612130a7011915b946df67189514b69c11514c06ce271dc370f136f6c5089f8c6d"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_11(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "80da5b7e5316c99ae6a21ecfe2e013b0"),
		nonce:           decodeHexString(c, "28dcd71591a764b5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "39a165630c5dbf4ecc53f8dd825d982a"),
			decodeHexString(c, "576afbba4f9408050938b8d204a8b1f6"),
		},
		expected: decodeHexString(c, "9d0b9b54b9a2cb6186d43b1282fd214a00cb413904023b4820084f36a0f0e50888cb8b33f6731555595ea5b20521f18d1e94aa8eabafcf1686cdc850965911166f94115013e78d85804a634cf07a3d55"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_12(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d74921d6dfa69d7a73861016cf155cbb"),
		nonce:           decodeHexString(c, "3e49483902086004"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4839cd9386e68298aa274b83f5ae9134"),
			decodeHexString(c, "c08d03f65eeabde5c9bf7230a5a3bf91"),
		},
		expected: decodeHexString(c, "172b29d46e9acd26c0a38271adaf926e4ece4803f213abd6a1065b8fe31427f1f5bcac78f2f2156e7811e9c5c984f97aeffaa4519daed067ffa1975945897460548f78b67370d332af3af1f9a12ddc22"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_13(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d4a2f2ded01ae7a5c33b09f638f9ae5c"),
		nonce:           decodeHexString(c, "eeab2ac971bc8f6b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3e727b3ce8cf2200dfc067d13c80218"),
			decodeHexString(c, "6d4c889b91603890458277b9fcc57aa8"),
		},
		expected: decodeHexString(c, "9defb23c7cbf32e2f895d8be3ccd9b0c6f2d6cdd3db0aad9a3a5f2f6189a441758bf1a622313a9ad7da7d295364ef857901e2229e7315b06c75598c9ce6db26a966c3dfa49df45514bdf46125c622866"),
	})
}

func (s *drbgSuite) TestHashGenerate9_SHA1_14(c *C) {
	s.testHashGenerate9_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "bf764151136597eef9c1a7ccff0f345f"),
		nonce:           decodeHexString(c, "29f9059f90816c57"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7725ef70592c362d70b088ed639f9d9b"),
			decodeHexString(c, "5ab2e0067c3b384e55a78492f0f6ed44"),
		},
		expected: decodeHexString(c, "ca095da39d9c21d7da073d9c95d2e415503b33c327d739f1838bbea4fc6f0254fdaf8ef6152e9263f46b864f39c7104d1d337d99fee588061152e623d7e00a27e03b5d16fe6e543453a31d4dafeda3b5"),
	})
}

func (s *drbgSuite) testHashGenerate11_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate11_SHA1_0(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5e0566b660631b94bfa096b3225d59e3"),
		nonce:           decodeHexString(c, "812bba142937562d"),
		personalization: decodeHexString(c, "08e83a8e3d50e50db2b0be92f236f786"),
		additionalInput: [2][]byte{
			decodeHexString(c, "496b30ceb7ef9ebe9d449d124d2202a6"),
			decodeHexString(c, "2df0b03dd0ececd20552fbfd33188d4f"),
		},
		expected: decodeHexString(c, "481e3558c50cb669164448001daa1d563c52afe14a92b58dbfa612f0ecd94e2e642340a3907028fecc214087abefe3b65c8fc2e0255f520c85bf62f02a7e18796950f4fdd4a408bec6924ea502360590"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_1(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f9bd510f8ab89ee8451069f3f9c01cb0"),
		nonce:           decodeHexString(c, "a422dfa0b0621ea0"),
		personalization: decodeHexString(c, "94b4b3cf1453457fd58edcf4aeaf4c4c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3066bde4e26c14da649fc0cb714b7e20"),
			decodeHexString(c, "40544e972e9a7bc227c87feb193a85eb"),
		},
		expected: decodeHexString(c, "44f971347abb13b45030ef6003ac154e076e6ef49ec5849d80f092650701559c41cf6eeb02e8d8e319a5b75695014db895de56db1121798f8e681e6f4a3ec66e853f013b017859d1c76d348c0ee72665"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_2(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "105d33d2362b87ad3ee51fd7ac74b756"),
		nonce:           decodeHexString(c, "cfa20f0e566dc5c7"),
		personalization: decodeHexString(c, "764c28ee81336aedca872ce266d56313"),
		additionalInput: [2][]byte{
			decodeHexString(c, "12cca70dcf8bee7fcb198949839b1440"),
			decodeHexString(c, "114bc17e4391cc4fe8cd4515c2eb05a9"),
		},
		expected: decodeHexString(c, "00db8005e9c9191c5cb1c89f79fe13a0e9b5b4e10b4cc772c8ad9f86d57bb0f43ec8a4b875a5d42575b91d6e5277b18275ac769325af3faffbff6a9d66f68500a07faee822d08ed8de790bc51cea80a9"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_3(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5f21e96d25a54ec1dba73e67b2202dab"),
		nonce:           decodeHexString(c, "b8fd4345dc8eb083"),
		personalization: decodeHexString(c, "4092d35fe74609eb540bfbc18f0788c6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2bcbc4a021884db410b7d23a35162924"),
			decodeHexString(c, "7420ff1fbcf833db6afffa4c0f8bd0f8"),
		},
		expected: decodeHexString(c, "6f433e459b9adca5c73693c586e9d37183b9f8c4463805cf2b784fcd8b9e6771f53b6f8dd8a98e047617333cd26ea7b76b2c7efdc1cc2ccb8858777f6467b222c51eab14bc0d74c62af735820eca54ce"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_4(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "db01942b1e189b2981407ddfb84b3081"),
		nonce:           decodeHexString(c, "3fbe7768dcd64870"),
		personalization: decodeHexString(c, "eba9f4974b3ce7bf67577fdbb69160ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f9f85dc7362a009510955f9000423556"),
			decodeHexString(c, "7bd4f4d130a5d61be19edca07078e28d"),
		},
		expected: decodeHexString(c, "57a4b0e981762f6bc6a980b693a6e1dac85ce344e98f63de345d3427d98c4ccc00892c6b3ef735bc273f6857021a1f2b81be7d60c22e60042fad8750894f77fe64bf25312f150ffee6121b13451aebed"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_5(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "3375f034069c2569e64d718a4deb9874"),
		nonce:           decodeHexString(c, "58cf63122c30c5f5"),
		personalization: decodeHexString(c, "4765142da01613784583cfe59c5b9ddf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "47dc6757cbce9386867808b24f3278fa"),
			decodeHexString(c, "20496311bfad06ccd3460c931107ad87"),
		},
		expected: decodeHexString(c, "f599cbbbf0d93c9e30151dd08689838d4132e4d83bd38063da1d845766f4c37b00bbd560b78362687cdf7d674337d203a33467226d35cbdb6fc924c9b966f9df19966f59f5f57c9f3b46e3065ec8b652"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_6(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "629b62131d5af04fe2e1f377c6fe7d01"),
		nonce:           decodeHexString(c, "caeb888184526f97"),
		personalization: decodeHexString(c, "e96e5ca5455d7a26941bd993e480e64e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0dd70e0d02984767293758485619a318"),
			decodeHexString(c, "1b3405eaa98408014e6b14f080b4b740"),
		},
		expected: decodeHexString(c, "9cf202d4d49e744ae4cff504904991e4d8ad9612d64da8ea03ba023f54f4cc49598d2f8015b2c8be8400b4a3d9b44dda532b3e724e27dd5744f8f3c7d99a33670999b11d403d694c95cb7e06a8a0e0b4"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_7(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1e46ccc7b62a7a19958d65cb6d20c106"),
		nonce:           decodeHexString(c, "680bb7fa43b0db4a"),
		personalization: decodeHexString(c, "2e38eb083fc5db4598576dae95a093b2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95b3649acfe5158ef80906c41ae7487f"),
			decodeHexString(c, "03a90dc938650d30be53cd72c2690714"),
		},
		expected: decodeHexString(c, "05495f39993c97e1f84faee2058264b1c25b3ef61f59eba1832fa6af8c11e21ba3d4d38c257a46efaac7942a582b17277fec6b3a9a954e3f323c9a2a9f8fa9f90b1f47fbeec6d10698337c187e5b82c8"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_8(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "21952db33ebdf9ae6a785f6af9809154"),
		nonce:           decodeHexString(c, "722ee382e4a04ae5"),
		personalization: decodeHexString(c, "b991bf9eb7cca76f25f45e1d0e0e96ff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8d8b6ee7be52cb0414c55a38f6ad74c"),
			decodeHexString(c, "7f5c64ce3373c154376f4f189b11e6fe"),
		},
		expected: decodeHexString(c, "33bc2a7599b4a2db6f0dd1896e40dcf612b6269195e81b20c4842cda27227fd9e74911d5504fc34ca0d858412b5082cce2c07d377ea4eaa7e878229460ac2fb5adf241b292dec31aebfa4434eeff3808"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_9(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f081dd932d9f5e53d9eee9807db58fcd"),
		nonce:           decodeHexString(c, "92f027b15ca5866f"),
		personalization: decodeHexString(c, "3cabd9fd3de7e196e1803f3619a3d048"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5aea804f5250075d5427de0e73df42da"),
			decodeHexString(c, "eddc6c242813841ed7ac483eb6cbab67"),
		},
		expected: decodeHexString(c, "be5036d8f79fc9c1029c3f9e42f1045343dfca9eff6b74f6ac0b9666b4df7151ebd13fd052cc8bb9bc7b1ce6fce0f2749f313df7b9d06cebf3f6aa936270032e8e0dec3405ee246b80826850a1228900"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_10(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9eb908f509c77c0ac953560493f4dc28"),
		nonce:           decodeHexString(c, "1aebf69b03de5cf8"),
		personalization: decodeHexString(c, "a7f01f55fe0e6b6d731f387caf95d045"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5dca6d75183f3092a18c8dfd950fdf98"),
			decodeHexString(c, "50eb0cc76aa38e31b87e7cd8df950f08"),
		},
		expected: decodeHexString(c, "ba52cbdb845f5ee864fc1c17c6bd0a68439a7eee7027fef5a8083b2e0146c60464246527d52ae59ff5580f336b94594f5aa933c3f75744c76784df9783bdc91d130e29658fb272045e953794ae9bb316"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_11(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "f8cf962f6e583970027d4263f3f8b936"),
		nonce:           decodeHexString(c, "0cc239a1fe9750c7"),
		personalization: decodeHexString(c, "c9251c519d5526d6882f1b235fb9b944"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9752b7e44c67da390d4ed5e8b95817cb"),
			decodeHexString(c, "d18d460512747b638652fd4d457bbce9"),
		},
		expected: decodeHexString(c, "5a7e2ac66b5fb12b3eee1b6aad4b34e2439c53229e6f2a10a92069f8034562d1125a707766936b6e9c6551d7c8c02775a5721881f12a28e1d63c18e4a7869232511989c79c5a8d3cb1d4cb36ea921c78"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_12(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "55e311a23e872ba906bf060388e60ae5"),
		nonce:           decodeHexString(c, "5972e7aeb9f75344"),
		personalization: decodeHexString(c, "be3f6e932339c5b9f71b87e72ff4dab1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fab46e391e2c5f30b37298643bc55d50"),
			decodeHexString(c, "cf4e5483cfd794f03269e289f2b4c08c"),
		},
		expected: decodeHexString(c, "648ec7773f8c664f3d7fb279b51c5b9a3d9b067d6aa54e93c9bb9a892da91fad4a30e8e4c5866ddabd2bb44b243d7a3a00affec9efb725c951862ff9184392dfd626e711e0a3840db849b1e3b01b4fa4"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_13(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4a989e6bc37b9157fefe6789aff230f3"),
		nonce:           decodeHexString(c, "7e5ee246798dd7bd"),
		personalization: decodeHexString(c, "a7f5af48da677d6721d11e284fb1ffef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3351002030eea100c84840748b0a3d4d"),
			decodeHexString(c, "acd32c8d515109e90dfe1bd9e6b326bd"),
		},
		expected: decodeHexString(c, "a77bd7dc3986b43136606a209d600ad90068b567a5e3a2f75e61b2748e265e500fc7ed492b8cdde39a6b0a87ad4dd00529fa7feb4635e315b7116e1ce6251a806c7c871f7ccc4475e332054ef812c631"),
	})
}

func (s *drbgSuite) TestHashGenerate11_SHA1_14(c *C) {
	s.testHashGenerate11_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "75ddc6b58a06a0feb20b703ab6dd6da0"),
		nonce:           decodeHexString(c, "527130cde5214f55"),
		personalization: decodeHexString(c, "3a2fa9c3b13397ed8ebdf57d1efc1c97"),
		additionalInput: [2][]byte{
			decodeHexString(c, "27486f8dae1b36462639ff7eee869a29"),
			decodeHexString(c, "d1bfc7eabd8eddf622297012169f351b"),
		},
		expected: decodeHexString(c, "4c893c3d1ed3a190fa88e159d6c99f26a02fb5fccb98bdef9fe43f1f492f490109224ba6c317db9569f618984409f2fb3db0b1e2cd4b95746f159cca76f1204f6d2a4c455c547a39a5f79fec95c8f4cd"),
	})
}

func (s *drbgSuite) testHashGenerate13_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate13_SHA1_0(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "9e13a57fb43ddcd069fc8380b818f2ae"),
		nonce:           decodeHexString(c, "fd09586067e5d92c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2257ba77d8af75d23b80c9a9ce74630"),
			decodeHexString(c, "79775210d749662d6a5ea2b2bbbf3530"),
		},
		expected: decodeHexString(c, "78a4957978450a7f8ad00f3c3b4e21876f5a828cc60cd8eaf488eaeb1b9640bf493a9ceda1d3c768434deb20183b7c0ec8e7d751ba9011e3489563c795b678be5ea13618bcc3ba54fe594453c95c888b"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_1(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "a4e86218fbebac79a31b3acf2ad3c6ea"),
		nonce:           decodeHexString(c, "ea2aec423f4dcf62"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "00277c54a49f8d71d324c4f6d753ab8b"),
			decodeHexString(c, "8b56dd32e14fe606898f8feb4b5e05d6"),
		},
		expected: decodeHexString(c, "c9310694bbea399211ec91d41c60f32313fca28ae5eddc772e98d8f5927864ad69f71800d9331ea4e531e3bb8356c6ba9365ac76b78c40ff28d0bad4a144b8d74fe4566e8dcff046dccaa938aedbb290"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_2(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b13f2409b5bc4151ca7037f7de835261"),
		nonce:           decodeHexString(c, "2f7ae458deda5e41"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b24f349c357a53b342ebe531e1a04013"),
			decodeHexString(c, "e8a5c65474a27d2fd50f6e6bd03cc27a"),
		},
		expected: decodeHexString(c, "b7d3337834f2e223570300f16b9b5a1d1d7fda5eb5be14b89066dd9be39babdae41afdf57589e4c9ec062dc0ab0d6295458fe083dfa6c55147a13565628d596c913e28a82700d89a8bbe226d33e08e8b"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_3(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "70c73c776232d14f09dc1f84afadeab4"),
		nonce:           decodeHexString(c, "39d459b1a361740d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "679f2ff0aaf51a1e69ac27480d576932"),
			decodeHexString(c, "27d4920dfd2683b66a42ad3d32071547"),
		},
		expected: decodeHexString(c, "bb8e5008c11c4d6e4c63996f1e50edf480bd155fd04668652eeed6a871de7c8605f217fa7942e03f3cc2b8bd1ca18d6ddef73ed9ec0072036a3416102c60f83debebacffe9fdebe2a478c2c7ca68abb6"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_4(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b838bb136ad9b6f2b7913ff41af9af40"),
		nonce:           decodeHexString(c, "43ccad7a4227ad7c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "09db57817051cc2e19806d18b0a9084f"),
			decodeHexString(c, "f8ebc3544a5cd56e0b6136c9c3428499"),
		},
		expected: decodeHexString(c, "2060e3922728703c947e0d7d94374e9741f433ca244c6cd396db884aa41f6a75d834fe763c8c873a960ff301586c87012721d8be1bc0226884c235321b818ec195940dcb5c21bfe95936ec2fe4a5deef"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_5(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "e4f69f558dbbcf15768e21e276c7381c"),
		nonce:           decodeHexString(c, "6d14d8cdc6bbe6bb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbf765ff204ee32c5382a39dd6aff870"),
			decodeHexString(c, "4fa90168a5a0073090e4d4af432c39a4"),
		},
		expected: decodeHexString(c, "e65401ce0ec9f0d247d50cff3ad070bb1f3c9f9e81e7237ca0539b82e4c4d362983bb5adc3d2d98dbc9a21a3351e17fd7890ef8fef7268f5c0031fd49df563ab6771939dd2bcd6d65c307485c0ce1af5"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_6(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d7a32b5597d9994fcadd9d94565523a8"),
		nonce:           decodeHexString(c, "5f47254c88b71055"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ebfd0d0a13ffb06dd3bc3192f55b2c6"),
			decodeHexString(c, "804fc1772ab393c74d7cca2e566ef70f"),
		},
		expected: decodeHexString(c, "eb269c0f2d02ab4448f51e0421df9701f27e9da77e75b2e7603cf42152a8edc5fc292fa9d4046b22f7842bfa80d4a0334c79e0c8389a9ccd94f34b9c6a188b09996bd6d1e0ebe72539f6a25a5cc706f5"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_7(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b6801ab728562acbd71a2e2157eaa5b1"),
		nonce:           decodeHexString(c, "2ef69d68e40b3d82"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9bab4de8295a5ee6e15cc4962f089631"),
			decodeHexString(c, "aaaa367701552819c4a2331665bbf061"),
		},
		expected: decodeHexString(c, "091edfd88948e749b6aba6dd70077c88f1ea297bcedcd9e1f0da80e53ec1517f08786f2e864517a2754c5cd15008d6c03ab9ff2d058880869d8b8247be79a01133c556a515fde2b2119269c7de06b473"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_8(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ee5affe5e315db84f71a220b315888bb"),
		nonce:           decodeHexString(c, "f5e5f7aa35eae629"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d3e8fd6870d2fcb22381c1958e3875e"),
			decodeHexString(c, "8a3a4093fe500feaa1f7e2de9fc56bc0"),
		},
		expected: decodeHexString(c, "27e79a6de3b99971182eab73e321683e2a601dee46314531ef8a0400037b1a660e2cf0759df0f6d2afca9a0dec502b466d95afec52b89741242dada5202806ece73996df88f35bf7c686a0f69732fa9e"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_9(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "28f15b1ecf1e8fbeb4ebb243e86e510e"),
		nonce:           decodeHexString(c, "a149011ca0962b79"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c54425d43b1e6635467c5158ab570596"),
			decodeHexString(c, "794c9b2604ba2402a47638dc7360ac29"),
		},
		expected: decodeHexString(c, "487119e5db7e5b6e5792ac25ebc055e91ba827cd695b5b0f959185d9bb62e27a8f6c814afc39b26f94878707ae2d67d01877ea267fcc55d5df83b2d8099a093e952a43c5d8de9925e5a0bbdafd813700"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_10(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "ae23ada45ba1c1c491185311aa994b18"),
		nonce:           decodeHexString(c, "03a157c7a74a20d2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "09f37d8e0ce23d2ed9a820c41c9c06ee"),
			decodeHexString(c, "f38dd16e2fa8d52c1708fc3869bd9a09"),
		},
		expected: decodeHexString(c, "d45f27d91e077b9fa060c6a7d707c07c0ea3cbdb80194f08fea64d317715cef76dc88fef48356c1cf9f99e5644e6c5872e7937dc1e2c9ffe0dfaa87e425108d97f65166ac2c110ed0cd07facba773673"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_11(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b0050cbc412b3122d8915b795321614c"),
		nonce:           decodeHexString(c, "a098bfa017d5eeb4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "75816d4ad2581f92bce5e679bbcfff53"),
			decodeHexString(c, "7d40de162b812131915408f979bf1ac8"),
		},
		expected: decodeHexString(c, "74cf8c5d35dcfcf472f0842b465fdd136f12b405ee356ef480943e704cbb12a8f568d7e1c131e291a4e82a018b667bb5c812745514c902e713c9352653696ee07df6a552598d0473460bb38fe1d602c8"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_12(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "faab57f31239c22e8808c246596c1f5b"),
		nonce:           decodeHexString(c, "0387f1636543a661"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d1b1eac58101b56082f6cf3f03ba3e6b"),
			decodeHexString(c, "13b0b5baad299e76c732dd79878b7e4a"),
		},
		expected: decodeHexString(c, "1a7230d14eda7f2f96e30e9b60137ba33aa4c5be0472880437bcc61ca82d1e0828918b4062ff7dee89128a48ed87ac60657051e0eeb4cbf372a24befff4d6e22e73d3dfb34d59d213e05cc099d48bbda"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_13(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "93d771d07ae98d787fdb787f30abd7d4"),
		nonce:           decodeHexString(c, "380d743dcf70a78f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e8b4b833d8657364b8ea4a6704fb732f"),
			decodeHexString(c, "615853a9e6e59be8353cb23ed9b068c0"),
		},
		expected: decodeHexString(c, "2aea2555d25835ceb3425f584ba11f20f237e0a6af2f554b382411ecb0ffa8d6d5504b654467ba34a0436dae4a9d483f6f58a52d73844586bce2d1406f4d5f9b878c4d1460ef9c974cac1ce0ebe8627d"),
	})
}

func (s *drbgSuite) TestHashGenerate13_SHA1_14(c *C) {
	s.testHashGenerate13_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "7d7b1c325e9843c3d2770efd5e134fe7"),
		nonce:           decodeHexString(c, "9dac46a2da81030f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9e3ea6eac120d663e330d282ca9b9d7c"),
			decodeHexString(c, "b8d71fce7779a9906b9790cd1d4e48d5"),
		},
		expected: decodeHexString(c, "63d28a300a329ca202b98498c9f46912620bc85c246f034dca4186cd9b0e0810a363785878effde90aec8cb584862524eebf940c44fed21cb580d4115f3e0dda07e0e4a66689c2ff3e9b87edfaa4d051"),
	})
}

func (s *drbgSuite) testHashGenerate15_SHA1(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerate15_SHA1_0(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "1b2827ae51824e1f68a48116dfb2e343"),
		nonce:           decodeHexString(c, "b9eac1b947ad0f4c"),
		personalization: decodeHexString(c, "51fc5e485d8cd08209c9894821a2a6b6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39a52748bdbc7fe0ff4545f0179949e6"),
			decodeHexString(c, "4d1a774a707438bf46e6909aff874189"),
		},
		expected: decodeHexString(c, "900d585848388e452fde7771408c5292645df462389bbdbb29cd1e2ab4f2287468eefa08b7b3bb69c26453bd47abdb91ba582ae27bb9d5243f983fefc62bc186584799963314d0f564ef36be638b1a64"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_1(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0f3b65bb13f1acb3172be72edea5247c"),
		nonce:           decodeHexString(c, "3522f2cbac34238b"),
		personalization: decodeHexString(c, "d892f65f1949d280eecb295276b9c69f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "372c1f00a462a535c47a771b8e265358"),
			decodeHexString(c, "3062268c6109e92e964a655bbe3f9380"),
		},
		expected: decodeHexString(c, "b7bb52384ca0e607a986abac175ec272ddaf0530f241bda6ea7b54b42456569eccc025ca66936f2bacaee6df8c93f7c13a89bf3032b817464425f324ba1763ada71d2d83466c4f6931626482238ff21b"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_2(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "d79c74c23e2e016f64bfa3ad5b351972"),
		nonce:           decodeHexString(c, "5efc54f323f2083c"),
		personalization: decodeHexString(c, "08e31c36e9296c6cc2a96f2fd539ae5f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "80540491eb6a5b39b079726a2d2e6ed7"),
			decodeHexString(c, "57d492f0b098ccd5810f9a6bc9f79213"),
		},
		expected: decodeHexString(c, "40a1a6f13f9e2c2b20e4be32e5162155165403e92ab8e4d5517b44ad6d24e0f7e51a970b469adb6ddb9870c11955746e280667185c5a5eb1c721863c22b260c2c00780020e6a66e6531dc714e883bc01"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_3(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "da8b8c8a285dedce252e10eb803e9b90"),
		nonce:           decodeHexString(c, "477b9d7bb8f076af"),
		personalization: decodeHexString(c, "b7a6edb7ad251007c28b2d3330e7c66b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2671081c7cf3b20a65444c3ed495a8d4"),
			decodeHexString(c, "e31b868cfe2824135d1532f8823122e4"),
		},
		expected: decodeHexString(c, "602599edeeb4c86baf9479d4b745bd0f39299d2b8084f1f6df9f48eecd08dea98a8137732f08ae83c61b73ae5af095edf7caf112d98901622432b4f8d88f2e6561245652ef94b327faf9ce090f79068f"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_4(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "4c49cff551db41e601bd14005c9090a6"),
		nonce:           decodeHexString(c, "7e9bf1339d18cb6c"),
		personalization: decodeHexString(c, "b834ac33cd97a9b506593ed59709e213"),
		additionalInput: [2][]byte{
			decodeHexString(c, "85649837db269104ef6a976738a171a8"),
			decodeHexString(c, "598238e90189d1e923ae39ee5e7ec2d8"),
		},
		expected: decodeHexString(c, "4c28991d91984941d126add74b463a8c31c8e0b66d12e664021671234d4946cd3e55f14d22506623165ba9d22c6a7f11ff2a12c626746f739d70c971d4d47f22976a0e8d06b93661350b43c6b2754a89"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_5(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "65a08a98f1b632beda761c078d4a195b"),
		nonce:           decodeHexString(c, "b93a7d1a2f859cc9"),
		personalization: decodeHexString(c, "38bf8e9db845fb9ee4a4a50f6a14eb9e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "865a17d8b9f7f95a4b08bf94bda268a7"),
			decodeHexString(c, "7f18182a36a6cf7240337c4fbb5e4e72"),
		},
		expected: decodeHexString(c, "30e24271f413596f8cb0f3d37cb5d33fa5f1abeb08e5331ce6901bdbc1b8de42ac12e49bc050ebcff00b42b394cde6bef0993f002f18c0e68aedff969670f312b9cdd8359faf3e0c4de24ef9db613c98"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_6(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "70827084cc1f48317e1c95f255837a3c"),
		nonce:           decodeHexString(c, "765fbaf6d035abb7"),
		personalization: decodeHexString(c, "a5b804296206cf3a7893780865643330"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd67fbd0cea225282dbbde85f9d85324"),
			decodeHexString(c, "55b5b415ccb031f6ca34c9d7713bced6"),
		},
		expected: decodeHexString(c, "2b8540e37c318afa95fc1e8d08b8d9ebf9e2b910f22ddeb5fbae4327d37cd98724dc95bf367e6e90196639bd21323d111278ca1666658ac1e55c7c930f85e773d37dcfaf591151ffec2729e36ec5fc4e"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_7(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "39e794b3b956574adc9fa54001b2bad5"),
		nonce:           decodeHexString(c, "fc251a9ca81c029b"),
		personalization: decodeHexString(c, "7b564f1515461fa9ef7352a89ffcb98e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "249b0afda23f95f45cb51116923359e7"),
			decodeHexString(c, "18b4255845cd8b2f3ecd84f2708d6a91"),
		},
		expected: decodeHexString(c, "d5367e186259b8900a4cc2d08de8bb86503d23d8264252dd73ff9d21ce9cb5b465676269808b477b4b24a7231e5c8e31bf3a5d1d96444e8fe128cc7140213da67062660ba490b8e6abeeeb3381018f0b"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_8(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "0e54fd9317324539b5f87dda8c5feee2"),
		nonce:           decodeHexString(c, "f66ceba0134d1392"),
		personalization: decodeHexString(c, "83ca3099c4fd956d69de1da9dd2dae70"),
		additionalInput: [2][]byte{
			decodeHexString(c, "604460201adba7560a9b7fcbb2dab345"),
			decodeHexString(c, "911ee9cfbab9d8ab26131593b9a974b8"),
		},
		expected: decodeHexString(c, "5598424e63e74429431ad9a07df02704754ffb9b304d2893d02ec6b45f335cf0663e865203cf2f106c1a9472e60c0c0631a96fd3856255ac01ddb94c7d0a235da604e46c19decfd00834a463ea270657"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_9(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6b95ce60fbde0b7a1c084ee9c4c0ef3a"),
		nonce:           decodeHexString(c, "bc55d0d73df2016c"),
		personalization: decodeHexString(c, "54d5952c46fccb8bdda8dec9fe0f4420"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eefa1d450f09445e372f30c8e7d0f306"),
			decodeHexString(c, "160ade5d9d4dfdce0e044567a8bac002"),
		},
		expected: decodeHexString(c, "2a7d8d1d248edd67b80b636c22b5ca69e904cefca340bd8586d17955c82d7729bb243b2c1715074d856597406b86b925818724237041127e6728fe3080a43f6955019e10a0e9b4b65e1de655d2621160"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_10(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "83998366ce3e12202f20af4c355679f5"),
		nonce:           decodeHexString(c, "4db83f885fcd6819"),
		personalization: decodeHexString(c, "6e69e4ad38719f5a36f624e3766ffea0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4ed8ecc9a49fdee286355b494af86d9b"),
			decodeHexString(c, "c1e79feacb7575244342e0183d25456c"),
		},
		expected: decodeHexString(c, "ba1b0c908e3015bbd805dffc803bfa93f1306d30dc7f05d2d4e75d3063371b947ed7ec98c24c9e2de43b37220f85af7d4ad26388948693358da23bdee6f225e8776905da1c24b0f96125c081a90ce7cb"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_11(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "2a400808e03ced3842ba1eb3f1575fe6"),
		nonce:           decodeHexString(c, "c6b9b8c333063c4e"),
		personalization: decodeHexString(c, "4424f53b70a4f48730f812b3cfcf539c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "665c1718a488186e3f7d0bb696762aa6"),
			decodeHexString(c, "b6d13ebd7209437ea5faba33814b2c74"),
		},
		expected: decodeHexString(c, "2dc7a954ff439ec8108b0649acd3c5d8b2e28c8804cc9d249acafedc0ef81aab1caec356cc50c43b70c1fe4dc117290bb0648588bfe84c9b839640c1503438765cedb0e589cd13fc8cd80bd96ad19c6f"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_12(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "6f7a7d94dce02590e790b971af9d4295"),
		nonce:           decodeHexString(c, "d742b2e7e6100044"),
		personalization: decodeHexString(c, "b9db42702623c750b8a56f87e9b86ce3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8aa1660026346b64c73042ccd7be911"),
			decodeHexString(c, "b842d8105b29dcdd493b371bfe5fd9d9"),
		},
		expected: decodeHexString(c, "5eb008c4e9bdab611628ff587411a8262c2758958103bd266aa1af386ebc70482481dc8dd6a253222e34444be45a6aa231119987379bd7ffc43f7a4ab793d1fe90855264f1f94733e424dd97387a180a"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_13(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "5c6aed6f74cc302e86c504f0586cdcbd"),
		nonce:           decodeHexString(c, "e7cc8cd44f6dace7"),
		personalization: decodeHexString(c, "771141d942658fe4d658f4a8af0dc471"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d7a91e18f88bd509a6a0d590e71c761"),
			decodeHexString(c, "d46b57fa51a421e25aedf111157db8b9"),
		},
		expected: decodeHexString(c, "ad1ada8ce79045cb24748378b4c4629dd908058377502436e6de51b8dbbd70d721e804955a1ecb02f8b11d1d44d9f5011808c56a6afe94c77c15319d8e1f48c50234d13228fbc84e13b4440eacf4cd21"),
	})
}

func (s *drbgSuite) TestHashGenerate15_SHA1_14(c *C) {
	s.testHashGenerate15_SHA1(c, &testData{
		entropyInput:    decodeHexString(c, "b30ed321b4609c2c1b51235963958ea5"),
		nonce:           decodeHexString(c, "5bf9bc2fee575eb4"),
		personalization: decodeHexString(c, "8fbd86da0724355a4059f6ac78fe6342"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fc54b5339b37eb6889cfd7c185070bd0"),
			decodeHexString(c, "f6a783d6d42e5ad5abb0a996bddfa04c"),
		},
		expected: decodeHexString(c, "683faa732c4551604c8865b5f777571c7d3cf1a60124c59b91283da0cda9b21761d1c17c81856958c6d590436c73594bb36f46c2f89237d8c7a7ddd2c58394c983f8f6c000d77566f2a1d89bac054bdb"),
	})
}

func (s *drbgSuite) testHashGenerate17_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate17_SHA224_0(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "57ec3fe9533e71f46cb381364c7e7bb3be15c16b8a484a80"),
		nonce:           decodeHexString(c, "0588d36a9b96207b3c169500"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e557d72e18467da1256c35ff5f04ad049ace3a71b8149b55"),
			decodeHexString(c, "ff296d65a9733440c2970f2eb0f98b52500d5d87819200e4"),
		},
		expected: decodeHexString(c, "b8110a77cf2a6d5bff616f13d203c58b1c3fc982c2e6d1717cda266be36bfbddc4680e6881244a92b2a9eb2fedde45e70c8236b20ffc507c8b34e6b45147f85505f9237c23d5b6bd9ce2e69ef559fb0a42e26c42bbf64cdf4d8ae02b9e7e033abe49bde1a49f857565b1b65d66dc8bfe"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_1(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3fff3ced5bbdd110846671b7c2bc239e9dbfd08a78906564"),
		nonce:           decodeHexString(c, "d4009d747d5e191d91c710eb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4964ce869e7a9a0e8be86da8999313401308b979c2ca07c1"),
			decodeHexString(c, "a35e6c2fd6dcd49cef38f8023255822f82a825bf5d4cbdc2"),
		},
		expected: decodeHexString(c, "e4feda7a2d3a3bc9a63b16dd48ebef84503656a5a712312f8cd18484d89ffe2e2db35b6da23ffc6fdb885a37fb594d40a5952916d909caaf4baa422be7f604769d70d9134f09ac76666f90897e390882001f4a5dba98fd6e3c5d6ab4cf259be6380b11be2f64158650cd03d28c343f0f"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_2(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "546d1ddf61bae1b0d070dfdf14b9842296136b9905db5f7a"),
		nonce:           decodeHexString(c, "9b567c2c99647072a2f36f9f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b47ea851859a5359a4016557d3e400b2989d31adead62642"),
			decodeHexString(c, "5c7e7e774dc0bf68e5fa5e8961b1dbb88f48be925e29c524"),
		},
		expected: decodeHexString(c, "63478e622e9ec86597f757a0453d0d79f3328dfff8606635afbd48d0930c44cbe067eeff10cfd56029236328685a7a3d96c8a84145a648719130239db0425f21845669b9cb1a114f3fc532e73818d0e832ce28c945c45d9dd7463b76696115c3afad89946e7bb6096d61c77ca2d0caf2"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_3(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6bdae2c75a1b00bc5577054d425835f2104c57f73bef9c75"),
		nonce:           decodeHexString(c, "208ffc58c5562e8fedfc6405"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b9c029bd7716c56b1d15c34de531344b80467abf2a3ac1d7"),
			decodeHexString(c, "8ddfad16dea80d45620f58b791b0e4efb6b06fa707103fdc"),
		},
		expected: decodeHexString(c, "e42b3c5de8bf00430e57948a515f59db11f534c5c680b9ac0c6a960c9c9a4b6c2ecd3dcf28bc5e421ae7c0dd00e5b917420d4960cc4dedadc2ba576bcd4626ce08439f747b7e192f167e3a814a59ebf78898c2e5fc2d8ae2618f0f36778a9793dd120130423f09e7a51ddffcd3ba7083"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_4(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a7050ed64ca3be6100c29d7412be192e2328bb4a428f9817"),
		nonce:           decodeHexString(c, "87f1be6e98a5fce717865a5a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "62782544d2586a307e8a93815d3d0c0f37bc130fe6a617cf"),
			decodeHexString(c, "4fae0a45436047f36bd6871873995e569f4f51f8bd78223d"),
		},
		expected: decodeHexString(c, "837b99c913c8c876d251c81541254c5d9955c8df693a9a09ff485ec1c5edcc9eb58bec7fb70bf01ba15437d4fd6514fbdef0551bdc2862166231c349574094542145df5afb2394d46f089cb6971213322526339b7a9b82d2b42ed53f9415319a6255bf7c6a9f973fef0c598599cc0e4b"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_5(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "6cdf34bfa839e52c08ccfe7dc67e28b1b6a6eba76af69d1e"),
		nonce:           decodeHexString(c, "6881cac7d7bbe9d5e5cc506e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3a4e7355f1edda2ec1f04c20360720aa98e092c85d0d1497"),
			decodeHexString(c, "7c669b1ac5529d08bdbe63420fb7b3c4f57b2c489a92562f"),
		},
		expected: decodeHexString(c, "4dad4488f235c6f3764bbddfa9584ebf3a8f9532b32fa2cb7ad84a65aed9fef6883688e8d4a404e1b6e59053de30dd65c3b1afd12bda2e2c81a8cc18d13d927499e6e471b730ad366f1b135fd4d97cf8f2132f7b966233894cb6397a435e516ec2ae26829839c0ed5e58960cc13a886c"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_6(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "faeb44374a731c82fb796f679c137d360e905978b4ced587"),
		nonce:           decodeHexString(c, "0167ca06d311d149d6ed2f30"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8481def8df17524980aff55d653a1c221baf18206edbc70"),
			decodeHexString(c, "16d5448307898425cb1014d6a14e641e25184ed2d2d3dd3b"),
		},
		expected: decodeHexString(c, "7a942785235544df844c6c3033e28a0298d0e64709efb36d3d8e9d3da4b1997dde9cbc58f6f0463e3425836d301960096eb0fdf6ea523be33ba35cedf9851955eb337dc06ac2bc67939da433912262f10670fb75583d07e848d8ed7ad9509b40b88b4fab9b1a4a70858b62f9618d42d8"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_7(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "509d37f3cf2d564ca35083a8c823dd498f36de4858c9cc30"),
		nonce:           decodeHexString(c, "0921aa137edf66b88398788e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "949d1399d8852a6ec8edfd205b5c8dd8b5560306b3299bdb"),
			decodeHexString(c, "49c7c7774b4edd529d3012b25aec554c26f7247ef62b9f41"),
		},
		expected: decodeHexString(c, "374fac9f78c78e0a9a00c9ef630aa725d7f4b663549ee32a91317a66762032e6bc2e65c8f121f9ddf85276d1205b4c0bdd3c9c672ae287127f15a5294905fc508f18eed03e2bb0a7deb87cf6def9e558ee83c909b348457582877098cec55f32f8996cb97a7cb477db51c48f75f93b2c"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_8(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f0233dab01ca210375e0691d710e278bc094e0da74e28a11"),
		nonce:           decodeHexString(c, "22a3e5f5cbbdc0f02fdde2dd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f32e29e5416591ef1b0793d90931284733965d13c10604eb"),
			decodeHexString(c, "1f319ecceb9da477a063f53415e477217af5426d2081e0a4"),
		},
		expected: decodeHexString(c, "ffb6abac49d5222c54f7445e7c2f96ded4a9b33ed082e6b4eb29098af75faeaec618c08ed4b1b8e9851707e5bd74d626aa0c7a473c6b225597fb986c0a84d1b4db05b2eff7574e7f8daf9165621408fc3c70ff143a1d30bfdfa6846a9430f46c8122fc61925bc4d3389203f8c9d49677"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_9(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "371141411acb60ce353a99001a34ef64ecd08d9c1a3d94fa"),
		nonce:           decodeHexString(c, "20e31c5f4642f3419aa6572a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e7bf563c7481567cdf750b9594bec27a23d9ca1a2afaf121"),
			decodeHexString(c, "ef60f08d130484bed0259c3afa1ff13ff8560fa9209bbb55"),
		},
		expected: decodeHexString(c, "670eac12513e54bfe7e972b98376e3f3af484e74ab9c8b254562b4d80ddccb749e429f13cd2d2f891c0da0d7ca82ca0c3e73e23f9c445b2243f0392690591e399f7a6ac93ef811122e0ef143ff712e518ff48b2ef10752e5c0351346f7eccf431de77f2da8024c03bec3e7ae2d6249ab"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_10(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "96e47d26fbe063fa5672e45d85beddfad1bc8400927595cf"),
		nonce:           decodeHexString(c, "cee03bd6ccf68cb43339edc5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed1b0cf1cbcbb1db11325d0d2c42bb4cafacf52d48a90bb9"),
			decodeHexString(c, "5eeaa3791e518ad39d49d6feda6ed8dc8b745b1dba128c25"),
		},
		expected: decodeHexString(c, "0e9e53b9a3755455b75002797ae1715bbd593ed3b0aac423916da5048ab3766ca3274e715cc739e1d8dff93d3eb5eb41006b362528f38eed8d65ccbc48c13e4bbe8501d36cf89caec78f306442b4c84032fe2688dc453fa3a5fd5ee388495164694e5af82548d2f35c82e21509408faf"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_11(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "39089d3faf3c4f562ba15c8a87b533b792edfda4b70c35b3"),
		nonce:           decodeHexString(c, "6ca12a4ac1957a25bd2d72b1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f1325d8cc54a4bd472e47a7f298d8f87b5d21522b733e85f"),
			decodeHexString(c, "cd3e29872c0ad0ca42e988a1e7b2dc1dcaa969de8a1e7612"),
		},
		expected: decodeHexString(c, "18f69df6dcd8e5a13c55c779f78381e501a7a59e1add9cccefd95866ae464e441c16cc538a8519ae39373b476a90796c6fa0f31d9789a857c2c2db02e27197f28571aed511c97f2fed2871105c2ac76b7382c563caa78177f8b9ef481aa04773ae0705ee1f71bcba2c58db671f77acb6"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_12(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "29273551e60c507b97ee3321dffa92b05e47e282bcd47bd4"),
		nonce:           decodeHexString(c, "684db0cc7665a4f1f64168fb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "878a46b06144e8a32afc3f31e8c5718cc6601504b5580053"),
			decodeHexString(c, "f7dfb4c5acfc5310a6c50e7f2ba088b71f1cdfba13331219"),
		},
		expected: decodeHexString(c, "2a31df52695d478083c5dea78b0ae1bff652c751eba47a48cf921b54993d469b1a31d96abdc3d63907b4cce9b76ea6a5322b1e4bf6c10956cc104a950cb1991390374bb8c6e4eb4c370300a59138602768654c2f98f3419cc76c95253a1e4fea1b92a1a57806c492553f6d9344e16767"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_13(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a688e1931165bfa1a3abe9a05808770a5794eb418ca09127"),
		nonce:           decodeHexString(c, "8484f1229a5ddc11d3db57d6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cd41c2ab3a6927b0e69f603769d76b42ba4ce0a5c91e989c"),
			decodeHexString(c, "3505ebea09a6d420186202e06bfe1bebdd642cc7bf22234d"),
		},
		expected: decodeHexString(c, "d37da943810b389e6675179f960b1c1d6f59ea87f3f14568fe53ce0885e8ef34f3384fa840742a9164092dcfa719e0372f20c905694a15b97667e16c9bb88c66e3b94cd0b41e9010730a60d6eb48ef61e287e71128d7e05e22c4bd3480f861bef7221468638502a4ce26f2cf5a015ca1"),
	})
}

func (s *drbgSuite) TestHashGenerate17_SHA224_14(c *C) {
	s.testHashGenerate17_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2a9ed97cbbbc782ff8578faf135881d22ee08aea73b3d920"),
		nonce:           decodeHexString(c, "024d6781b3bd41c5f468876e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae701404440c584e27266a12318c1793b6a112d96e6a6749"),
			decodeHexString(c, "53861747c9627e9244679d58e2dc8cfd8a72d1bab611dfd1"),
		},
		expected: decodeHexString(c, "665481033912ca7d87caa56af2612338768b044953b02b9a50e0244bb805ca007648f71ccf923030e56baa13a88111fe211091a54744aa5d82abe97775878059dedc6272e7c7a5392d1fb443b770ee7f5dd05a3f2bba4cab1cf473d02648d4f8acce91ef167e3ac00c1c9324ca074486"),
	})
}

func (s *drbgSuite) testHashGenerate19_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate19_SHA224_0(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1bab3002107d7de482ddbd21bd1ce935167214236c92e43a"),
		nonce:           decodeHexString(c, "4a7b14930f5df7b3bdf07054"),
		personalization: decodeHexString(c, "4b1a3411df2fba9949d7b700f3eb75beb34262aafd674e9c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7f1eb4bd7ec9b4e59a0fc53a02a95170021b5776f7285d8c"),
			decodeHexString(c, "6473fef885a0da4788045f51cd66abc76ee052f1dbe5a30b"),
		},
		expected: decodeHexString(c, "e0a42484d556ad6b20bb2dad3511e66aa2805af76174a70632ffbf6d52f157039dc678698ee72aecdbcfe4fede4fee9d60dc38c6ae8ec97966dc88051499cc3a9ed58bd18d61f7cc64c095a2b49a956625c507a04888fcc2e19ea2c285be0b821c3862914bd620193f5e26eb81e6f2ca"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_1(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "30eec7225472ef50584745c4d676b61200ee836795f017cc"),
		nonce:           decodeHexString(c, "d761bf03df1cadd9bea7be70"),
		personalization: decodeHexString(c, "002a1e6b9b5ce9815f73e982394e59c950bbb24d206a6c24"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e7f188e48df3b5ca50b708b5c84719ab27b1581252fccf27"),
			decodeHexString(c, "f88d3d90d63cc742d910f99f5ecd667d6015b85bfe221eb0"),
		},
		expected: decodeHexString(c, "e15b37d524a96b80df3760f34292ecaf61058ef149e07f703da7149400aa6d99c782fc763bad6c49e30c6979d759f91440dba1caf411a691de73514919e9e6102a3dc766c470181b10c3d4345bc1325cca41aa784456f2fa78d5861c591b4adb749a6d97be96433aca16a0e603aa3530"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_2(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "72e7883fcfccfd62d3f2150fa08ee829c9c52356aec67541"),
		nonce:           decodeHexString(c, "001df146cf34d5e2e595a710"),
		personalization: decodeHexString(c, "865cfe82eb7c484811ff8ca0788689dd7bed895da4df4150"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1e7ef4aedcba893a3a064427fd2510a2d959648997ce0834"),
			decodeHexString(c, "940d31590fc49c73a386d8d0f3f1eb6c0eb2f27071982612"),
		},
		expected: decodeHexString(c, "29125118f209ced4edce132adf6c303924751ece992e4d69fdea39f41e2ab70d8fac68c6d97dfc2a85a63bad2e224e1f2862533a69dd0991b322a8380be33a3bcad0b7e157d794922e107a8fde5951642b05f6872409aaf7c33647e0efd8d3e413247ea2e1814cb90802d244894a7d9c"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_3(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "61bd2985abde8125847f20bec4aa48a5db010dd7a30df85c"),
		nonce:           decodeHexString(c, "e2e2f42a84a539be984d2943"),
		personalization: decodeHexString(c, "3028581d08ce2ece9f3aed84f39e74f91c6fcd255302e8bd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7166e72914bc5e7e604a4e0676efbda668053ecf17ee0c28"),
			decodeHexString(c, "f7ca28589b5a3d8c4b951858c252b9982bc7db1e2d0d7692"),
		},
		expected: decodeHexString(c, "ba9ab80afd33c4ff09192a41bad9bb631c3906e80516a291beb9ff3e094473a7f67cd3b24494c3b8a27b5418948802d091f591400ad95223fed1fe74ef0047b25da08a1a6a292213fd669a801f732cc1b3a3e37c948d12746e2efcec25eed880ad1284283d82b996da95907d137f63d5"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_4(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "63f006ddd4457b36ad98266c409843bc887909e91a08cbe4"),
		nonce:           decodeHexString(c, "78befcbb0f4b40c7f8e05e26"),
		personalization: decodeHexString(c, "9421617640fcbc98a0c3af2ccecc47f17a7a25d215404c0c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6690de079871e452b0faf6d4bc2b60ca0e94402a15d81407"),
			decodeHexString(c, "910976d3fb6a72a9ba8e762ababca95f7e2dedc4722f1b2e"),
		},
		expected: decodeHexString(c, "0c127ca482e866e0002de04b89dfa4da737758e2f86e59d8e38562515b366b8150c4c9aa760f7a990f498283a8376ea9864e1c12700748f3aa7db8a58ffc2968e4e3b6db7a30a0cfc400ea1fec45bb3ed47e63aa757b16bb3d83c51094847ecf9986b600f8f8e6c8f2d71c09bd8c0c5a"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_5(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "919ce30cee5673cd5e370193c82ef302042e6a086ce3e417"),
		nonce:           decodeHexString(c, "2c5a8c562f49ca60ea2b8a08"),
		personalization: decodeHexString(c, "2e40eefddaa7264bb7862ff29749b30dc08dd0a6dea87aef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a291bfe3f658ffe92cea07cacb7da014d9a1abc6dee4f8f"),
			decodeHexString(c, "d1a0305d91ecb9e475ebdd79456c918cc42078b2ffc8d1a9"),
		},
		expected: decodeHexString(c, "ba9f67613f729a4c439f7f3d8ec243aa6a93f0d24a5193790aaafccb5884492e97c659c639fcb9c1645139b9ff59ccb5e6547d5ef6d0e9677a2783a4b92fa908393a899acb10140c127da125368f5d2d33db02da4f7853d893c0d796b9610b581244f8970493308dadd393b4dda24201"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_6(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2e1812a26b9f528507703f924c4e90e0177d0b840d8d7895"),
		nonce:           decodeHexString(c, "f5f4941005232e4e81a5924c"),
		personalization: decodeHexString(c, "982d33bebaa6dbcbe340fc9491900bf630db8623f5e9018c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "726c5209a537bec66a88633821fa9ed20c1513343f138219"),
			decodeHexString(c, "16708e9315e047dfba2a09cb6e470d427c30364a57f0adfe"),
		},
		expected: decodeHexString(c, "bd8085cab7335324cb5020fecdca1ae30959f9ceca2cc165591e699450cb28fa31130a3055658dff122f8b51c571eb5b32b9c6e3950ab93c9f8d25c83dd591e31dd73c3fa874abb6942c450d95b352214e480943ae6d51376b8fe08c9a6af0d231548085fd883a35a5c5ceb81a5068b9"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_7(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "edf886248c36776c68f61ad1c503ea221cdfd5f5b46c0aae"),
		nonce:           decodeHexString(c, "86de752e8a66db374cf4dd21"),
		personalization: decodeHexString(c, "b1ee07f1b27c5095020761e95b5797136b8e4007ea34289c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0e37683ffa869f741d7780d3b91f6581053a3f776abcb1a"),
			decodeHexString(c, "cc5c7eafd69ebb7f53b95a9c4898bda0a806e33fa7a8199c"),
		},
		expected: decodeHexString(c, "f8364516bd1caf2756d3fe58d28c63aa5fc938aa5c81cf5a391fc0534777b177bfc81234fda0f8c48329c8abbad50934d239774ef578af162a1ab8521a05fb946faa8d00c7d0aee59d20514bf0bf2f34a2e8bd8af00e41485cb980b93f3b23fd3ff369e73a9a7e8e5c51bd5ddfd6a3c9"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_8(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1bb6659bb07dd8f917d116c7fd8f70b9690900478dbfaee6"),
		nonce:           decodeHexString(c, "6fe8a574a9c3b861cca7237e"),
		personalization: decodeHexString(c, "feb686a43fab38860c78782b7af6d6f84a5c0605746858cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc345708d16a151117e727245a77aa7876950fbbb93c191d"),
			decodeHexString(c, "aee40ac3ea5092a0e5175bd88394c8a7ecb918e2388fd392"),
		},
		expected: decodeHexString(c, "a2940c974731dc62f488da42e13d393b7245cc9b2421de67f1bd50cd369507f157095c6a93753771aee9a97963319ff00fbaeece28a18aac7e66f697957d37a74cdcdfdfa0c55900980224ae59486b3d14b9c5ef0c9932c78aeeccd883d4fb2b7287fc4220423f635b3455e6bcad9f82"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_9(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "19cd3546e81906f47be220bc0e61a4a3ee2649e2892ed9e9"),
		nonce:           decodeHexString(c, "0fc41524fdb61c7446c31d06"),
		personalization: decodeHexString(c, "e4debd11929e7100f9717d07499b3d2b42294b4e1aec4615"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d18658bcfcddde258981445127414ada98f41c9a88cab369"),
			decodeHexString(c, "b88b9ad3d560d9ba8d46d1a75c1c7a1d5a849bd8b60e5864"),
		},
		expected: decodeHexString(c, "e2629e998c4abaa06414918ff0291704f7be337583e925bc157d109fd414ef1872bcb581946715d6fc5f8e7589075856cb14bd6e3fbf3f22655102d567e95011697912a1e64221db9bcc6ece8e4d3c835d56fe95246a499a96495ebf1f10f30261f50228cd7e0f7190de8bb8c25cc4fd"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_10(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "570832676dde2571c29d228aa10194b98fff4d22113ac6bd"),
		nonce:           decodeHexString(c, "cb20bf3ead7dee58f872d72b"),
		personalization: decodeHexString(c, "0ff90aed77f3aef768f662a7f178502c797a1e84bf724144"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d33b4e282e686b1d3c892d5d5899909aa2b4332b76a57ed"),
			decodeHexString(c, "b499be360808a6651cf393389c6035a18e300d2caf80af63"),
		},
		expected: decodeHexString(c, "5ef31ceee8f12bc07a2f121c52260b2686e79e4f617bb9a8569f672cf569c45680ad360bd49443cebbbe0bbac5ba9107e5056d62050a9c6f1000d0b1ba3c70e2379c276e11aae99d425c61330d7994812e6e3f242511de45715df5f41e92a2a4b9de3296b77e0e2f94ac06f81d59900f"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_11(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "420014f2d7fe3e8f0e18853aa883d5a3790ad462e8991041"),
		nonce:           decodeHexString(c, "fb3c1a7dc0d5d5e466d79f47"),
		personalization: decodeHexString(c, "c25b761a0368b5b157cb3de8717e7a49b548da3c286695b5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1cb26c9ee6a57408e1e97c44f7f5d7ad6df1fe72720e95e8"),
			decodeHexString(c, "230df1b947f49a4af8d50b6476676863391c388d37ce8250"),
		},
		expected: decodeHexString(c, "ec50603a77e6dd71131eb84f1aa27d767344627ffb2fc372570cbba13b3dc5c9d1a4273ca27aeb58a685268da846b0e48cddecb48e52e659d6b30330cbf18cacd7e95ce9bdaeb95cf39b57fb7100bfbd56117e4c8525a62540c309a51b0d3ed407c4450baff058ff3bb482e17deb166c"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_12(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0157720fd6d573a9da653b99af202f9f8e28e386aaa3044f"),
		nonce:           decodeHexString(c, "84c575d3bb195163f003d739"),
		personalization: decodeHexString(c, "c9f419dd3684262d3746012a42419e3d3024dc78d3d2779b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dafe211b9a53b7ea473c235e5dca0022d10d7afa6bab46fd"),
			decodeHexString(c, "71366d7acec1b4d80ef81ba514ac572f897f45a0e729ae27"),
		},
		expected: decodeHexString(c, "cd9b74d1c8f1101e88621f9df4bf4d2b41d06db74af8bb221d1a5054cc296b3c2293301e32bd20db4697784129308d366f210adb46f451ab720ef729f140cc712d98e4c07e23f25fa4255f11f840037db870dde814d002f35a5232412370c28b28ea001428550d836ae0999676370eb7"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_13(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4f9ff2ebf2a5493ab6bcc882d662108c4eb7e23ea2aa9bf3"),
		nonce:           decodeHexString(c, "3ecb528e7757a8dea6a69f49"),
		personalization: decodeHexString(c, "e9806c7050d4eb3e23df8301598e848e5784b365e39ccc42"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0c111ba31c992775d870796e9f7cdb1dc84cd8264f21467"),
			decodeHexString(c, "5ce7aeddaff0fc56490cf5e167d6d5e936d1dd1f2691058a"),
		},
		expected: decodeHexString(c, "2cac8f376d0e0bdc23f150a3d7970142eabf2a5096c3b2578946997ba66bcdaf9b5fe0d0b907d49ee86855a27c9c8c8ec0d5a630ae2b2f35ebd9f0031d497b3655da00494b93da98f82b43c4b8ba223060c577f27d488c48a496cdc5827c106d116a8d291a2462493ec45eafcc68b810"),
	})
}

func (s *drbgSuite) TestHashGenerate19_SHA224_14(c *C) {
	s.testHashGenerate19_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0d2514fc19a6be4bcb424115f4a4f7e0601b11042b535dad"),
		nonce:           decodeHexString(c, "b84f6a9f408d87d6b932b127"),
		personalization: decodeHexString(c, "316764260e00d8e4b0a08969b0e9ed8478fc85e26f3b8e9c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a7418d4ffc40e11859f33189d5a8327042ec268b004ade8"),
			decodeHexString(c, "97beb8c47434a23efe536287d776edda7ed7cae84c0c7e35"),
		},
		expected: decodeHexString(c, "1fe94acb5f5cb7e4a8edf5be61673bdc066288538dbd0ac29ce2d43f7b890028e48131e6b3a7cfbb42772b63f2fac8c0472418653ee2ebcdfa5ec08683e7d4a9cb2c67cf7e22c2ddc779c6d9971b29347e6688113294c902a5d62c1fc35595e091cb10e5a895d7c3697056659ae457d1"),
	})
}

func (s *drbgSuite) testHashGenerate21_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate21_SHA224_0(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "938caabfdc9309495fcdfc44cbe9842767c0ee5f46008c8e"),
		nonce:           decodeHexString(c, "611843a74d8dc052379b5b7e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "87b5ee416834f5ecef4c44e2f793c5d57fff283b7abe939c"),
			decodeHexString(c, "b12d12ae51eb9b13b6ed70b5ab2bb66b4e37e423d7656a91"),
		},
		expected: decodeHexString(c, "a67ed0ca435774a863d01e01d85a12d5bc5c0974f13a1435d06b1cc47af47039f36cbd19a0e34b441729c4190796ff70deba9d6f02c1c6972178584c7638e0004bfb2f76d70d9aa69cd34c6ac70a5b71fa2dcf9830e50aff7d30f828acc7736fe70528be85a8e38313504b0277cbedb6"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_1(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5da96699db3f427d93a7ecc7071de112639b3c931cddc43d"),
		nonce:           decodeHexString(c, "7915faf89645da8c5767f564"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb37fa58900ada7428d21b515be543c1f619ceb6bbe5d28b"),
			decodeHexString(c, "82432e8cd090dba93d57986f1a02b20c8c11dbb51135566e"),
		},
		expected: decodeHexString(c, "db9235843239b85b7cf1e956022e4c2203b7e44070c72500866ac3d5c9e140c6aa0a397403207444adeb58cd0cbeac1abe815c858537c3f09a0305e0aac599818d70efb3e20068af159d902a1ce9f191b91bd5cfb532f718095fefd09701089d73e7aac3ecb58a5d1a0cf07396ed906b"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_2(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8afff5cce17d445a3be8b01b9a32ac7b7f68db301785684d"),
		nonce:           decodeHexString(c, "f766c18b867a77f5902d32ad"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fbef49b8d9eb99b7f1a70f8e5aabe341d9f0a8ef026eb1d0"),
			decodeHexString(c, "dd46cc6eb0bc8c9b26a895e8ec4d042db035d0f38cfd81c5"),
		},
		expected: decodeHexString(c, "0a2680918a97591d11fdf5f4b268487696ecba630d52b13db834a4a15f9debe46dded68cb4056e8ebf31b334b8e22f8ddde4eeb23971c21144c929a5a3cfbf920f586eca7d3a0bcc6d889acd894da3a82f8ba5c93e2c5832bf6fe120eace55b8fd3a632e99dfe8286f8faabca2ddd362"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_3(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "69f89bae7ba220ce4611288a90b4aea5b0475715f1c757ad"),
		nonce:           decodeHexString(c, "19e4dd98f33b3e9e23d9b0ca"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d440c43db22b6c0dc8604379ade4e74f87b23ef40e7aef0f"),
			decodeHexString(c, "e7f81b34383d6c22d5a419695444177e11afbf7312c84f5b"),
		},
		expected: decodeHexString(c, "8723b8252043c6556382257872461771c583f1874b74735207b4ced3ff66f9e12efec90693fcc6e50121dd0a5fca9ce490e2f5be6c61679d24db892b28cef2acb73f7e3d696fadbd02c87a476e4c10b46b7d5d5c8fcce53e1148f88da5cc47a5641478915296f62f05969f039e3289b0"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_4(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "47808d81119c7a2d2c299c50080d7dae57c599145553087d"),
		nonce:           decodeHexString(c, "b1d1064765de807691be89c9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bbcc725e6131b463e93d1b00d240b15c022da5c8d3395970"),
			decodeHexString(c, "6479122c6ce7da9e736bc58f69b132140586d16b4ec9ac42"),
		},
		expected: decodeHexString(c, "9c6ae442048ad9d8dc62c40840f7dd7db8d4ddd43ade18b9f6b0b83ae7bb3a6bbe8f5073a15e95298ae683a823fdcc466773e725d05c327ea334d96c9ea57a883b6e46356f6552a9c2d941d2af497d175f551b764fd5833de092c66e58cf2cca07879d768851abaf2df8ffb3995042b8"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_5(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "aa5121e4b43e8dab0fcd714cf8bc8ff4fc99bf472f077478"),
		nonce:           decodeHexString(c, "dc8bbbec75d23286dfe68162"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ad667b7251c0fcb2270d92df2853580d4e2f7e05adcb3add"),
			decodeHexString(c, "3a9e35c51e134cee45aae7307bd9413e3c622d7750a58231"),
		},
		expected: decodeHexString(c, "ae2f72ff6a30cd9b823f618493b25e7eb9a0d986f0bf722e79c0a798d2edbe51fd30a1114788afb477a72d946eda35000bc918e8588b37d1a334398c57bcdf3000f7bc0aec42bac791e786a8926f64b6624d753216fdb9d5e6557083e221d3d777002c72236a9f732c119a76dfa422af"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_6(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "db0f7af8b2ac81e74489eda4684c44b9fc64b8a93f6edfa2"),
		nonce:           decodeHexString(c, "e6e00ce5bb343024a42da740"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "92468d0ff72e178452b3cb8dd41afe032193180b1fa32aea"),
			decodeHexString(c, "350f5a101f6a739b987cbe87a7654e911094b8a76de05059"),
		},
		expected: decodeHexString(c, "a6dc5dfd703c5c82181d5f7c06ed42db88b0d91fa27cdc59632b9e44811e73ea0dae9cd3e2349278fb1023a97358e87da5a33fd1f5b63877a3c6482d1e24e59219261c7c35af6fad75fd7e19659b90e9aea18e30502bae9e3ba72b3b07dd58c12ea109de754e6ed4a4d84d9ee722d99e"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_7(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bfe94ae6fd97503cb9d25fee8a578f4c25ec69a2501c0e11"),
		nonce:           decodeHexString(c, "c0db5a14ca6cd3311b11f0b8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "54a43dadb1d9a4455a7c092822d53f8fe0aa66b722ca2a41"),
			decodeHexString(c, "a7f7cfb7580e8b88f8ba61f09e92c96e9a0280b7b5b4fbd6"),
		},
		expected: decodeHexString(c, "4bd989753aaada62cdef8714eeaaa42eebac9b5bc5172868549541d50f1dfb37e04340cf9dc766915c600b6d9e6e96b8fd5696bc44642c1fb053c3ea2b43047cf3d97f3684431063d72a1d805f7b9f7f6f46ec2ad3acab9ba1c753b0eea9349140cb1c3a1df81be781c018706ddd87e0"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_8(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3e8c1d5ba26f71b63de7517a78bdc74be1ba3d3e3dbbe1f0"),
		nonce:           decodeHexString(c, "4557d172729d217b15986c6e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1db74b668f64922d426b6d2f678368ac2c4d9f8702f1a82d"),
			decodeHexString(c, "7e6b01dfeb46c2466633f0f80a4ed6c5ceb84eb421b49be2"),
		},
		expected: decodeHexString(c, "78e4caa69663107a4e062561872ed5429e76b116b2952440d9e943f97fe26b607cc852d2834573cc64b306df19d1ff4e94e1ae3743dfa9194975a1edac840ed59f5897a0e244c48eea6f83ad6b2557ce9af8af866d010c6b414795b7fc520e2e20777aea7036cfed6255e30187c5752b"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_9(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cfcb605fb2bcdf037cbe0f882af18cd8af470b3e8207682f"),
		nonce:           decodeHexString(c, "3aef12e590829834b6557f34"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "20eea72865c3a32d903b2a763756adbffa1d42b1a61c91e7"),
			decodeHexString(c, "9c1990f7f2176904d9ea99bf974dacd039fd8c25531e8c3a"),
		},
		expected: decodeHexString(c, "1a1bc626c61f4f4c9a87342f590a2b9d1f09c16edb68202ac1986a11512dcf30b7be7af95373185e1d2561f75abb8c7926f76d00f8d66b59c11fa3ecbf7726c143a82079e55202799ddba02b2c7345f4c96c41dc785d5fc113ed7e50b38e86aeb63e586ed1f6d02ecb3c6348c91d6a26"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_10(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "47a8cfaea7ec9f0a2d674e34e7c643b61b45df907a2ff4eb"),
		nonce:           decodeHexString(c, "9a4da5f34cbfb9792dfdb636"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d504bd2d3ebef9e51d15e0f3993243099ca83e984ad5ac29"),
			decodeHexString(c, "d37523e672ac67b03e2da915675bda621755057fad998254"),
		},
		expected: decodeHexString(c, "94784791d9a903d3a073f22cc5d148f2b04af03bcb1e9dec2a24703df9dcf8fdbb6cb954564320039b6b9222801c95965bd244faec947fef5358116cf3c1dd4638eebadfd50b3ef38ac4185bd9ab6ff3a51ac0b1c198c04c91582e42e413497ef8ec8741f2af7d1f86d54130ef67342d"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_11(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bf684f270948765b3a404ac189bfa3b1919ca6df8ce3f8f0"),
		nonce:           decodeHexString(c, "885d7169185c0c7a07f66496"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "50e9cafe7d7d6ed864afd568aa5d7de2d0db5f5a681f2e83"),
			decodeHexString(c, "4b5ba83a92cd16ee0656663aacc93699a1002a4454119eef"),
		},
		expected: decodeHexString(c, "84823c7a826106426e3b5e3ed356a2a1b95acec9179fae4988956ee2fbef3be9ddf3acbe0e72e091d31c115ece372f209ed6e26a5d85e5ea2fb1737612d5d24e7ae210eb90dd670b9f84129b6ab6a96e85191d6b71b5393d62aed703f02238ffd7da9e3e42aea388ac1dd1625be76d78"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_12(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "56d5f5e2ba0f288f8775432986f8969968ef6691de1838a1"),
		nonce:           decodeHexString(c, "96ad6dd5293404bba074e007"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f03afbeec8ada1aad046e28923f0ca7d83710bcc75c05512"),
			decodeHexString(c, "a96034cbcb0c93268cfbb83efff8683e50c5cc1cda357eee"),
		},
		expected: decodeHexString(c, "5d0220dec7261725586627a1ef9e41956e57a158a2b9fb1189d5e402e3e11e32cba47409cfaa9c3cba943c3a1ce23b9885cfcbb55ca8e633d632c0229b967d02ec0adf4cc94754ffc130d55295471c17a416fde7a0136a579feebd1d01a85223e595db4ab50104e0426d816cdc6baf94"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_13(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1c87802746f255241d8398f12acfdc09084b8998ed37831c"),
		nonce:           decodeHexString(c, "55ef213bd0399b008855e787"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "83d7f0a1666112ec78df40b5d349095d53e70333808dc8a1"),
			decodeHexString(c, "721c9df9f5f61c1d0fa767f65f3276211e91f8214c5ec733"),
		},
		expected: decodeHexString(c, "cfc278e4bc12cc3ab515e00afc24c315adc3db92b7b74266ca1cf05d887a8c7ab8f068eaf6044d3e5ab7ffa341bd4f2b163c4691d51ac58163013b514262781277a5206090b8fb659481a6370767cf57d6535fc9954e936fe720de862baad11b6276955c75c5397502f281ec67a68fda"),
	})
}

func (s *drbgSuite) TestHashGenerate21_SHA224_14(c *C) {
	s.testHashGenerate21_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "8a0fea72b780967d1d582bf62c2857b4d49d5063c4a40e7b"),
		nonce:           decodeHexString(c, "87f95440746ac4e00622b200"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e098f0e076a3f40fd970f5d221944f0040ef4a18d88dbe6c"),
			decodeHexString(c, "d7eb01dfd7c13fece92d35133c3be71efba145d7353c6d69"),
		},
		expected: decodeHexString(c, "f03074a219ef31d395451ebc8534e4f2cd2dbfebbd9257507979ecec79a5f76359f2d6b4653b31704ae5a49f884db91ac335ddc6d11768cac7850734e76734b63b71ff12f3f8d42cd404009e7f4b66bc0a639a9354ebd754c17f3cc65704e698d9bc0640919c386e96760f3c36d8789e"),
	})
}

func (s *drbgSuite) testHashGenerate23_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate23_SHA224_0(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0e8efb12bd55fc07c34ef9682ff8a804c3d454dede06f249"),
		nonce:           decodeHexString(c, "8f3a9b2dd9627c09f761a8ac"),
		personalization: decodeHexString(c, "2cb8fb48d1da52810db7f1b771f2399fe4c8bdbfadac49d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c72e717b30c6954227576e99685b38e7562c4b1107e6028c"),
			decodeHexString(c, "d3e1dde19a4cfd7bbcccc1b323153dca4b59208161ac1518"),
		},
		expected: decodeHexString(c, "2952cf5b4ec9f46691a855575edcf629f6a0f8138b8d4a1f62d3229e1c852b7e7e8815377c16b582a27406701e3f5395acf0bcaf7dedf161efe853ed6856dff173fac149d2cc783dc1ae77781103f1c9656e3a6adf3cffbc1185c9b943f5baea907e41d3c8bf64cc8f15b22ba96d59c4"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_1(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bef4134cfe6e952ef4954f0b43779c27731aa7ee1fc472d8"),
		nonce:           decodeHexString(c, "9fb0510d794281d606324ed1"),
		personalization: decodeHexString(c, "70b141ce833db247d2fcbfb1ef84c9f7c77e80124491697e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "efb3d5af5bfb4908c39fede9cd3463502bb4831357aa9007"),
			decodeHexString(c, "f7b2fe8f57f076d95678dea798c412db611a2a0f459ec15d"),
		},
		expected: decodeHexString(c, "49be64e83a506b8cc3f0d801fd7c7a502d63090a8087ac471e7af1a7b31e78a0caa014b0e4899ecd83fa12022661f19c1fb17884c25a1d3681c921a465dea99bd48990fba31b42c75794f3f4535c1f6aa3bfb97bc1fa195fb024067d7b34fef241629b58fac1bb5c05de4dcea8e79b20"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_2(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b2e3d9a234e65876dfd1e945307c5c13dba9a23bb5a778c5"),
		nonce:           decodeHexString(c, "d984c7113a3a7ee0690fc4bf"),
		personalization: decodeHexString(c, "fa9332ce5fb875c8e9f773276a04c1ee56bc0d5b0efe4aff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "af1e9b36e7f93f35a10c18d5176f81c96227eb9ee362803b"),
			decodeHexString(c, "df5e1f0268abcde9da54d855a6e9f50e6f44c8731cb48043"),
		},
		expected: decodeHexString(c, "d51d635f45051a842e6fd418c01ef3c7b7363e63f84dcd0676b19dbd60df2ee0420bd82e59a6714302198ba9ea08c9f0f3de3ccf5f8a20cab378a772d082d4b94d21ffb695c7df6056ce8dafef38d4a0a33aa2af47feb73b704fc6df4df42bff4042c80615785a74df9088b25c60bc12"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_3(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "274000a2ca67257e92f123f669e505437e2a391bd828e151"),
		nonce:           decodeHexString(c, "bd5abdff6e5d8c3345ce2325"),
		personalization: decodeHexString(c, "9dcad23fe569e5b75fa485eccba734fdbc00f874e1fbfbc7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1558e022437bd96a04496c937b662b262cf8ec03ee7cb11e"),
			decodeHexString(c, "044928a106985ee2223c3df9d7df2a67813bde19906c59c5"),
		},
		expected: decodeHexString(c, "ead500db29ebf8d9432f9f53d8ea4def1dd92b79b296251b0385abe653070ac95a4db9768fe34a5226785b51148942325b76c1e4017dc0921e11fb548279e69840ea6d01e5de078ed23569b67f8e1f3165ceb173328ab9fb7b7a9f3245c6c07c640605972b281036f3749c885432feaa"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_4(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b3aae8e63a9bf9e766e36f351c82f095433d94216ff3db33"),
		nonce:           decodeHexString(c, "6b91c9dda6ff6996ebb8eb65"),
		personalization: decodeHexString(c, "9957de3dfcd3e00f5c376083011aecc97600d78e4354752e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "02373d44d4d8ccf12139b869778344ff1048ff9dfc5a7530"),
			decodeHexString(c, "d996a59e3b203bbc0f97bf3a5abe22b442dc5e21b2ada571"),
		},
		expected: decodeHexString(c, "9866105bec3087104d36e345514a19d857b15299d352c48075113b34b73823362c5ef47bb93e7fba2930b61ccbe9d73f0f5b284b9bc8b272aaad4229d9dc1ec4ef17f6d6bc428bf7053b4faa5a388f095b82e5bbfabf4ca8bdfbca725f384af8a78d2fc00527c5604fea07d990cd0d00"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_5(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "56909e95490f7d0d2c1b24c97006f05c9607d8111df52682"),
		nonce:           decodeHexString(c, "7aa9e95304def7b9224d315a"),
		personalization: decodeHexString(c, "ffac409a9f1663710d1a042e9264df312c68d347d2eac97d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a28e7d1755646737f5a3d3e22d2b34e9d2964c8913d3afd"),
			decodeHexString(c, "9108ad8bbbb814d9196143185563f2684fbe84c1120eafcb"),
		},
		expected: decodeHexString(c, "5b89b41311a53d8b7871f4905308f34a63df857230069bac66c5876d5efeab50854a0f5b94410aa187d2d34c2068add565721e1d1e2b22a43b23c8c2a2d7f2504c66f45a51600729b4dd639b93c2f55d67158cbee93483add30cacfe634a9f307663485c69f98f221dd0a28d144eea0d"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_6(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a3d5e7563a9c087250dba95c13e3dd5555b1671212ae4a48"),
		nonce:           decodeHexString(c, "af8c7de0e94721f98ccca348"),
		personalization: decodeHexString(c, "ed18f2b927d3dc023d1fba05ac6038869bc8eac0c0c5ae4e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7717361e23ee3e154a49627db0f13eccebccfb25774da9a0"),
			decodeHexString(c, "107af893df1fd36bead4f53ef69f0d7e17263eee8aaa0923"),
		},
		expected: decodeHexString(c, "dd945e4f0179cc65ab7d841f61b122cde1df3651f405ccabab7162b66ad4a4855aefb267092c4989eb3d38c93042808710f1976b66131537018d42fd2609735e187d1c75b98765859f8ace0ae21ec198d2390826e5e9a36a03b2edb270705a44cf7d32435d2bd430ff6e34bf4b8af9cc"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_7(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cdb1376cb00d50572fbedbd45296743064ab739053ad9434"),
		nonce:           decodeHexString(c, "cce908f55c50c4e05adb622b"),
		personalization: decodeHexString(c, "0b8e5b5496e99bc1ced351cc235b02f766182c24902e92cf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c72f68725a3be4b3533b6de78c138365a82b6a24deb0d1d1"),
			decodeHexString(c, "a47d05afd1feb32bdebd4e6abb9c61d14db53d42cf9575d5"),
		},
		expected: decodeHexString(c, "f92d14de4be09f5a865ec4337015b36043f3286c92ed27c4f61ddcd9ffb8efb109b01637fc65ab13bd9ed9d70a0f737f44dfb6f9dbc8ab4bcc001341b238d65137d4498c2ffee062ad166f95e4e61f4b14643e6e1a41883c9811d21a32b795a8508f09a7653b4b00d430db03446f3b74"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_8(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "577eb580f7fb24351328950558d36510226f9228fe1e9ba6"),
		nonce:           decodeHexString(c, "2b7a15b342e96edb2b30076a"),
		personalization: decodeHexString(c, "072a22f1622a275bb47b4c67cea53ec0ac04ad464df7a3dc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cad80dd8af88defe6568559c42d74e0f36fe003de9e0c8b7"),
			decodeHexString(c, "15fbb51b940ff28cdd201ecde47141cdd2d939e0f03224c5"),
		},
		expected: decodeHexString(c, "d3c3616942892257cd8f55d56abfa6cdbc3db4c23739865bf696f626d5feb6ae5d255fe1301396c02b493243a3c366ddafe8207997b281e74de2dad91601893c56817f3a6f6a77908b2ac61a868ad035b5e6d54e10972713a8789f4878d0c6a1ce5a154f30c88d48f3cf52ad352d4c32"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_9(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cfdc5653ab06d78239fb6cec4e60c3241f980cb7b95fe05f"),
		nonce:           decodeHexString(c, "0613b0d3745613752a0119ab"),
		personalization: decodeHexString(c, "257de719c9b27931d39da3b95cf4480a1d84773ee77d0ed8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "97733b171ab2b6f11e87d26048c7a8b9739df361a4885807"),
			decodeHexString(c, "2f77f09c6a301e5b0b044fa7cfcaf63e907299199071146a"),
		},
		expected: decodeHexString(c, "d4aed48bab03c936eed8d08e50bca8e0762784dc930bdabb93e8c8191eeee4c5685e059db66b4a654e4cabf69a1e436e7436f608efe938a26164ecde7eb3196491315414edbf91aa036ab1db8a34f4ecd8654e5b327a68b55ddb9d3e74b340d0058b1fed8a2f55e24724d9360bf92502"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_10(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "800beb831b1e3ee733ac369238244cdd6062e5d1a5e2d29d"),
		nonce:           decodeHexString(c, "346ac541842a8103b9015980"),
		personalization: decodeHexString(c, "50a04b367e96822ea2f57d3487c73fc77de775e7aa7fb438"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ece3847b1e906aeb3d803c094b185f39fac052e31fd6f8ac"),
			decodeHexString(c, "605cf7b158fa8655c81990c7a9acee96644c762191026953"),
		},
		expected: decodeHexString(c, "76efa82867c3c7e7d6a9cfe08223b60f48dbea8410bb0ac6126f834759397de473d5644e409b26e05cad49cf0a4dac01da5150f746f2a85e899fc575f408e8ac6c9885c5ac6942da805b1738d4fb59ffd54f4da6b07068c07b2113eae2f64bc5c735a0b5298982e7e658a38c191fb3d5"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_11(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "246373f4e0f1e7c8e6ced8fccc86e83124f156bf7dee64c1"),
		nonce:           decodeHexString(c, "4ca6d0f9d5dcb88ac8f4a10f"),
		personalization: decodeHexString(c, "0b718f380c2802ff9276d3b89a7e0cde41d66eda99ddebad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5b3889a2987040c4013bde5bf3ba82060d32e6cb24e16fd"),
			decodeHexString(c, "2dd07ade930289fb29486362f1a906d2630a27d126402af6"),
		},
		expected: decodeHexString(c, "2faeeb7669909f31316712364b143cdf8bc96c4738e98a364116e84772c54b438a3eab37aa427ddc3d39411610294f4343c13442ebb6c4971207451f0f716af1ec592e5392cb8a6b0f7514bc11b1497ede1372d85ea3a72f18014d7dddc96d741a807ad8881173503207f7c5682d73dc"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_12(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4464f4ab7210871eaf00e6b8928654d1f5b6edef2a6a33da"),
		nonce:           decodeHexString(c, "46fd0422d575d125b72aed67"),
		personalization: decodeHexString(c, "184d12502fbe8d37c43cdcb35152e3b3c37e9054dc1d3585"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ab983c20f1d8a6b004dc58f0f48af590dbb08832bb7bb10"),
			decodeHexString(c, "d07a2a1fec3b82462fc1460f064bacf5922e2ef0c4ed76ea"),
		},
		expected: decodeHexString(c, "e2afd0ac3774eb85cdfbbe4c98b8f18999b868a8faa24265ef28126f59a1cce496ba0747bb316290796d301bb6665e56beeb5c13c9965190bfe660e41ff9dc89a8ee2a6b0ea3067de1c5e091ffd75037566bf7848ba6e69479519b3e987a4adc2da8372e2f7153e6f0b622791f585645"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_13(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5213a1f2263a3e9530acb8f5b9bacd4ac96951fc397005bb"),
		nonce:           decodeHexString(c, "03d1901dfdb49f92b6baa118"),
		personalization: decodeHexString(c, "3c736791ea6d1bc5d848029512053c20ef7dadc20e0ee70c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e951c13d3dccb9559921cd205928ff68fc06d1eb59de1971"),
			decodeHexString(c, "e7007c806db5d1f31fde06715e46f27816df74a2022830d7"),
		},
		expected: decodeHexString(c, "4f259149fe3d999daa93ceec96b789c765396075a1f82eaa9b8a33b5518cc746b346ab6ce488f97051349a2d6d1135f93cf4074d0f19216bd6ada4338f3fa20bc52dfe8c7749a93b38018894473c7236beb036a63c6f307999a106557c76d6f258ec2f9dda5789a69828b5d658806884"),
	})
}

func (s *drbgSuite) TestHashGenerate23_SHA224_14(c *C) {
	s.testHashGenerate23_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f04bd923480d383ede25ae2d72687980cad91d008ce30e59"),
		nonce:           decodeHexString(c, "ad9b67d7d3d71583bad67abd"),
		personalization: decodeHexString(c, "80326f5777366dce4f91f54cdcb6abc4d676174fc2a0e0ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fa0823db6808a3de1a7dcc081c01cca840f68b005d473bfe"),
			decodeHexString(c, "d3054fa2bdec7c63dc009ecccf25c1116380ac25f82a9085"),
		},
		expected: decodeHexString(c, "556e90c95c1abcdde027fb2b88cf191f0686830ecf3fbf89de51c9bd735726131472a17f307263d57c03bd5ecd9ceba6cd5759b06594bf901418e2421fcef4b72678614079cdf4d25fa0b74985380552d2bbf478290445066e3f4a40a2e2b0792a685b769ffdb27721b1faa484e9c783"),
	})
}

func (s *drbgSuite) testHashGenerate25_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate25_SHA224_0(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4cd821f06021e05a4fb3dc2634c405e9acf84c0fc59ed546"),
		nonce:           decodeHexString(c, "e4efaac03361296616c3ad77"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "166d8115e78c87dfb715beaede2b5d63565c5bf52d8ac61f"),
			decodeHexString(c, "ba4e92236fd2a5a362673d464dd5f5b4fc0a5ad2c0fdeb62"),
		},
		expected: decodeHexString(c, "5de3a9e43e4448e72c4e42ec32942185a4f58f8dd3fc1e1be4337baa5aab3315c3d537dff954ae43e8d79e218acbfc6f970559eaa41e4666df14817ec706837726df717e54aaaf5980c096c5ea91788f824a2d729ec8c11c30179811424bd9dddb24ac100b2474e22a7d822daf4dd938"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_1(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5d1733d64c95628bc65b3dfc297751addd74228f98a9ae68"),
		nonce:           decodeHexString(c, "afac53f1ff1eca8ab6994c3a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a20ba633b7504c3d6e5d09f34ee81db5202285e83fef53f"),
			decodeHexString(c, "13227640103fe093e830040674d53fea9ace7dd4f664ec49"),
		},
		expected: decodeHexString(c, "419e5623bff172121c6ba2dff5699d053c6d9d86f2c2abb4eb305a2cdddf666069476c8ba58ae9f6b0b8414c0b698d5f4b151cdeccf338267d7e33101f2463a9396a1aeeaa467016ef0f53c3799492ea0768f849a7ef9e795d6ea9e0a81ea95ef69671c8dac68d51ad221547c61a5545"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_2(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fe3a4e53ae825eb82e278a317df56b9221a79489e11b93ef"),
		nonce:           decodeHexString(c, "1ac17b5202826a273d483386"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f21cbde7d9020de82f37e79dbdca1121d0a042a0b975b430"),
			decodeHexString(c, "ea04a666edf06b829ea91dbb84b484b19edc23b16bb53eac"),
		},
		expected: decodeHexString(c, "a8f60f803ce8eb612f7d1c1a698c95fc97451e0789ea2be634b2465d8bffbfa960aeaed937296a68794889b5af1522deabd64a1be9a215d709bb6a3d226bc499f4e5438c812e018b2247c133d94bb224d978a962a6287d01d85a238d904f5e297b2d6e729d85c5252203be431fc7869f"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_3(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a52c8e6f027701c1fcbd76722f921e301c3fd9dd7149b4bf"),
		nonce:           decodeHexString(c, "9a357a1452c5971d9b45dc4d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a4bad1136595353bbd3b01cdda8c56928ed6f130503766e0"),
			decodeHexString(c, "8f37092c5f54ffbd51f58b8023c72fc6bcea5a625b0ffa70"),
		},
		expected: decodeHexString(c, "437fcd666beb67fd00f0137c75c27e234415e24028e07f7e5e884258fc8bebb177d74728f5a27dfb17a66ff60c1685fbd48f2d3c1c80db688cf7fa0dfdf8be9cf637a3a30a5ad43e98b6e80ab7c02a7f78635a9c6623ae1ab1be40f2a2a4c471cc78240fc10b3bf6856bc987f09fc105"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_4(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f9564d418c8fd789ff48314dea505185af276aba322c0622"),
		nonce:           decodeHexString(c, "a1b7ae87bdccde885218741a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "18a32ef711846c7716269ac04ae257501f4e09ebdad8a555"),
			decodeHexString(c, "6c39dbc8050310ea67e70b3d007c5a8fb094f581a0ca6977"),
		},
		expected: decodeHexString(c, "28c96c56cd76adc7b1c8e960e08974c4d75db4851068b6f9f1d2dbf922554a726e84528224c3638d39d9833f4a038f328a515b3da486804cbf82c4f083a8d2854acc06b97c5d957a39b216e55a8694d6b550aa0f322cca773e1dceabd84f381df06eb898c76dd296e4d67a0db63554fe"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_5(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c9406228b7220dff834f28c3e4c3abf0ff04bccd7786977a"),
		nonce:           decodeHexString(c, "46e5e4c9877d7468cc733911"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "339593a6cff7530fc2c310505dd9be6f701b3c72f26d6207"),
			decodeHexString(c, "55de0b922ad1763fbf875f835d37d01419715fb1638a8cd5"),
		},
		expected: decodeHexString(c, "d2c9a62b6f62c4f95c1ff34d759fbfd9ad76bd3710ba5ddb3b6a942230126c8d8ae1ed25bc38ea42efaa604975fad55260edc832ce4652a22fc2a769b3a5c8846bd5bce2310db85bb0576543cb677ef5b26f8a3f01b123c868f638622f550025825180762df043efbface399e2b11a31"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_6(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "eed7dfbfbd982f35f19ca1916de883db1a21363ff16d1716"),
		nonce:           decodeHexString(c, "6e78bdff2ea6dd8e8e865fd4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0e564b5f793e98d4b708df37e9b832bd11bd69f210b9546"),
			decodeHexString(c, "73cae8da3674ff00bdae141bf13aa6372b81dd78a149aa10"),
		},
		expected: decodeHexString(c, "951185132d67120a238cc4da1f79eded6c1171a109f0a65b489fc0d7a88b6cb003b2e14596783189b3566a614f392307440794dee4d95973df8abaea5601353e99173261252b1ba41d70df1c5e8ae184d66ee6a2c6896b076bacafe99218a16c3fe9efebead542bf3f7130b934096b61"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_7(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b6a05e14e60c752b4c307850d7661183d598fd522ab41f61"),
		nonce:           decodeHexString(c, "8c5264b568d376be822c843a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d68702d4eea9219745d4a26aec5ebbe2651ccceffb6e8952"),
			decodeHexString(c, "d8ce1a1350fb9b34c63bdd82009d35eff4fb493b402554c3"),
		},
		expected: decodeHexString(c, "2374474b62a52202eb178f82d5b4e1aa529e7a062e00329fda1a22f89a2ebacc955afdec457d5a84d159d94e94f112d04ae606e9afcd47fb9caca95c63885fa18ced924495fb5360836c70bbf06322e5d34a0e9c72c9a8c5ed0abe1eb920bb8c9c46b7478d88af57be13a60057f53385"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_8(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ea985af279f8c2391223e5bd31c0ab1db25d5e3f08d8c323"),
		nonce:           decodeHexString(c, "401d027ba90697c72b1735d2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "285a68a8b4fa92cd671798b8d34040a795da82b1d24caa6a"),
			decodeHexString(c, "5c66cf1e80cd8d039934d1f3c2898e9682320d4b2b460326"),
		},
		expected: decodeHexString(c, "0418dbc1cbfbc79f4da20e56f4f80cbe2e4eb40ebeabe45ee6e8c3979cc982fc527fe9c2d7808e0b1c3369b57e118c88ee4eff1aa4b88b35de9a72760e923a44b29e7be4e379e78db3d10f4bf60c59af1f9c86f052d07a60496aee7d2c99b4167989e21e39b53f5d4d47027d299320ae"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_9(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fca365c5621af51099f6ca78d835420c5b9761a558f8e3a5"),
		nonce:           decodeHexString(c, "a00c1fa36d37469bf62ebec8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "891e5403d20ff0a902446aede74ffcc93135a847fdcd862b"),
			decodeHexString(c, "a044ff5ea904f54ae35832e4697a6d5b543cf843ec9b0966"),
		},
		expected: decodeHexString(c, "a27c2c3ea8ce9b892c2868521730371ae68f32174efe0d67bae63e4cab720eca6cb2597a6c391833865ab3c98f57ff507a3ee5602e88be441767d75ed97af9a36512183c2313e9defdd2b174f784ec962eee13da71a4cae2ef8b9f615c285d8fe5bc8704bf3462f46010ab512c99a5f3"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_10(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "506180b944d400028d3b4a43e4a553001c3b89b41c62fdb4"),
		nonce:           decodeHexString(c, "7743de27fa7d4af082a947fe"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cc2d5629cdec0dac130e73546791f29713dec64fff7bc0d8"),
			decodeHexString(c, "46419305e58cb2e6d761dd23e67722012d9c83e552fccc3f"),
		},
		expected: decodeHexString(c, "8d901f6fd77a489786ffe9df84d1bf8690a34ca5e5c3895309651d967032316b8d1965474e18051d00f47128cfae379762262e9e4da3594c0e93494e3da922e9fd6e63720beb14f8618bf6d94d7f3e105f9b51fe6bfefce1a925b133360cb3f48383118e3b8fd09f1f7cfa2770cc40ee"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_11(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "cb3a0ccb89d85dc1fdf9397f6eb8bd1f28f8939b08a7563d"),
		nonce:           decodeHexString(c, "7be548412365a33260841966"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "77fbec5631f027758edc94f0cea95712147755519b1170bf"),
			decodeHexString(c, "a55a54ba72f9fb1e3e5fec8bb1b599ead10705319280dc3d"),
		},
		expected: decodeHexString(c, "d022253f3a832a58bf287b9d2d774ddaf72db6cff7bac1d62dff318f26b01be9ada7dc95af3ac6896898b5eaa96fb05ce097e6ef58efd90c6c68bacf75921f3fb36f3bd906dcca8eb478d6b29143237e752946731d03c695f4eb5cb86f978072f77384fd853bfaae60219e165c2f1529"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_12(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "bd3c57df249fdfe7a12356df12689c927041fbd1f33774c4"),
		nonce:           decodeHexString(c, "c4cf057afcb8ae81f811f414"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4013eb9f96639a06325f381e6f7cd270daebb6999bfd0cd4"),
			decodeHexString(c, "5773619ed73ab37b7002efa1102530d8385740b8aac81569"),
		},
		expected: decodeHexString(c, "4c8154a08a21be50e9a8f8e1d4b0cfa5275e72b26433efebfd303d90e9fcbf0be8ed01cbed5cdc4b4fa0a27025e36668515a8ad1a31e4f4b0697b8ef6447b821721bf04131ae105456ca92a45a3193ba15be07347b9e99660a9e45ba88267c2010e0a0f4f47cca488f828344e353a7da"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_13(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "59f155ac90041456b095e61308181d14fb5a07c69981a0e9"),
		nonce:           decodeHexString(c, "2cbe51b9ebb4077266b5a952"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f9cfe88753e67b682fd496dfc1d43fb001549090855ff5e"),
			decodeHexString(c, "17f6d34e5b1a5c2604f6641a2e09d1fb4e711747f2ec50fa"),
		},
		expected: decodeHexString(c, "ac6830003eaa94eb5a68252fea2a17b046d3684340181ca39930cbf2eb75686672556103d81c127d140506da6c183145628b8a2b53e8b855f8da0681f1af90f6f5ed0a4de7fb6006e0ed2f91e018646fcccb4f271d6f560cf76b40407159172592f48d45ff9959041db35cbddb75435d"),
	})
}

func (s *drbgSuite) TestHashGenerate25_SHA224_14(c *C) {
	s.testHashGenerate25_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "598774dbbe13282b79c80e67efc9982c7750f18bf737f733"),
		nonce:           decodeHexString(c, "cd1f12bd2899329b39c3253c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "65e70309f7386d1a0aaa53da65263d5263bc5eaff0d5f3d8"),
			decodeHexString(c, "abb8cd0ce0560309d2424d2f3fdce7af085e6c14699b4799"),
		},
		expected: decodeHexString(c, "8188a498ef9e0fd52a77c3a44f1c7edccf9248590aebc52cb9ba7b5cddffe867b26309f032a78c0ab751741fdd9bd77d4bd17be90dd045f6f8b45826c9900028f68138cf1ca8e18b253b8eb73ae04f2e156d51a792abdc6524e4f45e4ed0b06ab3b0c94bc5e1ed58f917c17f72161d31"),
	})
}

func (s *drbgSuite) testHashGenerate27_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate27_SHA224_0(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "86a1b85b447ed6047efd9d941076f8e2574a59825d823471"),
		nonce:           decodeHexString(c, "ae0b9731774f400b41984dbf"),
		personalization: decodeHexString(c, "530ee91ea4d80431b54a3af8e6576f01aed5f3896c4aa732"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac82066b7fd4d4c700084653dbafbcc2b37842febf08fa04"),
			decodeHexString(c, "57b7737a97247423b83971cfbe1d1a77a61535b8922a4e90"),
		},
		expected: decodeHexString(c, "ba15fb11668d1a84785f5edf8b9054647fb702623a1140de9109ccbe1e14eec643fba1f4fc9debbe35d8a1fae3895cdbdc4a1e13f463955c3ccb16469817bae97c028f327c71386873dbf0da9fcda200a474d2e74ffffc867cd7e25f40158c4d5711c63af48e5e2590e787f0db84fae6"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_1(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9fa2311cfbdd52a3133f50799390d6d670c28e6a6aee1047"),
		nonce:           decodeHexString(c, "c7c811332cd0923de0f21868"),
		personalization: decodeHexString(c, "2a6da1f72de610e1d3322d33941d4091ca2a72452f1ee330"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a632b14f1607625575d89b86610aad7915503c2ca140866"),
			decodeHexString(c, "c7956c39600ce8361de289de2cfb36875e2f0460e2f3a904"),
		},
		expected: decodeHexString(c, "b17c449e66fe2950ec28d8e82c9a744fd89d91a4b4ce45f96b69ef98ce13704949f5b883f5c409483ba9d915d911c341855f4684f5d015b9039055689b7fe28adcf75e7159f05bdf0ae6e3cf37b07fe7583ca3169ac6ed96af336eafda91bd86731a38dcb655a048e4a7121749a2126b"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_2(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "211e39be0bab7a81c555d13981a12696e590fe65e5170fcc"),
		nonce:           decodeHexString(c, "16b7dbda910cc80202edc3a2"),
		personalization: decodeHexString(c, "8dbfc18b5fbfb523a79859decda92afd103e2fed12211b10"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea753210ef86579deaf11bb431ae68c364e964b868160f84"),
			decodeHexString(c, "5c3e93fe188b9b535a10dff33e5af1b4dd0d650068f808eb"),
		},
		expected: decodeHexString(c, "7a7fd347a9d7a51aac53675a5f61810f1e7f1531ccd40d46e0d34b9084cf5b347b10098d3bade378c9190eda9bea755800b723331d182e1a693d76db0f73ccc3a209afb65a7aa713b3b9364c48c70a4656c7d3cffc404c07277669403145c595469006353b77574cf2d565e2033cff1e"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_3(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "acc90c5fde8d56a80447cd97ccb88f72b2104956166d3d99"),
		nonce:           decodeHexString(c, "e45efd3ecd788ba826f7d51d"),
		personalization: decodeHexString(c, "b75c900d8e94e3926bff49bb55b1a3679dd9ab2970122939"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e52ee85ddd31155e77931f1ad6e9c994f28ffc10e5e15b09"),
			decodeHexString(c, "3c90340045534f3ba3f4c9d4e427fb912434ec1304073b5a"),
		},
		expected: decodeHexString(c, "9e5566edea3ca7048a602012617bd16fbd230aac183db50d161b36d02ae19afc1b734090bc2c064ef4e9662bf45618fd649c0794ecee55fb440f24c8a4105a77a7b512c5701ad7417e52997a1e27edd9dcfa45884b2f5c8e3d8a20ae8913b0a6915d3c1dda085a61dafb30392b41b4f7"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_4(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7f5156a1c615c0f8f9e964363ec7584eb8ef40d27b9388dc"),
		nonce:           decodeHexString(c, "74563632edf1100fb1c33c81"),
		personalization: decodeHexString(c, "b4884c6c63d03fbe824d4ae6b3c23cb4c5471b06604ba511"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2488044d437698280452c0e1d368fd989377ec94f7a3b8cb"),
			decodeHexString(c, "df94bbc38c787272f64364eae04f92333439a546a6f80e97"),
		},
		expected: decodeHexString(c, "0928230871ab46a44138fc00748a667ad6b1a72584625d6cb5b00e675ce505dd5db08883c1db0ac86646f2a39879694e16bad7b7592c50f0ddf3cefb00620c8500a353e27b1d233662295f1f17e08cfa4417afabb5678475dc55bc8e614fffb6c44b80ad4aabac18f389c1a9fdd61b53"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_5(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "24d7995747256a94f9d817003f64a9fe06cb158db616f584"),
		nonce:           decodeHexString(c, "9f54e37fe84d8a0c94523de4"),
		personalization: decodeHexString(c, "8924f0c493f87a8cd8ee710eb80831c106de5553041e9e9c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ec5f3134edc34995e03ceb25045ec8f9230e53f25310247"),
			decodeHexString(c, "2f4eda92e7f69499f8684395001d8c02e2a28c8a62d946b1"),
		},
		expected: decodeHexString(c, "eb9e6c934bea04b91056db81e56fe91109e3b85b8ce32cecdadf7b37d7939d2686c08c5e0ff11007d54af4e36694cfcd1448b0ebea99caeca8c98547128cd9e78a5541f291d1249f1cf281a7e555fdc24567d287326683b7ba9b458f7ae980773afec8d8650808ef7433a5273c06292f"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_6(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "aec9f1cc9c78f32a518e7c442ad709ae4f79c2ba51bab92c"),
		nonce:           decodeHexString(c, "66a2175c4a34f0c483035f84"),
		personalization: decodeHexString(c, "bc5f1615325ca6c968f7c1777a4f026fafebf802918b54eb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c46a3fd414081ff3c88bb7d5b266399281da880f91d9d4c2"),
			decodeHexString(c, "ad063400d0fdc9a7174b3fb6b42304c763739f3152ee99a6"),
		},
		expected: decodeHexString(c, "12a5c705873fc8d4ccb2594a61df026cf0e60433bb6bab16e98242671a8ae9d97bb6a5bd033464b30d26eda6bb05290fb8b7dd0c5b0062f25adfc3f5343c570322856b80bdbf4d9c65e25823291998ca46e34f3ee9fecb112df2cf3ad3455eee204c64a39838814f40d39a5c62ad5153"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_7(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "1b7313a4bfd08e69e356efd3cd89b03aa574b08346d4db5d"),
		nonce:           decodeHexString(c, "7560c73a2a82cd6633dc2097"),
		personalization: decodeHexString(c, "d5a9a27d17deff4ed2d7bd2310aa19fe9351ecf6b308dde0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9557d12b235921a46abcb1e71252742459a45194df8d4fbf"),
			decodeHexString(c, "a0f7264952fcdeb12d065d80cbe988b9d295d70e0285b0a5"),
		},
		expected: decodeHexString(c, "f3e7cbe2f69fcc53e40bc62e89539b7231dc1ccb4699a1e7e512c75a7ca93820ec8459a1e12510ce112c6e0c2465aa76fffb9cdb9598c5b95bdf1eedd2d3e8eca5887781a06895eaccd9e465c9af03c65d046c5f45cff0f07a10a5908b949bc2a7b1469db1fe3aadf4babf4057ceb4e8"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_8(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "16f52fab801fc54345b49168884c5f06e1992bf6f3cb705b"),
		nonce:           decodeHexString(c, "7a5100a4247ceef1044f2355"),
		personalization: decodeHexString(c, "32ca8d5a042d4b744ad5e59379801254ea92ad6e9adabff0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "479fc760afefb2991f9164245eccab65d3e370eecc3916e4"),
			decodeHexString(c, "992aa7758aa7b962103296c997ee0254b7717d9254d2491d"),
		},
		expected: decodeHexString(c, "ec2ba51eef719223d8df5809516c51f4079ebcd0ce85c57c53587533a49c798396b026c564aea04c5bfffeaf4f9fd8eaa7ecf50d2f3cf0c14eb99dc461649f7740a93b40446dfcf2a68a85d78294bfa79b7586ab3ac3b5e31412c972dfbfb174615e56e18de4facf659d7ae25355b59a"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_9(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "3e33049c4af4b3876cb43f67ac8f8d5a8ac97806fa6d1508"),
		nonce:           decodeHexString(c, "22c2d8c3b59e99ab926b77a3"),
		personalization: decodeHexString(c, "7516be26f052af032b28e5f3e7d36139d584c3bcc14235bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d39b1348286ed5d5a1cc52a9358da88eec1e963a6eb0772"),
			decodeHexString(c, "03248c2f296f87035626f743ff970691935bbf62d6eef9b6"),
		},
		expected: decodeHexString(c, "24be53c262f5181a02359f73e97f6474c2433f77b4ba4fc7444ddd0e00982815945d180d860aa5e403c4fe4562b48b2583c5d51cca3a24a59f05a93c9744f436650af562b94d75d95c44625e85a0d6a161bb7130395c75cc3e067a2aed3c7f69adadc9dfa7e10015d030abaf80432a4a"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_10(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "d883e6934565e0bf22c092233843736c1e7becde906366dc"),
		nonce:           decodeHexString(c, "c73a7fa276796d45d16f36f4"),
		personalization: decodeHexString(c, "829c8d4fcfa8e520d0ba7114abead1940b23763abc4aa67a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a8d92c1fe4e8f5ca89a277319e7ef4fdf9869bddb816307"),
			decodeHexString(c, "76b8e1f0ac6572b1af383f99e3dfddc7a6e4ddfa69034016"),
		},
		expected: decodeHexString(c, "073257ad0dc09fe074e8feadca8b38d884e355638d27ad27b1d473cbb5853ce552cb4e5f1bb3f4b074554825e5bea5c9c68c075706ca7bca6e094ac48c1fb1684f5fecf1acde94c71842628bbc8dcfec5cc2aac19dad22e75314dc69d902571f07226dbe75ab761a33bdc8a474c354eb"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_11(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7a94944be2d18a2aa15ce5ee67f4c0343c4ff36a953d7328"),
		nonce:           decodeHexString(c, "c218a8219257216a97cb037f"),
		personalization: decodeHexString(c, "8a31d2b549c488913eb64d0eac57a78c43a699ea168085e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "00fbd9fd9922029a48a6293958ed90cca72d97ef27f758ec"),
			decodeHexString(c, "2f17c557b5b475fced2fd433577ebc7384e5a59aeebbc3f4"),
		},
		expected: decodeHexString(c, "73d09e22031cc800b50a6e2bb189a69bb06dbdf03c32c042c94e407dc3047738eba7c265d815c3609f75144207b60f866e230aa9a43128d6a52544d5e220a8782865cd56aa3e2fdafab705db3eff96d6f2123ed932a447ba3e7d3db01b240e20a68846008e4c9e51d78d337cddea8ae4"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_12(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "87557273860b5d01c48d8196908649c4b88328809590e675"),
		nonce:           decodeHexString(c, "56833473f22dc22d14170a55"),
		personalization: decodeHexString(c, "998435cf6d83dcaa8e4bb70a1139817d223ddfec2adf7838"),
		additionalInput: [2][]byte{
			decodeHexString(c, "16708c9a59592f37f6d94f5937c4adb1707f93be28154d82"),
			decodeHexString(c, "829a67d0b1814dd03f466f37ffb9c5131f7d74438a685f8a"),
		},
		expected: decodeHexString(c, "d1fa4436d881a25a10e5120c2935c46e03a3578a21efb382a68e22eda8c9c52adbaf611dfa14291e86ad62b77ed8d5fd5305f82fab0c0f8315a2bf6790d45fb4f0a9d3b704e4a52cff215526bc2b5b2427c51e117373edc7b254335914f19430c56a56dff1e199a8f727b0543e3c4149"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_13(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e26a797b9bc023f5fe87c7586165df6eaa17ffd60d6be21f"),
		nonce:           decodeHexString(c, "bcd47b2bc34eff92a68baaa6"),
		personalization: decodeHexString(c, "9b51cd536ccf30091302e654758fe1b2d2ff820b3c42436f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "58aac703a592da10ab6462bcc2ec2d67ce31a747a9098662"),
			decodeHexString(c, "5a40bb66161a7c1e1664d2ad911f323727198d5f8dd41986"),
		},
		expected: decodeHexString(c, "7f0b2349248371a7b4d07888919d214d94de1b3ee1e3b9f87ba84c9ae6f14617398920e632e34e6c03361b9ef0a5c96c7baab811fb3f0f6ae3a034ecb604b59ecb274e847239cfa1dde2bd238891b5c9c8e4fd8d8783f18f46a18e2277fdef293ad56abe9517e5c15e3f83cd6f458155"),
	})
}

func (s *drbgSuite) TestHashGenerate27_SHA224_14(c *C) {
	s.testHashGenerate27_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "9e7b96155105119e84d8bc01d157e096b55d8fe43beadd3a"),
		nonce:           decodeHexString(c, "84e628d6411c355793266da6"),
		personalization: decodeHexString(c, "dccbb94a69a73d5428753bbe29a53657060345b9db3298a8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a6853817be281e26796430dc90f014f6fde64cbef16e58d"),
			decodeHexString(c, "bdfa703974a758cd4eb00661e0f4663f4e574cc7be6906e9"),
		},
		expected: decodeHexString(c, "23c9f591ec9abea9f9eb89ab8d705a1e570fd2888772db5d6fc6e418a34e32d78fe49be8d4d8288fa397b57afd49c07b715e276c68a2eb8f3e63f67de21d8ad23fbbdcfa03b201952fae49928ce4da66cb70638398bfdba4db7635c8c726a3cdac22c98ae776e881edd60b69f0b38e4c"),
	})
}

func (s *drbgSuite) testHashGenerate29_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate29_SHA224_0(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "a8dbb0592dcf5173471de8818a20bcfe1a5d556b60dc3087"),
		nonce:           decodeHexString(c, "b84edec829fc7262aba706c5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d97f4bfc7c27073b4101c7c5dccf7819d3266a031d31cf90"),
			decodeHexString(c, "0edcf2e8d86f9ffced03d2bd6505cd9c16d3097ad2b9d60a"),
		},
		expected: decodeHexString(c, "7b3e67ac5f353053c73c03d80f8c070fbd2ff490bff4a577f2b97f5b5fe926d4ecf61b2d6fa290a769e6206e33e02c3355b6ea149c2ab754738260393edb3390b7ed8837c751370b116affce76cf1b62d7fe96b4d6aa0c986749828c20835ca939eca5f846bb90623bbc7adee4400409"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_1(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c4ab93b1af2574f70bcc6566f9035f1a4f78ccb4ba7ea719"),
		nonce:           decodeHexString(c, "2278891c155a1be29276334c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f780f62b823ffd10d7473764dff5cf9492d4205b8fdac28c"),
			decodeHexString(c, "91e8e6894bbe6558b1a5249bdcaf220f8f9bd8b33cc8953a"),
		},
		expected: decodeHexString(c, "8921c09ac83ad49be61df6f45babb2239a1f7be9cd2dc5979abc29cd15aae8d51e93080bf28697f49a152068431c7717fec47b95a3fcf00c36671a4f3b3bd2e66b3f4f0979441b7b224ce1c0df34193cccf0ad1ff760d54c293ee9560375b344bcef715af8e511de772a0b0d6108d69c"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_2(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "b56380830ea9fe95209e7d6aa4c23b71d34a58cdff979c03"),
		nonce:           decodeHexString(c, "ad1698ff336da87908e6f5ce"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec98aad65398c61bca7b7b32440bec139d646f1a9e484baf"),
			decodeHexString(c, "8f151a3c7d292cf742621101c6e4ee7226158e441c9a012d"),
		},
		expected: decodeHexString(c, "58eaefccbc5d04e9c8f584c4e5455797cb4e221c36b4e3867ea9f16f72294f9d0a1e6f7b0a6ab6d51a6935df1452f1cabd408974bdee9a17c52ae95068e6ecb7ec55ee39062fa795e647c7058f9e71ec01ef4f398bd11cdf88c61771982477e2478c438bf8f1591b0945c3416bfa439e"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_3(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2c1b7b611c85df6e59907df53e5d3fc597f31f4f7539de2b"),
		nonce:           decodeHexString(c, "a3c67467169a12beb63f34ef"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b84eda25bbf4f706ced37ad409e69b5564fe7403237bea6b"),
			decodeHexString(c, "20907c3cdc7514c09f37e6f469e85944c00781a90de40037"),
		},
		expected: decodeHexString(c, "dff125381a7299be9f571980a7ab068157d05c21b37ceb400b5abe6513d4bb05136b0f1a093d8363b2d43395403fc11c2f2a1b6457db7b44dc165e918c5bb7567de7dde0fad44d47bed60a98c3dda461c36796d99ed2799e7ff5db8dad041b0c63a36f103103d699df8b555713f40e8f"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_4(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f1b9bfcd31a1fb8e6e8b6f05579674b5058edb1191edba86"),
		nonce:           decodeHexString(c, "aaf079e0d66448177dd35175"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "706137c5519d877beb492556129e28481617cda963c82a67"),
			decodeHexString(c, "06cd1a519df346e24078d435b5c2790e1d3facd3cee6087b"),
		},
		expected: decodeHexString(c, "d839b094dc03598b56f864a1077712cbeb7558209b5ed19a5f0f69653664ab89249d4ffbc80624c12cf19d7eee63f0bb9527beb5a057afdd2570f5a54b77cf64f1bcddb6e6995c997786903caf1242d808484fce6acbe85e357c9759668f5c232683b3b54083b781ea2da4e7c8bbe876"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_5(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "fc4a6f6e2521d029e56bd53c430b2d8d5adcf9afe8d0b6b3"),
		nonce:           decodeHexString(c, "23bbcdff40f58cac16e0c26f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "58b02447c1781199614a2c9779d391816ccb40908600427a"),
			decodeHexString(c, "6b1d9257d8cf58a28905a8b308b7d433d4fd0565c1d1e8ae"),
		},
		expected: decodeHexString(c, "e625380c083be01bc4ef0123b622356bb0528e78614b18fc534123b5b7ba0127cf7cb8d0c8df89e8bcf2ce9880490d28e75b8dd8136263cd9b328b04ea469d1dd1086f11a9352fad67f78f82b945c75dee283848055f83a82897e06703a66f8b18cf1a88361a701d1c0bd738c7745b41"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_6(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "20948d554a41ff027528c1300809bcacb4780b959469d578"),
		nonce:           decodeHexString(c, "2b9367eaf432073142dcee41"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8b7f07e8263842cfaf7d582c0927864170ae4df33f0311cc"),
			decodeHexString(c, "73d0eeaa3206998cd7a2dd70b60d6da178c65a3a9fb215c3"),
		},
		expected: decodeHexString(c, "40d20a3df1351bf03af3447da04a930270de48613a1b73681fa041e903385d4257a7774b8d62e726050c9a21da17af8e0ec107bfae390a37895d71f8d126ddd015b1d4e77a205b358f85372fb81107f0a5ec2fdbe37dd00877d286cecdd1991fc1638bbeaab27a3ac70e8c060747cadf"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_7(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ff41b81599810a01cca6159097feae80ab55e03dd04d333c"),
		nonce:           decodeHexString(c, "fbba10f7eea1e17b95c6f4a0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a40fc869741f62cbcdf1c6ca2faac41e40450c3624965e1f"),
			decodeHexString(c, "7a7f5ceed2127cc6a16943ef630f07c9031326714e119df0"),
		},
		expected: decodeHexString(c, "3a6018a00a97ccf114c3b764fef9215d6484da8ba9e085ef26d019be93f8ed1e37c4b891f88bf5ea051c1d09f4bd6851967293acc8a7ad73ce5c73366aa2404de86f9fe1c077d0434ec39757050e986a2f86f55e8a6bec27b016e0dbf4b9c9016f0a918eb417f441f7ff724d5ca8f468"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_8(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "5e7fa3002e0f5adabe9be1b79d792a16850d43705e744453"),
		nonce:           decodeHexString(c, "42b548d2a692fb79db011e43"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1bb8ebdd77e142537f477557f190b026fbc1e0bdd1dc4b6"),
			decodeHexString(c, "a72b7c2552e9b46d3c34084a5da6c122e3cbe53f988016ad"),
		},
		expected: decodeHexString(c, "2770b5910cde1fd5e54720d8b57e137ed77c2a7a50ece9c1c019bfbf92e279f141f71586764deab8214e83a4c9b3e61fd2563a8ed9645a2f13004b9ff3c0481dc1db497d63456103816414e4f1cf002cc24a0da861639fc847711f661b9ae91b6982ef2857eafacc8621fa4c7d66fc11"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_9(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0db64b56c91e1d72e019da8b9829bbcac9e64dd674f64560"),
		nonce:           decodeHexString(c, "d1637d39057566d9d20a1320"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "33f94abc4a8846483abc9695edbaa3479bcad3b994b80ce8"),
			decodeHexString(c, "781e62295a01cf6513c0b917321ee9fb1ebdf2674302b48e"),
		},
		expected: decodeHexString(c, "36043d99c14308be1fc5d518955fcf766f7b7e81812fa42ee98b367c5a5c5b46e2eac44ddffa3c21eaa48ec55f7e416cac71651540d5f29fe95b24dbd203f83c074ff2f9e6b561055121274438060450146c2c2cf21b884035c7f762dd923e3acf21ce26dc6291be66e93d74e9d3e8b2"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_10(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ddac5cd0ab9f7fd33bfca2f320c82c519ea4a65088c064bd"),
		nonce:           decodeHexString(c, "72a7a2d38467857f6d887d4a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7cef1f18e474b776a443980ebfe97d8ad661391c46d237d5"),
			decodeHexString(c, "b3d6f72fa5f4130b96f64cef11115aa4fee0b68fb5be5910"),
		},
		expected: decodeHexString(c, "2f3245bcf7d45e1e22e3842857fe2b539e5938e0eae31271faf93f301e4aed4a4f4efec3a081bbdeca2c3c4e70fc0299a920261e0852543551d8de0b25bc2f543b6f6183b859e50c0162b26ca73a9ae6e504986b4ae5cd69b4abc8f6f1a12490d4f97b74a0650c8e8576aa165f453be6"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_11(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7fd978b33986297a99ac44d269222b20828574624bc208b2"),
		nonce:           decodeHexString(c, "7cf10f8e5c1188480ab5e95a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "65beb2e3a0fc3484e34e957ef004715762b2b9fbd68ddcff"),
			decodeHexString(c, "df6f2ddee86689f5a8592bd41e1cb59fe00374401ff7e8a1"),
		},
		expected: decodeHexString(c, "5d9bb9b209911577b187adf0ac343a5a0545b77191d7e1cc191c2fab4e86ef6a88fb1282141d83994bc039e17f4b7d29ae8a3117586bea2afed00a41677dfb2ea9b68d6618d75da7d0afa5ec4a14ac80be6873d158f23de297ed4c0aa3b5fadeeaf189c7126c460b9044b93b87c71c69"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_12(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "ccbc856e0ad43d99b8d62e6d9a3ad4c46619c738003c833a"),
		nonce:           decodeHexString(c, "49a96897c2d217859598faba"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "af4eee45d2958ea81f98ed760a8a220384fc1116fe54df7f"),
			decodeHexString(c, "b5c42a81a7c83320235598bee78b2286b91f236187f5b85d"),
		},
		expected: decodeHexString(c, "4a44fb3cc340ebbda4eb2d55312ebe2dc23ad7698d78b5556475f764003e50fe9e48dc33b6d1441b4a26f2fc5ce357dc9ff99c32ebcbb38f66c2052034bd98fb6bf638c6994b312ec5e389cd7b72f4312043c772973eac1664146bcb19dd97e142613f6aa26456bbab200ab98215a8fb"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_13(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "4b68982eb3b81c8b149603cb5176598a7b405a71186afd63"),
		nonce:           decodeHexString(c, "9b62ba7d0213555226c43b4d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8ecd586643a108b396694e4d30a28d32ef32551777a2d094"),
			decodeHexString(c, "f977340856dc1f6d1e90b74ee76173512ca25c59d9bd9495"),
		},
		expected: decodeHexString(c, "c117887bf34cd682114555f017a0689880ef011254023570f5f78dbf6223bf6e94ce9c2023abaeb579791249191fa1c95ba3f1bbf9278836943ea8b37aacbec8f0d0b1c42d30c373138ef078ad1533e4f17d3d87ea093dec837ae90afe8905a7f505603be966a2cdc8512f8ee8b19f84"),
	})
}

func (s *drbgSuite) TestHashGenerate29_SHA224_14(c *C) {
	s.testHashGenerate29_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7c6d9c85ccd4cfa4e9418baf144da0f635f0be86a4cadd48"),
		nonce:           decodeHexString(c, "8d574440a514427686dd0eae"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "71b5b9e9b813b5f69e8fa9fa7f588217268581b7d135fd7b"),
			decodeHexString(c, "e5b06d8f12539d36c665cf129c1c42e3b7e88edce1650870"),
		},
		expected: decodeHexString(c, "64595391a02ff750b46418274b8366bbca0e9c52c95bbdfa65882b76395887a018faa276f3fd6c8dbccdb964755e36508897cdac977037d0978f2752d1dc68bde3ba1edc94787c1c8cfe42c2347052da30ba7f1e06b44c10805196e7bb048cf572fda62b4a28fc189702b1e575b008ef"),
	})
}

func (s *drbgSuite) testHashGenerate31_SHA224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerate31_SHA224_0(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "de1fc2448e0033444984047e187b6fc2c15d638ba445493f"),
		nonce:           decodeHexString(c, "a7bfe594b1e4e735a283b49a"),
		personalization: decodeHexString(c, "a3985856f6cf4ad07b57f4932cfa4ad96256e3101964c4b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cafc4a0576ce7beecd09717b413854b4ce83ffb12a19be51"),
			decodeHexString(c, "9dd94e1d4ceb539a59ea283596e11711576d24a51316ebef"),
		},
		expected: decodeHexString(c, "e96607fbd3379d34d505a80b2afb102e2b6ded5f587e75fdaf111a1d325e972d6afb3a4277c07d1441d74b26250f9a9d9022431569adf36833cf30922ba462fb6cfc1777473f84452d2abe498f29a7fb8acf924143d8fcec84603d7a022a0893ebbcccaf3d390f22b63097ef007f15d8"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_1(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2f9ff6037fc3ba1d56efbfc890a0cb543d5e2c925a97b0c9"),
		nonce:           decodeHexString(c, "70f99e00b55e3cac6357b0c5"),
		personalization: decodeHexString(c, "978c1c174b077d1eca30b7048ad51c08c8eb7075356d12a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3845a37b64c25844da62bbd7851976ec13815f291fcfcaa0"),
			decodeHexString(c, "8aaec921ca08c9e9e88c1d7e2d904246b83a2de50d80902d"),
		},
		expected: decodeHexString(c, "4cb4185632630662d984e834d0ea3c0bb1c7fcf4370979b8cfb3812387728b4dd5bca023911ba0b7b2e0c225ee2c630e1f77463eea3cc20a71c4e6da4e6590bf53171207d70d35f401c2be555b74ba67be41c4a2fc7b255d44b1d5483d33f813046263875ce52b9cb44a29392f18616b"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_2(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "0e34dfd2fcaa9b61e43f1e3d7671f67b1c740727eca8de3e"),
		nonce:           decodeHexString(c, "9e86de397cc30e25cef81e69"),
		personalization: decodeHexString(c, "591d7cadc1b4875cabdec90ea5e121432770a0add5481106"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d13e2237d7387f97d9fabf10f6d33d2f47371e95d101a97d"),
			decodeHexString(c, "90a31e97a288a714816f061ddb62466a17e3e8e860ea6591"),
		},
		expected: decodeHexString(c, "2a49158f8c5fe3bceeba5f43417ebc99d664f169d19579cc959607c20065498e69b5683bdac9fc02ddb7ffaba3fa3fb556dfb89e692c1f56cfd9d367d287e07d4367b10a7a35099baa5a9a645dae4178a688b0f2886d050642d5346576b3428aa6f534edc8d1b472645b0fbf1d9a84d9"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_3(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "e2ffcf413362ec0e5f64cf6559587c99e90ca53e744c7c76"),
		nonce:           decodeHexString(c, "29cf38eb43688c895473e6c4"),
		personalization: decodeHexString(c, "c9e9b52552287e7cdf1fba96ac9a9f933ce83122de0c2550"),
		additionalInput: [2][]byte{
			decodeHexString(c, "43b4c0f0f1a951bba10a3168750ebc7ba9429ca1a0d9d833"),
			decodeHexString(c, "d006395f7d47c5c54e99f7edb31711e58554a872c9628996"),
		},
		expected: decodeHexString(c, "876d500e593fe085aca5492adf113edf3decae539493913032eebcf8630b9be8ced544a6ddfdf2248d2fb5fbcae26ea1e799fac91d49e1bd4ce13006e9e899c24eba714a7cf4fc15fd8c7d7d12682e851b32b93e45a2db1c0a797b5f03b2f25ec1ab257a7857eba257712a298deb3363"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_4(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "dde4c5e0494373fd847e1cf9ca64c1192156ff072a177e73"),
		nonce:           decodeHexString(c, "957462efa059df6f56477315"),
		personalization: decodeHexString(c, "2d2f37b8e2d2788f2ce3272410585fa4cfa5e9174355503b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0546cbc0b8a93030e812eda71d40d514134f3f81b9b63587"),
			decodeHexString(c, "9c7d51a9f7e0798ab67cce06717eb324288596ec6d3b57fc"),
		},
		expected: decodeHexString(c, "55280136c9399e638dae3183afdf03b6cb91f04c85f728e65d5d683e8d551fe55e47449e782a7b8d5c133abec46d9164ba30710457a0d38ddc937d92558f768f757f6512d08f198cd5f3ebcd2bae21f0173ecdf5c1a59e8b87e9af4fd93de0a548f7294558ade7acb748b95c24184ad4"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_5(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "c4123044e021a669bc67f477ee9fb0fcf8f777fd0d8d3fc4"),
		nonce:           decodeHexString(c, "c152d4000ad67858256e3cc3"),
		personalization: decodeHexString(c, "bc7d7de5487fed58f18ba3196938db5b1612ff8d25b273e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "68ff8f956bdca81fea0fcb32e564fd4d964999caf1ffa54e"),
			decodeHexString(c, "66a47d5368654fd60dba5c85862f3d348b5482bb251970a8"),
		},
		expected: decodeHexString(c, "70f629cd970034597c24fe00162d5c3f2c5097c685e9883cd2cd83e7b3b883224507eeb12797a98e4b4509b1ddc203c99fcba4c5ee0a7d0440f3e8e55e81a842aff210b3c7c24a73dea10f1fc3d4fff16a49094fe919c9084d2f0af39f1f66533edf90eca7cea1ae8fd676b7df0761a8"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_6(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "f25e241132fb3410c8ef3f656d71dd5a3e3d6c72f0e6e9be"),
		nonce:           decodeHexString(c, "8dcc1aaeef78bb09059b2c4c"),
		personalization: decodeHexString(c, "e86fd52e459d5a0452ed4e21f2875ac3079856f1faf64354"),
		additionalInput: [2][]byte{
			decodeHexString(c, "51a0ab662e9f592b92885c3beedc9f06e59c4a338ee70bce"),
			decodeHexString(c, "3f9f05cd66cc7e3d83cca473dd9b859dd24905e80833fcb4"),
		},
		expected: decodeHexString(c, "7809f1fd836a54c202befc994e47f288d0be785d794d9e52a0f56ffda32d706fd8d2d28cfeaa89a44cf514951bfedc9adf6183d297bae0e609665e4cafb5e0ecfc45cf3a760b538290ff880c1d24f031382a42d3de9639a44fe8ed15c4b79de8512e2dcdd68c38e59b58207ec1b40384"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_7(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "643a0493bf6b7ae347c63a708d4de9ea7b9536c386de6c74"),
		nonce:           decodeHexString(c, "28966cf93eb8415ec6653bc8"),
		personalization: decodeHexString(c, "6929e98df76b8d767c414a7f06227a4e88003a1dcd2d4ed2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b6b3aa1f95e9a2eaeb51ddafe4d303f5b0165933055c25fd"),
			decodeHexString(c, "1beb02a0183407e74fa5166808beda53feafb1d26c8b9db9"),
		},
		expected: decodeHexString(c, "eab0ea389bc66aeb0f01302ee412a7c87f300c95e45919bb9565a49fc2ed5e65d73d9517c3b4e10a1305bfef65c0dcf0142bffa715f4e041b98fe055483567a7b2f8f0e63aeaa6ec267bf7a54884ff3ecd11be6873fba7bffb7df998e80235d2360f23110c82fbcca12e08e6330b9f64"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_8(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2145e283d674ce8061e31925d888e26b4d8bb7ab6ec162dc"),
		nonce:           decodeHexString(c, "d87f3bd6b88cb1469caa4369"),
		personalization: decodeHexString(c, "f9912008933b4604ddaf05b277fee26c3f8ab1696a7e0b82"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9aa10aadefed36f4d65a034af21ac15d8ea6768785e5e9c"),
			decodeHexString(c, "2a61ffd60625f27ef7d03f755693cf152426cb35e9e2aa48"),
		},
		expected: decodeHexString(c, "aae61efe5c21ff8b25dc39bf885a845dc1f21ad37956d63b0f419b3f7692ca037297e4fa5e3e83f6c72bdddede3fdaa9b7560877fde867da51b3769f5ae58b84441eb739a6256b09366fc7eafd1b11a4078d028e7ac328cf7e11a76b9ca3286f4df5e9e23798f2347e201630899fefff"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_9(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "7483bb2c5e9df76ff37f2d8919ffb54aa6adc0b992f1b4cc"),
		nonce:           decodeHexString(c, "bf5f3b883468d1c49733fda4"),
		personalization: decodeHexString(c, "47282993db33ca2ed7fad8236063aad6313b788a6d421f59"),
		additionalInput: [2][]byte{
			decodeHexString(c, "de49cb2490296839bd41fddaf31f3388252d41cde88aa215"),
			decodeHexString(c, "dfb03b86d8a19a2064ea289993854045284d08ffa68e309c"),
		},
		expected: decodeHexString(c, "c170e7e13ffc5a410dff29a6c6ddca5652c0f0792c09b66eec1badd7f4df967d8b15c91becd7f414019df2ed564d075d581153a2c2e0bf1294fc65386e286318523efba8728fc1e4ae030b9b001aa2ddfc48a5a7756cd60bdaa55f3bfc7bdd86091c90065f2f65e34d00e9d40d6bd2a0"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_10(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "2f42a38e99885aa203085915c1be080a6cf6e0264b0f2354"),
		nonce:           decodeHexString(c, "977a232d6aabda96cc84a4b5"),
		personalization: decodeHexString(c, "2b6fcffe888671b20cd8e12be8737e5b963f9aee1ae26ed3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d727475783d45e864ef8a53aa3687edff5030525ea75b47"),
			decodeHexString(c, "640b60cab272ab414cddea8970a12a3e6cf6885cfef7a034"),
		},
		expected: decodeHexString(c, "4d738163a479e71f7b45dd0c2ff08eaa35a10d7e7b07192e6b88915c2780efdb7d7ca9adc239b26ee24fcff3ab419ca26aaa575a65e334347f259a0c439ec15cf2702685a6b9933da6825b9c394eed70b24fd69644b642f1fc4a0c12bc390ebfe479bdd8ff7a4bf37b03b8d6f2ac7632"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_11(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "de952b5578d813ed8acf967ba93f75098d423eee2473fe1a"),
		nonce:           decodeHexString(c, "71638a0d1e6fa1e51c56bdc9"),
		personalization: decodeHexString(c, "74dcd9ae2c668f0256a601186140446eb44673399be80771"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1259e07bf0e060137b8ab17a244ba6a34df152d34c11a2d3"),
			decodeHexString(c, "55804e4c7029832e097cf404d6cc8a87121750e28feba0f1"),
		},
		expected: decodeHexString(c, "bece47e28e5bffe94522bf00c8564c39b1cc03b6a86a48192e8dabb74d24d0c7b3dea71d104fc6a4c9ae48ccfeaea474f4dd639f6dee9c6297d54b80adbe9d564b2b3c38d970fc836a8a8376ba5b991613df421286bffc02eb315a1db3f37ab5dde6344e25a3acd1513c313cf5fc777f"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_12(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "625e312e5d83f306dd93c5722f5624c8b6f3e5c014dc77c0"),
		nonce:           decodeHexString(c, "54f58da4c06c6525cc18a12b"),
		personalization: decodeHexString(c, "3cba7790e518323c7c415c5ff8a5d1ed959d25936cb689ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9499c0165da8ade78a8616f3eb815660bcca2480b766404d"),
			decodeHexString(c, "5942ab9dbc8464e4928a006a09a5c03141fed3ea4e9c58bb"),
		},
		expected: decodeHexString(c, "f1870634d5bec5ebce2e0bd52c1616926c79c053271bd9ae34e3cb16fd0d598d96fe8b6daebeb7977fc0e1841b8e8bbdb0bf0a2ed4c78104d4d60a5d38c79e5801538c81af945c7c3b4d8813bf2744b688577140f66f8534ee537d2dd78ea005c688ed91fcdaa74cecdb062439121f64"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_13(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "02dfde97b93b6c5bbae81b95f0d0aafdd7c0dfcd88d7ea19"),
		nonce:           decodeHexString(c, "59135b7a1abe397da4f5cf4a"),
		personalization: decodeHexString(c, "54faac09060a302f27a4986cfc14e49de181c83d6f74cfae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74e500a48d1b58b0175f0b18339ea02b11686d2d13f01e22"),
			decodeHexString(c, "6aa3c0391703a47029da8f41c77f8ee78afa0b847dd771ba"),
		},
		expected: decodeHexString(c, "8b0cc9bbd6d9f6a1a1273772a2592692921b464aaa3414ac3505a6c28e3b007ae7875088038e2f1b2902450f246346ef7f097a6f44951a63c9ff5bd136ab5925e9d5ec690cb9e990e4b1b15d38f4f209d86e38f5dd798f716cfffb6bbdee4e541351f86c0c60418a3afffabffd7d432b"),
	})
}

func (s *drbgSuite) TestHashGenerate31_SHA224_14(c *C) {
	s.testHashGenerate31_SHA224(c, &testData{
		entropyInput:    decodeHexString(c, "63b6771661ab689809ccc5e5591bd1743921d6ed1e1ddd01"),
		nonce:           decodeHexString(c, "b634e989ec3bd5b59777b27d"),
		personalization: decodeHexString(c, "822de3952ff36cf2d4e4027c12c4f7cd665c08d929591b21"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5c633ca50dcd83e0a34d397df53f6d7a6f7170a3f81f0e6"),
			decodeHexString(c, "5f0beb5a2d2968e83ba87c92bfa420fd6e8526fbbfdea128"),
		},
		expected: decodeHexString(c, "8bec11df1022aa50d95daeaf23d78d6ee45c43c5768b90181e106c7df8ff333d7cb87ca1ab83f8742370db1c8c0c0c22f141ff4de33ae8bdb14fee7e6c069819320629c66d94c7c97ff52930a3c1dcd501b60f0f84bda4720ee187ae858a6e068326eda5809716e366d1b608c61b0100"),
	})
}

func (s *drbgSuite) testHashGenerate33_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate33_SHA256_0(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9b6d88373841458da926cc51f83922d363f0f80f90a2f5505c04033824ef7385"),
		nonce:           decodeHexString(c, "82b21ff47bb5e1b33288b22f3856886b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "45d21d94ae1ea460857b50b5b240d943d42160e4c12377e0f817b79e92530bc1"),
			decodeHexString(c, "ea432e31cc94c20d66fb13d1ef42a5f62b024134fc635aa1279a6179204731ca"),
		},
		expected: decodeHexString(c, "3d23d0fc03936766a1e1330393e8ff6211149f3d0758db038da1c833ca8e5265c2a9ff6c8e0836904c5fcd3e61b1c77d613dc6bdaf6437573a618e3e75e455338a7f9a41300da8fd2da408cf095ff7eae1686d60ce9c2f547d0515da91600201c8374b7af8a5f49a6381aaca394c65d451341a0ae1546cd57e0d9167a6b5397d"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_1(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "73d3fba3945f2b5fb98ff69c8a9317ae19c34cc3d6caa32d16fc42d22dd56f56"),
		nonce:           decodeHexString(c, "cc1d30ff9e063e09ce58e69a35b3a656"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f4d5983da8fcfa37b7546773c7c3dd473471025dc1a0d310c18bbdf566346fdd"),
			decodeHexString(c, "f79e6a560e73e9d97ad169e06f8c551c44d1ce6f28cca44da8c085d15a0c5940"),
		},
		expected: decodeHexString(c, "717b93461a40aa35a4aac5e76d5b5b8aa0df397dae71585b3c7cb4f089fa4a8ca95c54c040dfbcce268134f8ba7d1ce8ad21e074cf4884301fa1d54f81422ff4db0b23f87327b81d42f84458d85b29270af86959b57844eb9ee0686f429ab05be04ecb6aaae2d2d533253ee06cc76a07a503839fe28bd11c70a8075997ebf6be"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_2(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3c898d0b88cfde1955ca1c25d3c876c834fbf4ecaad1cfe7f2072dde4184f34a"),
		nonce:           decodeHexString(c, "cf65881c53ca2b79541dae65b15ed8b4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f5b4624b38efe5115e54937dfe654e2ba7dfe64ec88a6442e53de50780dbad54"),
			decodeHexString(c, "64e14c43a3b2f2bb638d80eb5e57e74b07bf5005a424e0c1b5eaad6a26e9cbe5"),
		},
		expected: decodeHexString(c, "b2a5c7478dd213b82eb05a0cee3dc6fe25c8d9bb64b90ceecc17c56b0cf8fd877d330e3091cc27e6baba7961251818446eb44eafab8c6532c5fdd3d0f0331baca3d81a6f20494e524e73b21dfab347bb54f2bd211621c88aa1813c26295a80443c87fd9476616af7ac8ca83738d95dba2ff421dcabb8b5c82f445812a545fba2"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_3(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "59e6b039e5174328c4ec09933e51bd01a1de95f01df8bbe73edce41b80396b78"),
		nonce:           decodeHexString(c, "c6b56372644546b6731dcfc68858e4ff"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d87ebb74220a6f15e8afa0c4bcacf1af13da5f5ac17c896ecd9de40bf88a559e"),
			decodeHexString(c, "2974f4ce59fe9e5d605bbea8b7ca203b25dde4b76e02bf93b7f06393d7f9138e"),
		},
		expected: decodeHexString(c, "683bb8bf39ac5513ee5d83235f53dbae4ceb1c6bce7933ac3b5885939d6c42e9939808e27a492e842330620082c716f99c75f213b9edfa059f93fa952b3968db3765c5eb8e6762810cfa2b6c8a0039834b2326710fb5e458354fa6697574f611ad50c99c13acc906df2ebcc68a040b5b11ebaf95884ca6931d95ee3756ec888a"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_4(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3ac6fc55ea67b9735f21f597d0b9b479ff0a77995f1d8a12c2876b09b322ee75"),
		nonce:           decodeHexString(c, "4275cfee69dd2f9c4be5099ff62969bd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f44174a0bf525241218949269a3e6003911e421a35819a98b8bf5f93aa78a091"),
			decodeHexString(c, "331fcc1af5ce6ae7996bb8b0731575ec8d97c5fab072bb4275f2faada32509d1"),
		},
		expected: decodeHexString(c, "dd5c54bfc1a3084bcdeca594caa44e9ed7551cba4e08c945ce4d1412eae73a7fd026e2efa96e91e59e3a0f0534bec554b5826e0d75b2959242f0d3d7564fe16c3600a129f74c450bfe39b0a0030ac07e8a99862dd74d4f84c2ac83d526b0617b24f16b2789c93f375e1e760e7f7b326d0ed00b5d57fe9a1b6be441e321d8d51e"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_5(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "49767ea772dccdb46873254add3edb457d96e8e372fad8a83ef0e30f59a9c8f8"),
		nonce:           decodeHexString(c, "3a136c8903397675c5356eb5cc5c97b0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfa444405db381a4700f61215d38bf55d1bf16539dbfc8f4d67d43173b1da349"),
			decodeHexString(c, "b994b14265ceb89f580d7ab9837a150f0a47b53676cc9a8ee7c4a047eed9adef"),
		},
		expected: decodeHexString(c, "acccdcf505120250e5c6015ae085b90a92e35b35df3a6751cbb8d5068a8338451fe2d9b28985c4a145038d7ee3f13130d7abf63b9b67b4ade6e67d0712baf53de2edb340b4ca252f9dbc0e59008f4110d6fd841350e2da413425c97129af504c1915f25ef0db36c38a97386fa5949a2464091bd3b6f7f229777c438df5028a02"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_6(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c9ac39cf41fbea7d7063efbfa8720a98172587f7c2a75716521e58ef7d77fc32"),
		nonce:           decodeHexString(c, "3565603453aa3efcec11da7b1de53cc8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea0defb7a4c21ce69cdeec640285671bba779036de382bc037de24130199acf4"),
			decodeHexString(c, "2ab1926921f686b2fd33e9fc2cef4e5d030e051f50d4adb73c3c7be90929e76b"),
		},
		expected: decodeHexString(c, "fb6eec78eed8ac3c623c2b8015df988233fd436db6855e9d3e14910f0ed0cb6c7abd34b708ce39fd2bac9837a0aaf64460b93b12673e9dfa43a65f81982f78025268cad6ccab62a9e0edb7860b2ba6780c6b7292a279799d4f5d77c01e9e4804477746728e3d834e73f4c46fa0f010b0eae1a89d655c832159ab8b86781c5de5"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_7(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "827076c54b7740f92244501069c0e3bd133b70bf737617bae2b05c42436d1a1a"),
		nonce:           decodeHexString(c, "db9ea9b3eb20d8914dc7a05c17273024"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "aebf4c50f089479e01736fc06e6dc8cb66ca03dd53e3ccca07e6dc6b8d6a4800"),
			decodeHexString(c, "404c9aac98518d4b39a75019f729d271d6a7664a42c225ab211f1452d7ffb058"),
		},
		expected: decodeHexString(c, "42fd372e3b6d47c89077e42f4634eb20ce349a33d4bee3faf1ebc0ecaf3cd98b2a2d16c8c602ba973ebb7255098bf498b4e273b54d647a6ef474891a3306007c0deb4fe6cb2288d6a08be5ed1ad96a60cf4d5cdf8ad4c9a5f831eb9dc9e3299b96bfef8dff43d774738fe81f36b2b23bfe5cf103fe36d47b94f0d24ca913d989"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_8(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c8bfc49fed3468a1c4907275181b843d7b36598c547e7593e65472eecb610929"),
		nonce:           decodeHexString(c, "0c04252eeec241ac99ddb84a30187a24"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9fdb8ca4a7325f7b0a172d47ea493e9c41e8264a2a62cf4f5ef432735aac2b55"),
			decodeHexString(c, "f6fe7359d6993c9e6842c17b2328f01e00ea5123f4746265c160c2ba4f43c78a"),
		},
		expected: decodeHexString(c, "a4d366f0ab0d4017feb83f3bf7cc26d4b0938aac3b099dbae8a3e2e0ba06e1f089fe1f7026ec9ea86ee6ac5dd893fe8a64c9cd0a683787884b2c26082dd47b31ac09dcadb22cf6ae8e707c54e38748ab157175f7b7ed69b5d924d5cad699e1367bbb32b6762badee2e5e509fd48f6a6081e4c43061c4c111ceba5afd470d4edc"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_9(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c7d5db3d2d84d4b464c9e98ad2171599247c157a4938fa2f8ce474e940bc0a7c"),
		nonce:           decodeHexString(c, "fea36dddd102ab8472653ec0232c9b7b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9b52dbe64ac0a770bf69db0aa0ecad599990d28f085ab409f2252a55d3b01cb0"),
			decodeHexString(c, "a403456feeb69abf91cb7422054b167725490756ccebbdf499df535fbf886007"),
		},
		expected: decodeHexString(c, "7f61226e0ff11733b84a62be5602601cbfa728f9840199fc0c0957e9d39b4133e6936b5f97b09250e9d686b17ad80f6366cd7dffe7644e29cdaf4d07d305cb25be2b17f5ef81c190fb812b93d2be0780de4d7838933c4365db9889b6c65d61f2eda63f30947e21c4d0c6130aadb903db65518e9df3f1ecd58b8ad50100742d64"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_10(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ac1b4db7dacb4f441af73eb4b6f05d774ae4fbc980450cf1fccbff7dda78e6f7"),
		nonce:           decodeHexString(c, "2f3686096587c177076939789da6a0a0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0b3212fa7b2128b730c119355e76e38520c64c3c552ace52c74bce27b7b75b19"),
			decodeHexString(c, "e0290804900ffebffbc625454127118d251b2e8055ad424a0889b8173ff94d5c"),
		},
		expected: decodeHexString(c, "f16ef06ff5227da000e02c01b94350d9201013ce11200d0e3f69934cdc963fa886360d4ac2031c5c00d2c701264c5a193329dd71cba66a650d9f51dc124c7c016a7e0506b04b15513b5e30656b2c0bc12a7b266317797b57bd4d82ebb56e949cff26d6ed5083e35490bd77c8c4d088ac155d7998fc749b2974f21788db6e62da"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_11(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "aa166e22cc538ee40ec2b84b110fd3355983d640d0e9aabec7f8bc0e17228a57"),
		nonce:           decodeHexString(c, "dbb258a9a489fead5ae91017f96a4ca4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "06c47d8f46743aa345d83436fc2a9760f9dfa681d75908a3df1e15f40656b73f"),
			decodeHexString(c, "717a311e8342eeea8b369b74e25b64075add804d81f448f13515a7a71f818152"),
		},
		expected: decodeHexString(c, "6a935a251a50a58aabee538d29d8898de9cd18d7dd7fd2465f4ecda7a35cd94579d70ec0fd96f2ea9492030d9f74c0e2a9d29d947b9880f9823973905a79a030b6995bbf6c7a7505a36601b23d7504062e8a7821df01d092b2c93579dbc2579e6c64846d5b04b62414a59be3c0cf3caae40d3b847acff3b221580f60c7a7085d"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_12(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "13e1bd42516a7193c1cbed5c54fc643623dcc0b59a4fad9aeeeefba207c8a558"),
		nonce:           decodeHexString(c, "c8c41ea0dd6580ce4a2372dffee3947d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3bd158cb5cd9435a711293ecf4e84649164b72322bf638e0749f8afbc119c552"),
			decodeHexString(c, "cbecb4c129c1cad1bb3e478f208034ba92b19ea35941c631b29b2e7b40d719c1"),
		},
		expected: decodeHexString(c, "0ea605fd73ca3dda32efe99b30e184973203b7a28479ef5a2b1375ef39726ed6cb8a6887710cb4d541aaef9646aec911d16606d2fbb2fb4e6e8a215f6ca5d251254b4ee5742093a5578ac74c80682f2dedd53df2c067e41052a59f84740c3a13f10472bb41d638bbc509db62d143791c2b09ee9161ff1021eb6b90c0ecb426c2"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_13(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2101469bd69c6d5bb217ceb621c03c25270d2ca7e8298560810a94893f5ba025"),
		nonce:           decodeHexString(c, "15bef90fd6ca8fa00a8ff1cb1e75f40c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d464d49a2d426d9321fe48bac2774764dec2228cfa1e9f883af39e1f06a579e"),
			decodeHexString(c, "1462a06143d7ad6bb0f9e1c1d7c00dcca212e4f5dabd795e57881b26b5cfaeec"),
		},
		expected: decodeHexString(c, "50b5eaf20eb7520572b214f4ff875a602e5a343ce69d0d73fe9b35d5ed43b9b9290b5f8319d1f753855c7d4cf97605862f7e3d33ea1caeb974d93ddbc93eb28664014caa87454d5773fe525f97cd29bd92fd273fbc1449340ff3e5a0fa752ddb56cdeb5221f61b35ea45cf4bfc5308f774dbb87c992e3618d3342fd2364b4912"),
	})
}

func (s *drbgSuite) TestHashGenerate33_SHA256_14(c *C) {
	s.testHashGenerate33_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "0238890e5ac9ff931824bd6d660dac9979b25df92702790308b124d40d60db64"),
		nonce:           decodeHexString(c, "b9b5d120774c962d946bd57615c92700"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "626385595bef7103af0af700e1df048d7572286af709289b7894d2ab09ca8608"),
			decodeHexString(c, "bfe8946dbf27d3a2127ec600351c3920d2531eb9419408233e0a888059b5eb68"),
		},
		expected: decodeHexString(c, "ee6d07661828213e6453d94faaf76345c70949eca4965714c350313b0bcd8e079e6a07f8b2f7a91bcb7ef39a61568fd1c40ab78f154b3582f830095d571de29f81f9565e46b560d34c32bff55341a991f8e863bd9242c7cdd366be12538bb6922f1abfa19e7998aac61d465fc46538ee9142acc66786f4516ef4105fe1d80372"),
	})
}

func (s *drbgSuite) testHashGenerate35_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate35_SHA256_0(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "68c43a008fe46a823d260a9d7fa388fb9e401f0197e7e758a744b4babb3f4651"),
		nonce:           decodeHexString(c, "eb6825777856331884aaf3751b3e4006"),
		personalization: decodeHexString(c, "23ce0d32cbf2d26467f0d62acff1a3acbaa6d2746dc3ee7aa9d32c880788afc8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a31b9f13b58d4fa2f8d8ac42b62a207ff647339a146bd8b268b33d4aff57adbd"),
			decodeHexString(c, "d34fc6504eca4b568193c75357b0d3821a48c77ff80d6dbd21c6cf045ff489cf"),
		},
		expected: decodeHexString(c, "abb4ecbacd4e8fa943c7221aed433861c3b203232657ec4c417d021f905d911db1058ff1e11e272232482ec96bae7cb4efc135502dbe41724077077f6de79b713670c385d04644e1281c3e582e0016255abbe5f8c06d0de57160559f0c08f7fb5be3563c649966190f8d3261364447537de2c7371c6e8c308933d27145bf90ab"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_1(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "69ed82a9c57bbfe51d2fcb7ad3507d96b4b92b50775127743374baf130df8edf"),
		nonce:           decodeHexString(c, "871d87bc96b2c3a7ed605e614e51291a"),
		personalization: decodeHexString(c, "74a6e008f927ee1d6e3c282087ddd7543147784be56da373a965b110c1dc777c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74d36ddae8d6865f6301fdf27d06296d94d166f0d272674e77c53d9e03e3a578"),
			decodeHexString(c, "f6b63df07c2604c58bcd3e6a9f9c3a2edb4787e58e005e2b747fa6f680cd9b21"),
		},
		expected: decodeHexString(c, "a571243111fe13e1a82412fb37a127a5ab77a19fae8faf1393f7538591b61babd46beab6efda4c906eef5fdee1c71036d567bd14b689210cc9926564d0f323e07fd1e875c28506eacac0cb792d2982fcaa9ac6957edc8865baec0e1687eca39ed88c80ab3a64e0cb0e4598dd7c6c6c261113c8cea947a60657a266bb2d7ff3c1"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_2(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f2e0bf10cb9e688ecc98aedac6a894b0e68808c1ab424f772b3c74e92401a36e"),
		nonce:           decodeHexString(c, "c8f6ca4258729201fc9a7bcd8ccc6691"),
		personalization: decodeHexString(c, "43db83d12fb72b50d0f46aa8233aa7c15df0510dfafb7bbe9f05a6a6c8cf4d4a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "be5e3c8da18585d0924a74f548164147d6d1b08e97e395fb1857add58e23a417"),
			decodeHexString(c, "8ee379a80c68e6d3b6b45958a6f95bd9956c7c07dc7a4c89a2379202999860c2"),
		},
		expected: decodeHexString(c, "34dc1c639cb823a36011654fc313b0d2c241fb11901f36eb388794b8aec61b64bd53362ab85a041b6480118459a4474851929d42fa1f62c4ed8ca8c43faade7d0f4c4738fffcb265d8e362d8598366261894db33dbda5636192b374291f0026f93c2f8f025e9df69d68c54a31861b88351aa1e5420f1d5a799dfcbbb291174a6"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_3(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7d84ff603d8a8bcffe884381b729ee0b434595794922511f77bbf5a843d98549"),
		nonce:           decodeHexString(c, "006e929a53ee5fc650e48568d484fb3a"),
		personalization: decodeHexString(c, "9fbfe65a75785f7d1284f84c565354b764a6148b156fa8a327be5398d9d0c974"),
		additionalInput: [2][]byte{
			decodeHexString(c, "612152ed93c4429d722a44d35a09ea8fc722c39b1e8af9081f37243f44303067"),
			decodeHexString(c, "829fbd42761ddba851ba02f6abb7bf8878422993685dae5bfd00f2c2929fe227"),
		},
		expected: decodeHexString(c, "abd6c6c163946d7239d58af9629a830ac6ebd952d506c45fd75cff8515cda1781b58ef48d54e77c33c2d979f00553a3d0c2cb1801b4b1f6e777ba568fc4fab40a19c56b1dc77f34a032c8ccac896d99297a8bd1a93736428cac23292f2f759a9897aab5eaa233d961235f34b30e632303d502a63455de5448172c3d1cf252103"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_4(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "dea24d19bd79e90cdc97d34952e6956ae37d5f7b3ec14821101e82e5ebdd4e07"),
		nonce:           decodeHexString(c, "95df8697d4f8755bf60c7af5d5ae4a86"),
		personalization: decodeHexString(c, "6dab966662ed761b37f15efe3387c62ace3446295322de138757c706ac058d95"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a4a6d21a4800d5464a04fa10da71aa0c02c52a88ac531ebbad9a4d4b5a63185"),
			decodeHexString(c, "b6b2fb182c43a903713b907cffca85af04abcfa35fb0fa4ab66852a02ea3c311"),
		},
		expected: decodeHexString(c, "14b83b155ed9cfcfdcf18eb96761a205cc63308e2f0c068e63b066a8085bd6936cbb8d5ba14d8973061372a5909f46ecddcf91b913b07b232e29914fed4d77f706d805fc36fbc665135ab3586024ed9390290d8999898b98b2cc0aa488561b587948c0fba9683d910e27720acf5a2f45d47894dd7fb2e93e9b0db54da736f2a0"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_5(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4444ff211d265c17282c9fc6f2764280b9b5b4ea1858130389c403336aadfe14"),
		nonce:           decodeHexString(c, "193a1cce77e54299a3e878033d088f0b"),
		personalization: decodeHexString(c, "3dab537625e6407e9951efc7b973b1ff59ec4aaeb0c6e2b824a29f7ae8f8bc75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a0695732cd80a797f47e976c7cd4ce16d8b5251caa760c05b8d8af708af1a694"),
			decodeHexString(c, "19f17b170270f3a4cabad1618f0450cacb42917cf4d1419217a6574ff186a8d2"),
		},
		expected: decodeHexString(c, "fbf2936012c8699bdfdb961e97b745303324bd5bf97f6c682aa2f4fea30771dc1bda81c3a2612ec58bc56198ad7f6a7304a41b94061c62fb3299321524ecf552fbf23efdeb6ec99301cf52b830f515e8f9227f91da667ce3238a694c8fe4def4bda51e996d57734f24a7c699c59ccae867482e49aeeca6255d72e7f09a12f8be"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_6(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "aeba3ed174c711b74e0213f49c02c0d1510372ca489d8628e1a55c646b2ee14f"),
		nonce:           decodeHexString(c, "6c884ad3662aba1fd335e94d1ec7b979"),
		personalization: decodeHexString(c, "f781d9d51f77dda624a76ea73c0f9e23b8be8db4455672e3c1baa07823c04ba1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d97ace9bea303472991913238745401790df08a586865e83fccdf052ac5fae0"),
			decodeHexString(c, "2ed263134f95d83c4e18088b4b1ec2cb785f563b075b6992fa7e143769a821ad"),
		},
		expected: decodeHexString(c, "3d8476a01b2ecfd01dea948d6237e1fcd7c918369b541e96fbb23b0254cceaebd90a459ae5bbb74823aa2ee5a5e1748aae604d29cfb65631f5fd405dfd66bbf76a5759afc2b13c1ca878772c1681a561e5f5a5f70a87070b4411712b4983ca8d5a68a37400d33e98e7f65af28a92385239f04e8ce43c3ce65ad234d43e331254"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_7(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a83a6346373b2f957b40a7b39f061b02fb07fac1d8096fa2cff752dd7380656a"),
		nonce:           decodeHexString(c, "4ced16a1ffd25b6d940b2b66dba5d1ff"),
		personalization: decodeHexString(c, "94e53cd05418f8f9e0bd36462bd935e6a4330c6bdcaf4a63630186c8fe7a63ca"),
		additionalInput: [2][]byte{
			decodeHexString(c, "61fe3257d38cb5fc1cc6f8d0c19bee3fe04a141ccabdfb64f005ed396a41d682"),
			decodeHexString(c, "e5f28fc44f462d4e704d6c07f9c7724dba3ed3205affac7a98365af4241bbe57"),
		},
		expected: decodeHexString(c, "a5bcd00ea1370743c858cc94c9f00f65229852e48df544295b2eb1e41a721f932038755e4761defe890702569c2af3ed889024cb6bae8fc056e866b73462a09797b58bc2d94bee0f0a23114946057c831f6f3b860c6b150df8f730449fbfa5b5a783796dd907926227759a4161f96ec06bd3dcd29d19c184309c6a4ac29aad4f"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_8(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c213db4e1bcf76ca0065fa2ddb46ba1b6e57965f06be127b38d1c4b4a8d7f56a"),
		nonce:           decodeHexString(c, "b0f4151fc917433839cd65b761a98c87"),
		personalization: decodeHexString(c, "dbcc5c472c52a98aff1eae55916c2d6116eb3387fcdecf2cb14840601ca09f8c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8c66edf70a4e0255d6ffe97eaf58e58b8c49ca36541c6d6fbb6f5eb49ae0b2f"),
			decodeHexString(c, "d1f6dd9b2d8f831e8a16dddf1cbd16bf82aab1183d690ce74c5a2a167ee90c0c"),
		},
		expected: decodeHexString(c, "0a1da67b92e1df34109c9177261434fb628d34c82019f62570818c842a1b120a738f645f06889073116fda460760174be18b66566db049a06489a52d1d51881808bd338af6610dc685ca1ffe6e867bfa921de3523d7671821b59c0ae62dea7d79f31dde0ffe7f33707b1fb11e336f25cf437597744a9ebfb6df5dd795f7397b7"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_9(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "21a044e313428b929b65a998f54620e6ca26015a6110c81f530b00af0fc95287"),
		nonce:           decodeHexString(c, "aabadc55cda3dcbc11bf2abd873f07c9"),
		personalization: decodeHexString(c, "b797d26284ed7c8ae00deb200933e45c398de596fdc74750cc4acfdb3f12bb0c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2cc66c78657bfee4972d3a305cb18e0b9bb88f9efbeb0dc9d3cf278af0a90403"),
			decodeHexString(c, "f09df1f2ab01d8ec547fc493bc5b6cd20ad4335881ff5f7fb4a5b2ab5697a946"),
		},
		expected: decodeHexString(c, "453873968e964ac0822b3f64c5badab507d037b9a66fbd0bcf830518711d93a425aa618b25971888e693180edc41306ad88f9adb0a0cde019d5c2c04ffbfb33bc7b03bddc4ff6829232fc27308c3f543fa8ece805d30b0d7e629e7e19ba7d4aa4e6c2b8fb7190918239afc6d5de1b088aa4a9a4f74c3092bcff4174f5ed46b81"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_10(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "40555cabd1d8990d9e4f082bfd6b511a9b0eff43405e82e794e512f21e37ebcd"),
		nonce:           decodeHexString(c, "822d4f55c5a11496e882a104f0a405ab"),
		personalization: decodeHexString(c, "c296d39ef5e09d2572522dfcb0f877bee7eb3d5144a761c597e9dd9036e5c27e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c621a48d502af2d475757dfca86fbdf0cdd5285beb99bfa3c7ae5682ad595413"),
			decodeHexString(c, "9eacd5708ccaa65b3e8f3cfdeb2ce7cdb5523545fffb2a373a760212c7d48b01"),
		},
		expected: decodeHexString(c, "4530deb1de06b127aef059bec9445cd4399e8ff1919ec4b6e42b807d68441e7c7d5518e53ec0afe4cab6df6103b99a3a6bb2b23b40bf0d826cb99e4cdbadd3b8f94266753103572b192adc4e8fc64b41ed5e8c81a9c9d02b38e9bb42676c74e4c1b7dd403b67395187b5c0041355f168e8ad2c604fa5d195c5716be43bf69668"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_11(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "57f18d806b5fd33b3ed7184d3760f5e5a1157495fae2cd94832e1c17c1a1b249"),
		nonce:           decodeHexString(c, "c45022394c32b2eb630a3ed07439e6d0"),
		personalization: decodeHexString(c, "523fb8c335fee7b217dd729ee37c3cf6db2e25354763ec6d49027c1f4a3f5de1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "67450c806290fcfc0a54541c2467d3856fe819a86ad12c0750878228b3bbc8d0"),
			decodeHexString(c, "1d28c847c3e68667394b9104ebe83eb840c07edeec94dbc485676bfd534af985"),
		},
		expected: decodeHexString(c, "9f3fff4be1b601b4636a3d15bdba81088781fe389c49bfb33ddfada0acc11490d707513107353496f63250e5d288b7961ad1320fa8ceb0493c2839f987a7b1118e65a77e8a3813d2be19395951a24c7b6f74e8a82436814db0dfa02b22dfc7e7d4b4568f3faeba4dffef5055a6010c50a878fad0485956f350762f2897725eef"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_12(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "99325d0905ace7ad3ae6c8edb8a634f82ea240c5603207943d7b2b2a0c5e4b78"),
		nonce:           decodeHexString(c, "d3093e34b298c00a24698b808cd0bd4c"),
		personalization: decodeHexString(c, "d5292bda059675853fe99c506611f5cc6a050b2568f1d96b0878859a86b7e94a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d270cffe63788a0d48007ff04420d09c630f5af89d4b9a50598b0909de06559"),
			decodeHexString(c, "5994aa92dda4498cfc2382987bb4989b4e80b96882fd9c8a56f62a7ebe91968f"),
		},
		expected: decodeHexString(c, "ddb71dfb398a9a35310a993420d82e1dbcf8ff4a5dbadcd9f70aefaa0ae576ee5a383d7c8a118c1d89268a730684a87531da5d732730b3700764589450fb4b1ddaaa31537e47748e28c69bf53beb6b2e66cfc8af1636c439971299c6a771f4b126aa1508adf8e2f6e0abb24a01adf9b1ddce28e838f8e93c977003ccccea67d5"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_13(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "21f48333f24396f8e84a408fd3a0c396d1ddb6e99e29ddc000b3b8b9879bda19"),
		nonce:           decodeHexString(c, "a86258317db03497bd588f6726611667"),
		personalization: decodeHexString(c, "634b5d47bd8ffd18a07ada3d63d9ed2713bf8d330e2c17879ba51c4862c46ad4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "efdd4c50cc73ff5553c9c385325c79e27ecbffc7f96ac69d5a75d772a0be0fe2"),
			decodeHexString(c, "ebe0256bc9c42914df8c2be8bcd43b7b7c10ac28f27fd89880600f7fadae88d5"),
		},
		expected: decodeHexString(c, "bdf7581e00f22d104602b2b61240de26b97af058cd143b6919c334f2d095e2a2aa6a75670a849a156f41f7791b70d762b57f921db42ac0527165f4569b7d17a9647c1123cd8edccfaede16a40f311fb421387ebfe9a5725ea82b2f1dcc88ef886b5db0c54ba6b2213671c69070a4dd6f9b27e4cc115cb7dee935f1f481b02f70"),
	})
}

func (s *drbgSuite) TestHashGenerate35_SHA256_14(c *C) {
	s.testHashGenerate35_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2576827a528dfd324252be2a1da179bd64f1779fe56713a45b576053351b96c0"),
		nonce:           decodeHexString(c, "31a04c75f5ea01779d6b96e461fef171"),
		personalization: decodeHexString(c, "98e288b1da6983d32a11d24fd4ac447cca253d069e2388d6894054274badb783"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d9446eff72d59529a90b498d8f40983b3b2904f63664fc0aa1de8700dcbf81f"),
			decodeHexString(c, "e19707aafa391e8622539d52a05d930292bd0f7c17825dbed5fb7a2f8734081b"),
		},
		expected: decodeHexString(c, "6ce2ae37349cbef9ebd1f9b85485810a22d430d94abf66912dd7b6cc751400e777be2f1cebc19d65694a456b2c6429cefd95eb934030846708d50be3b274c2f7de299f3c311038491f271448c7d02ff51de048fa1184e8ee06b7b46a9f123daecbebae4a2183dc8eb6976abf0dae7cdbea6017cd1500f37dfadcce0c1956ea87"),
	})
}

func (s *drbgSuite) testHashGenerate37_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate37_SHA256_0(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "63aeb1416480639ecd17cb6ceec14cc78b3660b48e028bef7d1bf2941ba088d1"),
		nonce:           decodeHexString(c, "068cb2383db7997a69f5e0b30a09e402"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "35ad8aaa5845bfa226659044ca9abf6cbe02abf03df7b897f4ecfe70821e66e6"),
			decodeHexString(c, "4d4065a69b30be27febcc97fd5299bbbab34fbe48e1cf392561c0a3ef9852f1f"),
		},
		expected: decodeHexString(c, "bd325ad3673c1d9530692c4454e0f66ff6a767f7b198e17c6f00e92a073e023745fe9cad7d7eb3bda115ff7c11517475e933f8dba00282c3b0d62a3831033bfc123f8370d21b08ea21e33566ab3e6f3f0111fdb9b4db8f7a0617fa7c803e776d97830c911f3483c2c55700d1f71c21e03f563394208b2a03508c5e9103c93c4e"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_1(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "734ceb9a6f45a559c05cc1ab095c4f561fb2ad0ce25999016c5e8874dbad72ab"),
		nonce:           decodeHexString(c, "647b6d99ede2c06b3a1a1c8ea280856b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e45a22c77574ec407f3dcc31b60124b87cc3b78407a0c0dd25f25c5387e9deb1"),
			decodeHexString(c, "6603bbe82700d219137f64a6ccf165f169dfd6508a33cd23a08201cfcf20ade8"),
		},
		expected: decodeHexString(c, "634ffb5ad2fabd33da3910b8b7a748cfbd91c29704fae6bd85bc4d73f01165c1af97393257efe33d326673a26a7a448e725b4ec17ea63b260df6968e6431c98e3a72df8b1e64eed0ae04adcd8c4d817d2ad363ad47407891e962ed2fc0a4f3aab7c222197859a791c3d3453e5884563cf74b771e8cab0560c88de34179989e5c"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_2(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e2e0e3cb832263fa1bb2e95dc7bcd371dc6f2aab8abc493c95f402ce2cee6656"),
		nonce:           decodeHexString(c, "60e767ea37623a30133c0ce7549e6d12"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f641397d38cde556f4dc902707ab44c65b4c0590c1367adee548ab2d87c45865"),
			decodeHexString(c, "6d2e2b9496d966f7fcba0cec8475c1dd58379cadb326e84c2925cb536ca543e2"),
		},
		expected: decodeHexString(c, "d58ed53651d081c8c56ddfd6265956e954af3a43c7d0c17926335dff7a0ceec231a5a9251ec7ace919f9d5584439b007424d2adf67664582722dcdec60ab67601f780a1cc4952ecf00477cd93eaddf94bddd0feb3f60786d2e4eeaeec91975897b0517d78a1497ad614abc0bf88b3e856b4e07fba8de5871f79f8a212c3c911c"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_3(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3e4312079b57f5161781ed08a5d7e5a373b89c848807fcddd95391ed67c332bb"),
		nonce:           decodeHexString(c, "823bd17bc73e233cbd61bd06f27c850e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd001f6a383003d56ae28def7dc9b6d9f0a0636f3f0044ff6cd31e4568cb8d40"),
			decodeHexString(c, "92f25bdfbb8dbee577000edf6af0e107182c815aeb95ba1d76e87ee57130a908"),
		},
		expected: decodeHexString(c, "e4f46e23f87c1160e066bf68968856b7da50029445ec56b6057d2fb99ea58d8a13129c54f45c60b3e4390e52cdc301b4fde169971034f56b4ceae8d4b4f32f5a45e75b7650cf2f53118ab0494720320fa0a39af585523feb45019890fa30507806b868f04f3be1722c44b0d8a5b1de558bec795de71a8534a84f0592ef68d7b0"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_4(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5b59736e2ff2fecac4e3fe6ca38c1d156cdb1e436b684eff3b18ee3adf6b1863"),
		nonce:           decodeHexString(c, "0ea312ff6e274cfa87eb65550342ccca"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "61dad6d9c004dcabe17f434ea6dcb2ee9042b3f7a2418016a6eeffb2742a170b"),
			decodeHexString(c, "633ed383277b3fd3a87a33229b7b8b6d9f309e2812e92cd21ef406e000bb7597"),
		},
		expected: decodeHexString(c, "8554e104170c5a24b0c6befbda4abd4832f449433dbc597fbea375d887aa968cd44611103842c84f427878bda0aa13b0802a6b062d3900c7a1e56c113fd0d7627036708436191bcbcae76bea72fba68d912a5e365fe00a7d0a49f3fa282f12da7534233a25eb148ef270cb8a6256090a633d90e90739ba81f21dbe513e0eab45"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_5(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bef87a4bca98a155ccb67988ebc885aa56489fd074d13f517a17cecd8cb04cb7"),
		nonce:           decodeHexString(c, "3f81624d79b7f0cc4b69c5fd3663474d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "06f0ef0c8635be4d159a17415699d36ff082a9c469ed566241bb2aa5de01ac8d"),
			decodeHexString(c, "4650561c2130ade440e3ac3301b295ee58e89501e19989a6dd76ce4951d1b1f7"),
		},
		expected: decodeHexString(c, "4b13b45a6b3bbb76724f8b04495e96a07fd31b9815f85d25666d9f8200fecc29a5e63c58af7e157a1eaf31537eb043de493487299711ffe5ceb26b2e3d76dded3f71240b36068ff7513ab39989f7bdf04b0aa589a91bb62b0acf240e92c2a680b25b207bed4ac1f348a893e262bcf469b01c72436e72394a1ba809638573d5a8"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_6(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "159e8f04a0b5bfc54b95dc2dc95d06fb329db7ff1a7263e549796ccd5534b2c2"),
		nonce:           decodeHexString(c, "515911b912cbbbf8f152e9625b49061c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb4045faaa85bd0981c5c1a4f51163d5523efe3e1e6e821e82a71eef515f80e1"),
			decodeHexString(c, "3ce43a880c49bae46419212dea9e0c807b9b8ca216643d8899aee8a850541c7c"),
		},
		expected: decodeHexString(c, "37a3cd5b60ea5bcdb39ef1f3b4b595ec0c609aad55e27053dee44aea6ae42f1ee5de247eb0324307848d988f6d042b9e7dce2db732be28b172202e82303543f52698cd164b2314a0dfdf032695b8dd98c83532ee104749308506ee8938a0fb316cbaf2c337fa581c951558143caa9ebf094d973c7ea774e11e8bda9a36e749e5"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_7(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5457daab7b5a0254a1700359e45b093972242c967c76696b2019df59b5b209b4"),
		nonce:           decodeHexString(c, "3e579bec2c1b263d010e51b7a92c3079"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e0cbdbb2fa88963ce02fc8d585a08926c7bebc803f1ceec4fc1604ce01bbf530"),
			decodeHexString(c, "1920881620aa877047bba5850dce86a17c4b0ab2dee5904922b4ac5ba4973e87"),
		},
		expected: decodeHexString(c, "ba062bebc757ddb62c5f21d262c44417ec834dba37e81f33ec755de184f73d7f922c6ab378cff9ea412c5c0bd003ccc280299860bff326d2d47996914d1751b4379a43b6891ca578034d5ce5c726f2a6bb6401de67b26f465ef8a9de0c15d5d861742e48bbcd22df2bce14c6b831040633dc8437b9b6a317431ff412eb689483"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_8(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2f53d66ab1acf5f53d845c0adce99707e2f9819847ce07bc303dfa5eddc83de0"),
		nonce:           decodeHexString(c, "4a512b024a947cd5b5ec13da59f08881"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "47030202d5078bc2e99a8c48ca835bb41393db3cca68310f58d63c8e26beb5e3"),
			decodeHexString(c, "2774c7b6e2ae784fbe756e067d59d5a493d9983a10704b6a6ab938b6d4a2e390"),
		},
		expected: decodeHexString(c, "e2d647dcf1af9bcb59a3dc9a9b94c7b0f1d7635db0af00263b2b545359ec445d1c6a1d5e968b7be9cbdfada681bfc442f65392805949b49d8b9d1d90f710abd15891e2f9863569f7654d9205466accad45dbb2a08fbd9e449bb1ce3ecf3fb214106e651582a5d7ff80fa9fe4635b79ce6b33688fe26f161d2441ae0a41996fd3"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_9(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ffff1bcf83a3e162ad10ac026caeedbf5438db6932bc0d0aea62c919cb98d289"),
		nonce:           decodeHexString(c, "2d54df18a916e1b118a8f0da749b4c42"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d26a700d5ccc8618504f59c0bd100515f6036fb34926a5d0f0c226f2cf9795ba"),
			decodeHexString(c, "787e1f5b8ddd6bed24dbb7508ec3a92110eaad45d883e546ee46c62bc0cf9888"),
		},
		expected: decodeHexString(c, "9d941f943a3aa0ccc342b134e6f5914c76b2b21a589280639cae9bd52c7919120d9c74b5df9b99bebbe63ff8b0d6b20664c3eb00523dacb90968bbf0bc5b6a9ed53e024a97c63499a7a73c1b509975beda5a3528663071d6c97a45ef796f187aa8d83c41ce7e5d687a25ced9818d31b2103a72bf6404eea253b2342ccd193218"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_10(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "524650bcf012792ca955ec312001ff8d453af7e556984bcc44707d5577641b0d"),
		nonce:           decodeHexString(c, "30f93f55a89806747171bfb2d4da347b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae68e720e75337ef6b2eb086f3dde3dabb854992091d44d2e5f414cba6d8b0b3"),
			decodeHexString(c, "0e0f9371007aee353a9f2324b43578fdc4324ad0241b63400e03460d66eb0cdc"),
		},
		expected: decodeHexString(c, "862a9f86597a1a930f317de9415088087763de830009b4b30695aa58b04b46db17c1cc816ef5c70437e0d925a52139ea483cd7d0b2119454be5abeac9565150858ac5504a9d3b49ad7085f720944a704f000e26bffbd7ac09b15e9aa2eecf56003d452bf832c032e77584d99043322016e2f4fd9e3db61a74318821ead14a132"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_11(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4d0f84bfc6f3c7a8ac3dbe37f599309f6df1380cfd70b6accfd28290142a8a6c"),
		nonce:           decodeHexString(c, "c335a2858b0db8d12c2545234180c0da"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "324a329c2df9cc02117f05cfd8e8943300fdbbccff400a2b8acbc3565232ae12"),
			decodeHexString(c, "937e2c9c139d9a79a3e1b573ecdcb51ccba3ecf1ca56047067646a19345ed883"),
		},
		expected: decodeHexString(c, "79e2595ed3b0e146e7dc750e4b8c4747560b715708a7d4d254f92cff581e70a5a9caa897b9317357e27ed7d4901a3974951d88024560e1c2f2bcb8a3b407ebdae8d149afd4958b941eaf1a0456856c2fd7cdd89d4e556633dab095e089441dc46cf0df676908b04fbc450957fb91e2b005fd3529a2b82cacbbf129e7ca573564"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_12(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a2aea6ee39285bd1aa410c1a4d019cbb91e408c5c597c0de88f780b543660069"),
		nonce:           decodeHexString(c, "8f77489159b279b406c5a3ce7b0cccfd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1342c6aa402b4f1d3ae7e51a86ed3ca72738e1ff6874ca58548162023096303"),
			decodeHexString(c, "d77efe99511bb301506a34e69bf726eba4f1aaddbf87d1af2fc55ebac73f45f9"),
		},
		expected: decodeHexString(c, "238dee65f3e1a111a5b9030d1fbf2b900b632d2e3e28684a1352978b2939bf863d2e5091dbced8297234bb8f49e59e34b3bf38b4f3f2b2f61bb5989bc1e0f425857d684a843286fc8c302976f2f237c01c3794a10ef786fb7649f0a0aab523cfdb8de755ab4f4a397ce541cd718dd3fe10db428b00d3acdcb80b0c1cb17c7c88"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_13(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a18c44693042f527c948315e2be58edf552727cf44aefe76debef2c83d19950e"),
		nonce:           decodeHexString(c, "4c6c6903a482457a7bb5be08a4727de9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1886624786e1a2cde983ec9286f0f3999b55d778257436393d19cc25abbd14ed"),
			decodeHexString(c, "ff4c7080453d152a36b1284a8eb1854dff5f29f277f36a9ea8169b0282091a65"),
		},
		expected: decodeHexString(c, "c00f3b2d3e62b2f7fb082ea4e074980931a4abd84970842474da319b496aa2f6568b4bf1616ceab1de1469434b528f2d621a29052dcb92e9537ea266a9a41c52141ca6a16734f592cf99dd4ff652a8f0800927b9632d01bda8e02544ed978ff6dac3034116d787e54bd58a9a653459b14d9c27966886097fe925141f3b188f4f"),
	})
}

func (s *drbgSuite) TestHashGenerate37_SHA256_14(c *C) {
	s.testHashGenerate37_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "23e264d1c47ef7670a3f95f4b17d8ffa06fdfaafdbc5190e75c55debd6cf805a"),
		nonce:           decodeHexString(c, "71fcf2bad21c4f472d1d50521372de2a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "de1bbca12357943b4489cc7209b3f063b51b91acc168ec5e0ad88048b65d1b06"),
			decodeHexString(c, "6ddd9aba4f100ef902ba50adee53ef44a4f45564c13e774e69557e36a357e7cf"),
		},
		expected: decodeHexString(c, "544ec80a966644454886fb97a0f05eb6a4a25fcbce795b5e5b27ee06ba14b7de18dbf54f80a670b87c76c336ac9af16c8958ad6c1bde9a97aa4c1ab5823d24a53c64f6766ce6eb9b7085cf7282499c37fc1e2e825f53bc357bf36d5901e0ae93cd3bd821fa18b5aa17548560f7ad6ef38124814fccf9b2b89de61cfc27c7269b"),
	})
}

func (s *drbgSuite) testHashGenerate39_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate39_SHA256_0(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bf4dab346966f86b5163b0f2afc02998549f4f4210b5191a2d27400da12686d5"),
		nonce:           decodeHexString(c, "328531648f5ce509bc011f65f76270ca"),
		personalization: decodeHexString(c, "d6b55b157655a82d9afcef78ca2201388ea1793012007feb778959b8731325a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a12e7e89437b5a7db04934a84a2d8d678c836d5a2b8a990a69831829a71a677d"),
			decodeHexString(c, "be03bad20228f7cd4003e902cd9ebbad3161fd264372aa69b16b662ff9d66f51"),
		},
		expected: decodeHexString(c, "44c05784091d0407dbec91a9d0439fdae627eda462a775e4074a80bcf33fa7cca1d2942d1dab232aaf5b83070c83009f4e6291876cdb7a28777f8cbfd305367c5e93455e8b9ed520f48d35dcb28c5f15df8dcd168dbcb963f9e9f8451117206a2b775cf1f00e4480b85e60f9158ce6bf6fdfb0a21879e8b83d4b371fef1bda67"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_1(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4681c3fc821372f81b7e450fdd4df1454d1cd607430406dc62f310dcb808d2c9"),
		nonce:           decodeHexString(c, "95551c07a7bb908caae996f5315afd98"),
		personalization: decodeHexString(c, "bb9f353d9c286f07fbd21c9e5880b5d2fd6d704dd78ac98fd7eae231cfbbb49e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8a41773b12d07115e1ed177ab6048c6505ced1d763bafc3665201af79a5dcacc"),
			decodeHexString(c, "f7158a12bff554b1a517d92cfa5f6f6ce7a5e60a14a059ec1f91c6dc5a17d6fc"),
		},
		expected: decodeHexString(c, "077f92e9c43e1db80af239ac32ace4ea1151a29d50fd24512ca82fef323abcfcdde436bfcd4f9c16b6d290982d92481ab2666abc96a380a8bd29eaa5fbd88cc230772a75220bf8962c9b49e129b677018f859ca5af234d47e6c5ac69f410438d6e6c87d8587f3421f6458ec3b4ed693744ae63a189d0f6e309025580e7910793"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_2(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "aef83ba870cc3cd21caba2f67b37e7baff19588a012844d84eaa0ccc4bf1484a"),
		nonce:           decodeHexString(c, "1f669e6a3e1820065aa55a7ec6132f88"),
		personalization: decodeHexString(c, "31eb4cef3c6087600b0e248769440b003bc3250611a90b228797eaf4420464bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2129382690e63c03cdf6a08d51271d823e1964c3720bda5716847a0a0f750169"),
			decodeHexString(c, "127053dc46722a42d7d333691ae9aa6edaf3acd0e1546d414f4b11e3dd70080c"),
		},
		expected: decodeHexString(c, "5400017c4f7ee8067b328d575c84807c9c597cb1c9211c1655c9b4d2c0f0bd7b688ee8b3f6b26db138f7175f382f28821cba9fc383d7949585bf3ac00412c53a03cbe2fd4868353b83d409dd2149e372b2102c3ce4f6f083946af834eb09d9ead0af65e2f32569bde1d476765a3325ceb1c26128f08e931f73cd6efc49396a33"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_3(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1457b500bf68716f376c804bf42b2db445763efb6d58fca870e299683dfca095"),
		nonce:           decodeHexString(c, "987e1d205b40b5f3bb43cfbcea1ee19f"),
		personalization: decodeHexString(c, "7552ae50ade95bfc7226cb9f890ffacfbe8edd5db2d717c26b14e92414a2789f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "80d6c93068ca7d1623aa88e0ecccb140c578b4578b72805dfdf4dd6ea4f96ee2"),
			decodeHexString(c, "ffca4be8e551d5635d52b7cb1161c214275daa27c49135f9f6c5015049e88f97"),
		},
		expected: decodeHexString(c, "33d161d75d7555ce16446264e2f424f15750eae0060e123362bd15a69608ab82e3c9b269737e74c864b40c9afb052ac756f75356bc4a648d4ed1ee4365f82389981fccded063029e1a60a763bc0a0b748d02eff0fe0581c7f795b0df67631ddede8ba240b97ebacb99a6f1baf500552a467c1cc9b01e4e9a71ce4c914a7222bf"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_4(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "eacd2f167c5402a308c1c282678dd2d46b92497dbacedde6a0f700ae5a5d2be4"),
		nonce:           decodeHexString(c, "480cf5dfd1749fb9611ae1f1c46a2d86"),
		personalization: decodeHexString(c, "87684df9b557496b22130c57fd82bcfca30b0eca281911027971cad60e913590"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6642da6d01d7134dd14ae87ef27e613bcd5b0440cf903a58bcc99411f02692b1"),
			decodeHexString(c, "1ba71824d224fb3a81bdf43f516e6e070473c5a305706fb648f113fc1c5ae0e3"),
		},
		expected: decodeHexString(c, "fb1627b50e153a752fdf09bebff3d180a1705c99d9ea7cf35a6a466d06571919ad2ad598f6a9cdd482bc28f8b5e4cd2f6adf5027f42eb2c4fadbfb9aa9e7c77690ffe04335b53911733b40a86d51f520301ece0e88b38c08e6110214c5130aa23638acb3913afaeece5bdb347e05c83649d8f7597ff3cdd3617738b112e33b59"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_5(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "5a95b90f0a12a9709862f0b5b62df3321739ed2ced7f7e0ad06f92c0c5b8cf87"),
		nonce:           decodeHexString(c, "955de565bee3b8a798790d6b9b2f99b2"),
		personalization: decodeHexString(c, "4aa1cee36350d5825521a1c01144847e73e16bd1dcf1a424ffaab8e2b3cfb6cc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "168fc301b28761d918f34f0a1fe7340bf39904d153a3dee4ecb232c7959a839f"),
			decodeHexString(c, "d90af4d5aa0ff6f6788cf8eb485ec70d1d396a3d561c5e1783c54d435dacf08d"),
		},
		expected: decodeHexString(c, "ab8f97f616a1be46b75832f9599f6258adc24eda0e6233b99a78140ab06ae68e385762fc564880eca8e3a6e26a1baa829fc380c21301c10b6d0772ef55ffad6a3e0b8ae514bcee33d39f8405fc2520a14f128bffe4fb4e193b617f0e21c3653ad1634febc27465612d853d43f2652c4966f38dc14ff487359f9c920e213100e4"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_6(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1501b2734f2b5a12d037e36c05d70c72b7525cc226b9d0b99a5ed75730b4055c"),
		nonce:           decodeHexString(c, "1e97ad09e8c8ce00643220306e7c2b1a"),
		personalization: decodeHexString(c, "980089fbcf2be84bbedf1f70be0e7e1b759558734864db3b61d36ec8c5bea5d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1cabfbbcf982e634a61bc97c10c65bd66e7914100aff52993ae6523aeeed92a2"),
			decodeHexString(c, "c7569da40ad37cb121132e86bb019f7d8456610fee981491279ed85652ba91f7"),
		},
		expected: decodeHexString(c, "6a6e1b875d116e3440ef1906659c11ff6d25cf11ae9c6f79148357c8164db9ec5845eb9f53b6d85e6cf5632679431debb1ac433cceccf8491167866c30203eb12d9fd51292ab49872a961e27d253439eee0bd8d50ec915809c8e2a9b3a1b205b8593b5e3d809adcd3c29038a4768bbb6fefaae7a69b594f5acde75bcdfbf1a9c"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_7(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8cb5f92d948a3b3733759b1c8c671c38a072a826ad3a421d4c01eb9625178de2"),
		nonce:           decodeHexString(c, "ded2146932ce5bbf623dfc526e9d25dd"),
		personalization: decodeHexString(c, "346e870dfca20293e230edf222b79aa09f88485fa7ff2d76b1e65e26faedbd96"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4aff0273664abbc33da9609439c4c4071f1d19cf743f7e7d87bb3065278dd4ae"),
			decodeHexString(c, "c7fe6180c505612ece7738d0145e6c80723cd5005da952b73e6b14c6241b18d1"),
		},
		expected: decodeHexString(c, "3dd20a98949196c7ff3e68d9c7fa5b1b62a2bd65d12583ec7bed6d19d7d2e6fbd024e30651477ee8dcd5817f27a5fad6c6434862a5117ecd43b0934fec64f9060ed8ba6dcb240470038adf085d69151dc8c207666b2ed8ef7c1bd871039ed02e414f0e8a7ba3ae6a2cc1652689f96a62110ae8a0a45a0d213a89307b282f02a4"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_8(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "9072aeac1f8145cc4935bbab510ebced1380690b125c85142696d923d0576ced"),
		nonce:           decodeHexString(c, "b3d5610767d3847cef3b93cb973944f6"),
		personalization: decodeHexString(c, "f9eb0e7870a8a85a3052ce9d07674a7c77df4203a0fc6dd3ebe5ba397932cc55"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21ee27230c10def9d7124274f4a0d8db2401762e9863d5806107490d1439f82a"),
			decodeHexString(c, "122e466a41db172101ed95267761f8ed4a12774ce7520b9fb2d90bf7558998f9"),
		},
		expected: decodeHexString(c, "9e97fb32a86b6515026c0f7e6b269c1049deeb140d55d184ddea1e34a01fb3432ccc79f0c9acb131e74e8d7c71e4c91b9937669fa0dbc1ee553ad031b2839efe7d112fea1e192ece3f31a4229a247e94b2a5346c0c8ffc4bce6ad8a8729936e72cc42734c56b6cb7356b7beae6d644a7c48f12b1debcb6d686b4049e7e12b07e"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_9(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "fe9ff50ad33173cce2a5ce25f375497d6a5d7c43b2a9caea455b1ffac9135642"),
		nonce:           decodeHexString(c, "8fd27c24fb0a2ab14c2c0ea18ce5e230"),
		personalization: decodeHexString(c, "ce916e34e5f55436c34b1067f8ecb89131c458bc1d49c65e7c677f64a3e77452"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dd006f41ecd84df573375bd0fc8115337282d4b2999416324e8f3e4ef92a96b3"),
			decodeHexString(c, "56d7491938ff04a76957b2bf373c89803f82b5b6ac96c049c3dcd3d21926f722"),
		},
		expected: decodeHexString(c, "441738781a055916e0df8bab44206da6646d1fa61a3bf5279ab78258ba2faa6aded2aea37b9627ab2ccc3a45ed52fd2653344854356e80ec4a22d7ff650c1a3ca9bab1da1cd198a5fbb5590cd525031989c4eefb19aa93c699b4ed8de7d6c1a57d7039438b970c1da6726044cb18f232375f22f7d4f94291b378b43c8e32d59a"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_10(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "2a5cdad2a51bc22eb42541524e63d047147c2b9999cd5bc588d976b033a49cf8"),
		nonce:           decodeHexString(c, "b5b89b35470ffa02980da08b1474ef10"),
		personalization: decodeHexString(c, "5b99bb7bce03b2d301f9287268a2a7a8d1925d783dc895e71bfd525650db12de"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95f30b42c8459b3fffaff9654cddec1ca7178047647884d601eabf5e0fa1913f"),
			decodeHexString(c, "2cac6c504b2276ae297bb9b35925e66148f44c11e4af8af881bbd90978eab9b4"),
		},
		expected: decodeHexString(c, "8729e536e7c8171083140681269ce1546056118f4854c65b6ba132d5023e3513cbd28ed661926dd8aea2de60984a8cbc6e7988e1f0147ec636e77785591d45fa925b9fb619786c7d225713f82aa332f858a0fd55803b9c7f11323efaf2a7ab480e628defecace0135b661106df1799516b2349428a8ff3a611f0c4c936d0aece"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_11(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "604510e4fbafecd10eff25ea275f079a93014c9b177565d011527916b67401cb"),
		nonce:           decodeHexString(c, "d9d1685cd5fed8b234834963d673ccd7"),
		personalization: decodeHexString(c, "5581cc0672f840160517ba3832c280326abb20a02132381ca7ba988a2a75455d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "20bb83e3bf457f06f40ca4e951df626acb3f6a44aa4129616953707bc3a7ce9f"),
			decodeHexString(c, "48b106aaff970622537ae5ddde1437605a11c1a8bc7c01886bef0acdd4fdaafc"),
		},
		expected: decodeHexString(c, "32774e5526e3ebebeccbd372ce2400e591656cccbde5904ca0263e5088ee7044571134cb29b09b6deb222f1ad1980fb60601795507a16f26227aa09f1c56d056825438a05a38c4404e23f42703b007aa2280030bc83fa6fa1cab7ccb1031232e380fa849c56a989563254eed0c3e6f0d4ea28a76f1e91f4b2d34a139f80a6c71"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_12(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "eeb334175126f50ee83446966e73d349cb5a09da9cfd577fa01f424175fa611a"),
		nonce:           decodeHexString(c, "9563c77fc27d1d71eed0df7b8ea1dae1"),
		personalization: decodeHexString(c, "373887452f3c3a4d081afab548c4b190b75aa883893c91184f9fbf45a1eacac9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "96797f861d3cd72fe2926b16e2b08182b8c957a8e98b2ace8b7a3dc6d80e655e"),
			decodeHexString(c, "02156d4cbcf8ef9805ad73f67bd5e77bdb60e7484fb056b313131fe9ce0c6e86"),
		},
		expected: decodeHexString(c, "a9a089f9acc276c0412f0603e72e82392c06886541969e036fefd7e9ce5017f4887a9a0c54a5fb7216be36567f438a9651696f235722dd6630f6f2a1bad465861bd8474f8a783a85c4ed9b6d8341f99800cc36d6627374f072253b68181cc96b84e8a54095562c41f10285bfe770f68d0294d9dc18ef742286f362ac85936ecc"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_13(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "97cf46058b89537c97da8f9cf3ce36b666defa680bb36e6636b4500586756fd2"),
		nonce:           decodeHexString(c, "8e3c0413783ad9cc7e8915322af518e7"),
		personalization: decodeHexString(c, "1d846168da367975f77e58daf5a2f0fdd682637fa96702bd6055c4a899b16b42"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d7407eb173f12df15cea9fbdf3eabd963709fabd8b395c9ba3d4ae2ef62664a"),
			decodeHexString(c, "250f31f1f3370cd9751c8b025053147f307d65cdf6ea0833cbd7b8b5b8252d1e"),
		},
		expected: decodeHexString(c, "d760c25a167e3a7ec8189f06eb51d36c6421ccdef7ea5b4f8cdfc9b6e228e6bfc8244855f83ab232d01cb64e20cf6cc02418827dc4514299e5896e494f45452b102a2ba4db1747d9f53a9f7e11043249deabfa0357d07ac9548d9dc200b38ea3501e9a4e90ce402d2844b8da1c5bf9cc91a8b74f532a3ddbc69c91ef75c3c5d5"),
	})
}

func (s *drbgSuite) TestHashGenerate39_SHA256_14(c *C) {
	s.testHashGenerate39_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b6e25e76bb40fd7edadfb03c7793dc3f63f9b0068beacc1baab2f15865cce448"),
		nonce:           decodeHexString(c, "a27a691d8629bc963e7e06ddd115881d"),
		personalization: decodeHexString(c, "df596e76d8d7c4a74001ccfb2fa9e8e28703c6e2d584062edc485955e1488316"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ead8c0dcf4ddc909aab96eadab509a46908ee5f090983af609f08d8a8b28ffdf"),
			decodeHexString(c, "f357bda8f2048929a4e31969ec978cc333d58b4fc09a8aa1b73ec9bdfaa1a8f6"),
		},
		expected: decodeHexString(c, "901aabb3f065be08e2f8072d5d3ffcb28ab291420644e407e7a6a3346b75a5be535bdbdd5a8245998689450292df877233ef0783e0bd1765413193790995d884ffcb2c8dc35fe4cfc12def2f091866d735b1dcfc9d8d8c26903d50e9397b1bbd674bb81fc908361b2bddb68f02031d87588cc3e94210422674e93fea6a5329af"),
	})
}

func (s *drbgSuite) testHashGenerate41_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate41_SHA256_0(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8ad4599f8ede0ffb061bec6128c9f1786158f0f1f4473efbd562998fcff49629"),
		nonce:           decodeHexString(c, "caba97e9cba4cfa0078cdfe4dd402ab1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4e004fc65b9679ce99bf5b52095b4faad01b5b2b8e4a539cc8b85fd2dde3c053"),
			decodeHexString(c, "5690a64642b64ca0673dd65a4af898536758de741b685a4d8a160721385b72d6"),
		},
		expected: decodeHexString(c, "db766b26234330a21385b454beec705227010909593f117bab2fee95b5aaa10c19fa417e51a0d99a3d1cde3e9cbd235bf75a4f3162b0072f51bfd27999d3a902aec303b5f9f3e24930eb0f15b9d8c9005b601e3e67fd030e0c2b714a1e651201c97b9978823beb7c4769d98ba5b7c0c33384bb2083b49283fcdfb5c9ec8eb7f9"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_1(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "95f53e2ccbbcaea435c381f31ca04a2dc5d611f6bed5b7f7888da0c9b662932b"),
		nonce:           decodeHexString(c, "fa9b946858d7547eec559927dbaa8df8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "11949a77612333c5e6ddfc368ca9428e76d87575f01238a321bd22aa604f6660"),
			decodeHexString(c, "4d56fbc716951ca2809bd2e6e48a724c3c2533f233a3edc475de7659e310583d"),
		},
		expected: decodeHexString(c, "a36235c717d1cd4d2108109a468584b930ac564d909c4c69c0d494943306234f1322abf78a5e49695d3912331795264aae02874914e747deffbbaac834f60d4cbbb157f0407748a30a6d949de5f848e366b870967505107e4db8ce3d8758ae80c2e83b8ebf5abe155c184b9045aaa17044ebe97567f22bf4aa4c1d33425e6efd"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_2(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4a0a0b52a6b4923b0705a4f676662bf6898202985b76dea7e7d892909b1f70af"),
		nonce:           decodeHexString(c, "d34add9dacf77c317874e921d0a4a50b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "575b394d41caf41da40eca2d1c534afcd74b2df67b03b66e3f93c31240a728ab"),
			decodeHexString(c, "9fb2b4faa33e748a94b01fc3d5aa931f71f23709001fcecac637b143faba10cd"),
		},
		expected: decodeHexString(c, "85cfa124db69026339ca03af0df44398b5711c3fd7ea7eaffe05f82c1bd049fb7e688d7b98e3aac80c8c562dc25125577768bd8b766555ae8be74b139f105b97f19a8745e429178f767a2efd0fa91b1e91938e8b9828c5b2e66eba09d403e385f2e32c6eb8b667a31a061c9fe2dd811a23290e2555557336f39d95c29146d6f6"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_3(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f6742c2483ed572d63908ad501372ed18c05ec8b85f4d896f39db46f1c70cfb9"),
		nonce:           decodeHexString(c, "fea41783c5d30b10db03a2a0e71400c8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c946c84dd66d43fcd3f502bf616cea154fce51ac12484d3467bb8d719afd4250"),
			decodeHexString(c, "b043067557e0b7efe6e2c1cc6e9412a19bad509454d19c1888b975824d281dfb"),
		},
		expected: decodeHexString(c, "0352a32a0c62dffeae34e503d0a127e50d71f8275d92ecb000be8ba074d3aaca26fbd9e11b03f317073b0683230e162a2ab4efa521cce0867f7fb61b69dbe31f67a8d42216629b2ff039e5a1a499b47181910c5790f1eb4cad7d07862fb8672a2b81e5d8c62ffa055e97f9411043f7da0c655b2567c56903cfaf1e7d256ede2b"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_4(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "650a1cc6927648e074fa9f6b0e411ba80d7a8bde7f41cdd40f145818e24d3f76"),
		nonce:           decodeHexString(c, "3098850b25334a27d0de3b106beb6dc1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8017e0a4c1d22060e56afde6357ffe9200ad1ec3beb9c2bb381d661c2eff4395"),
			decodeHexString(c, "ecbf1580f1b80856c384a9321a48a78d2ebe4eb413a314e5c4414db132f831a7"),
		},
		expected: decodeHexString(c, "e7ded56decca9a5d59e81b933008bf52a5ed40de1c99c98b846d1a104ec25a69e6248fcfea2295d78419a9293db247dbabc3d688fdddd58d9305fce64209b41fe5bb56e6bbf13447c7e96728a6e71518619e2c93aa9d56797c5436dd1562239da1eef524ddb9c4bae9ad6cc3bd497d71344a39419eacc784b039a4a72cdcac44"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_5(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e904f170a6bc1fb658f6bd0ae5b3b75aff1c7277fbf576247226250fb23424e3"),
		nonce:           decodeHexString(c, "323fccd0c9edaf325e38aa789f3c0172"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a5c257bba6418564858990b1cdcda34f79b48d2ac3ebe25e23219542566981b1"),
			decodeHexString(c, "4c91b2f0e17726b653e4b142b4a319ec952fe4d2b71de31ff14460c3f4f55991"),
		},
		expected: decodeHexString(c, "4334ec672d6a9c69a5203126a9db2ce35e19ec0a4ac3c0713062792a8c0a16934b8ed85df80890550265614625a5145eacc20df8137046b53ff4fbbf9d50607c731e3b82a41a1b74c8ab25f54a1955105aaedacc5d7759a8b60a70623a37f4de7c18c7605e99e3f532ad8c277a7fc44dd38de2caec60310ef7f1544e34a49bca"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_6(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "a342e20ec138de7d9abf4e52830ba788306c54c137f9b6d8e9cc1b16563d7403"),
		nonce:           decodeHexString(c, "fe1b14ef184c19c39e124118ed5b5e57"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "870ade2f3209ccf92e3f473a8ed0a312067f1afac0d57cf0c316a56c13280dbe"),
			decodeHexString(c, "4d9e9a304272c9dbc109486522b4d60ae52beeb87671e893a83d372a14d2a949"),
		},
		expected: decodeHexString(c, "83ea469ce91234c7a1d4589565220fc80c81cc7facc12801589051e9e18e42858b9ee397599a276de205a9b1ee7b44fe8c6d20c371c104119d371550d825b6acad530121b2046471dd8261b95492ad7b58ace823bec2c14384096b261161efa5cf69b8c92a4a699ea8d8df7b04cc24a5a12f4c6978ea50fe0edb7216e35753cb"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_7(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d6c4bc8f069e09e2cf0eff6241dca6e169c6c928c6049f6aa33141b459cc08c7"),
		nonce:           decodeHexString(c, "81509d1be3aad60707c156a7439029d3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "877606701c8bfc7174a6ed8b8e07b2a7af902ce25923f91170e3115504ac95ef"),
			decodeHexString(c, "17f92164ba8187f74a5d3cca30dbfcc9bf8da5405c808d86e69ec0cf34b6ed3b"),
		},
		expected: decodeHexString(c, "566392354a817eb021e4a3a13ea276194879cb0cd72428e3b216aede311b5a4137321e6d2c44ea15e14015707a240389f0d44794d081d049f45405fc52b326b3f6d5d1271cf0cf219fe1141fb3404265bc77e4457ecd86288f67a2edf0e57cb43947c9c12ea41cb89dee94e6bda39833ee5cdb77a0732daa43d8cf2b0b95fb77"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_8(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "15aa5fb1bb743e06b63cfb87926d26a62ab0352b362f5cb14e0951860eca9dd3"),
		nonce:           decodeHexString(c, "81ffc56e38a7b4e25a22c12101d77cdd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "48cf244e0840d885e32a6ca3a779f8aa85d1b85ccf963fdbec676cd6cb2d1ec9"),
			decodeHexString(c, "16e545c23ae386c1b7e21338f0837f51c38a3a283c57f0a3aa97b11f8d684450"),
		},
		expected: decodeHexString(c, "e5eca8b0dba87ca8c2c7b8c2be1c8e8009a6440256d84d35a1d7e032e054366400dfe19bad435b119f4f5337944da5154d2d5b3b0b6324bfbeadef8a33c9d8f1e4e2fd6b7ebb939b8504bb002333fa73029f1c7c2bb9fba93c65a391aae2bb985b576c2026a41d1d56b6a33caf3fed8a75bc392de872710ac94bfdb558543a5a"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_9(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "991541686e31ca1b376aaba2e0fec39a211e45d6d5cd653e721fa8bcfeb6262c"),
		nonce:           decodeHexString(c, "465996218ddf25598a39db7fbbfb24d9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5066003a10d0c836aede4934cf5482f7124d49aff46da0298f0107077f6a385a"),
			decodeHexString(c, "64e9478e3e0802273717f862d3551a22454aab44c19fa4e4c3aa16d2efecd447"),
		},
		expected: decodeHexString(c, "1441ca96dc3ec8f9c7624d8f81dbfef698eae0ce9035b7bee89bed4d412762279cd2fe8bff51b629d136e5a80b0dd748c629d81ed84ff9a3812a27555aa78c00fb80731cda6d167fec9b22c3e48a673a00c039922f3b6c3c2caccd31d898840c0ae1f245b1e8f2ae82453280255ccc2c4cdd9585f0d2ea2040c4c59e673b3e6a"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_10(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d37d1b441184a5c18d519c3e3a18ec8df0682a0be062e909ed45605d2b538625"),
		nonce:           decodeHexString(c, "773501f19012e827cb6bceb2f4e8c0f2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "07244b2920c9311b5b84b67f37bcccc4522614658ccb131665eed288f20deeb2"),
			decodeHexString(c, "090f46ebabdbd29da8f871ba586811e8764d2445422082a41d150e2f00bc382d"),
		},
		expected: decodeHexString(c, "eea85ef6e9a0912cdc5ba42016b5814a7b48f6113e629f3b73eea46bfc77871f0c73cefead3ccfc373d87928f4e20594dcc4046b6ef79ba36930b793f34707297e3a8ab3696578197e21a515e8d940b44f625e684dde7939fed3d2c422dfade2b277ce631acb3b616c700d401a5fe7009b09da04d190a4422e76b013af1b6691"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_11(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "98f6d51abe3da3fd83239406d2e184a589c0046039bc94853660796c7667fb62"),
		nonce:           decodeHexString(c, "d7d45de8d622d502db4b3d5147aeef79"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf46d251b282e5242c84a83facf25209d840a7ef21ee8626c2c82ce9ad709b41"),
			decodeHexString(c, "fa655c1c925811b53074ecef18c3eb3fadabaf931c421653f29c01ce506992d0"),
		},
		expected: decodeHexString(c, "6ae9ca31e2e885e519132aab97a36a87f676d84a94fa41f1a18eccaa0777e3fc494f934ff6d8625373aa8a949cbb3abddfca2606fd8bb8c7d333f423a05beeb3835e413db9758ae382d4484a09c59432cbe0db0d6d1d32598b0acee7a902e76f47865b9a3d666cab7321a1d7cbf3aefd49257972088fd45caf3b4e46a49485f2"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_12(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "4a9950eb71baba3ac0b25e5149a208571d8cfdeb443901936e850dcfee59ca66"),
		nonce:           decodeHexString(c, "e6708320ae2071c2296e02d27deba664"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "831049a05f536feb8794e1589e47bc67ac697e3395a5b5ff85f9151feaa8f1c9"),
			decodeHexString(c, "c6fa8a6fa23a94f15a91b69ca106cd96a1527217e24a2f3eb54a52817b91c31f"),
		},
		expected: decodeHexString(c, "59e02e5499cf7c0cfe286044e5f9f15cc4a4ecab02e88208ffd80758c8863c0a226e6e54c85c0a8e79bb2e5d262b4fc9f66ffe031693eb6f04e2ca1e3af5b611ee4de26f9e2bd2735c8d746bc0aceaeeaef7c6d8c881e7bd57cfed134f2742b4af9b2451d77588e17e2cfc8b8f8eb644e4c8073b5812ab4d70aa2a9a42330567"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_13(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "31edde9cb9e9ae2ff997b925ec5e42588a7d023c124083190aac093c5b961a5e"),
		nonce:           decodeHexString(c, "220d2b712f7e2bf38e70783d82d6969b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9e65e620d96a304a62ace2c3e5ff05cc5e6b7cb5fd714f758e76e43137cba685"),
			decodeHexString(c, "8c779a51462f3aa70b60f90d3aada08994c5dce7efaef6bbecdf34b3c1613405"),
		},
		expected: decodeHexString(c, "2a80233fa1ddd3f0e9a7257283e3ace1d9569c4bbd3a7f6ec8d272f64c1ab39dac19af57490e19706b3cd293db04a6320a825a854b16c9d066d6da2745682272d6c4f75b3e5801652d563beabba31cb8f1b3e643c90d91f173fc01d729d7108e9cc7cdd89765cb8d4894de54774dc3f5e8aca3d77aded01cf264d770b9007eaa"),
	})
}

func (s *drbgSuite) TestHashGenerate41_SHA256_14(c *C) {
	s.testHashGenerate41_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b4e09a55671ef9ddd3aad256efdc6347e881f49c38aadb2a03bea89c48d3c08a"),
		nonce:           decodeHexString(c, "e1a14d523eee40240fb5ef16b0d86915"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "066b072d48f6cc6bb00273e0bc0ebc086235fe79af1fbdb46318f56c62709f87"),
			decodeHexString(c, "cfb58f59c6d56993b9f0b5ba1643554072cf4ae8013c236120044ae909083f5f"),
		},
		expected: decodeHexString(c, "d5dd7f55ffa7d53fc0f679cddadeb869f39b29a6d394c9f1185b11ebefbcb43419c6a26ae3c9ab9d456e2cdba1aead05e67eabd3596526ee431ba7cab7f94838062fcec2363cf0e19849ffef30064263b3a059ce38aa02c2729bff5af9450e035161816724163906112205196c642bfd70f36abb4639fd6e4f7f6a879ebbcc62"),
	})
}

func (s *drbgSuite) testHashGenerate43_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate43_SHA256_0(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "01e809719a3ce9027940128c4f86a0ed0ce29b5706741419c79da0d20cf29bc5"),
		nonce:           decodeHexString(c, "6c330857c50137dcbdbc6f684ea866b6"),
		personalization: decodeHexString(c, "5b36a0584b687a996e6d2d30715492a50380ba09c5b0fa68a4968a5e155f1c3a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a74b5a9451f6e7e607d7b79a3f5228979399f48d71ef8a6dcb2f853536bc404"),
			decodeHexString(c, "92ef06f35ddfa17675286e81d755f443d0249879cd777086d43681cd9d43e338"),
		},
		expected: decodeHexString(c, "c509d76427e6c352f2d5fe44c9b245ece37cac9eed48dc8392e0b793da558e35c59876fb6990b2afb6321b8feeca8370b64ef97335aec7d5e0619be85f13964fbf6b736960925e9adc2c5b1bfd31eb9f1a0b457e915c5a3843d411d95738fe6d99e4ff9658646658ea5165f8a1e5c3777192b4fab92f683a3af03f9622e152b3"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_1(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ff9959921f3b0f311af7165f90f69b0b677c2ed1a6e2f92844b6c805a4a7020e"),
		nonce:           decodeHexString(c, "4051880ab2d0db4542a40589dfc49a04"),
		personalization: decodeHexString(c, "1953a947629fbc79ce4323c727466723fc4184195f9bb1018af15fcfa22aee6a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8db0de6a5418df8c1bf002d190853f4f88f01384eb791e8c377130353d586d59"),
			decodeHexString(c, "5fc6d23ca5e8f7cb6f2fc33f3c0041e49b0d41fe9f1f1292cf0405e14135d099"),
		},
		expected: decodeHexString(c, "3025684ea6661fd1696beb6df0585b647438522d9c712c0dbbe9b356139e03c8957f6d3268f447320568b20caea135df9b97115ea7bc91e7f3563a9c80562283a0667409323739801628f965488e5a1e83087a779dba53390a961534901da7b67f968618d76909ff18b30b5c3906e0bb59d6876eac561899b7e9fabe74d69641"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_2(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f126f51d9c04ea06556a96ec6ad8ed12dcd2bc832acf4d653711dc4f391369e3"),
		nonce:           decodeHexString(c, "b29d96d615b25eeeb1a2070d84b90258"),
		personalization: decodeHexString(c, "bcf7cbc8e73c0927e66e00afc3b43a24c70fff1e92a6d6bb2c37f5fc246ca8f4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "16514ee7a0bf9c2fb784de90fc5a52ac72cb7d7e6a0635f4c01683d6538995de"),
			decodeHexString(c, "8b8f41c3e4015e3f2703a0f2f034eb1503984b593f1e5e8b0e0ba7ed17f2577d"),
		},
		expected: decodeHexString(c, "8632eff5a138313f3505cd6ed20e59ce2c4843b560f876041171efe5c13a1286fb00f54b41a2c70ab92ddc18810e4a81d69e1693057bd7bdeab55f42486d7c4ceb588d6ba133d5cdc9a5df24bc1eb1ee62073a5de06c522da65b2d524798aa2eb6f56256930d31d72ac981bffcacd5c06f33ed1f1873009b70dac04d5eb79c08"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_3(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "162a6a17e07c17c1917f8a42c256113031fbcb00a131b34ad3becd1953bafce0"),
		nonce:           decodeHexString(c, "af05a340ab1088ad42615cdc28e27e1a"),
		personalization: decodeHexString(c, "91b5ccf739aba6ce49653bef8e67aa0171b5f7763adc881a13324d284a937c6b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0882e2475bf8bfb5c4581256cc99256f92261d493704602daba7ff6ce1dc718c"),
			decodeHexString(c, "ef71a7b29ad2c6ae7ced171a2a6f5d39e67e460ae806336421389f99c8ef5183"),
		},
		expected: decodeHexString(c, "c2ef477cc7f3563c9a2f310c6917160ca9cb17fa31b8163ebb71959472b9a070c219205148ac472eee736778cf14aab8fae0a0c8ef48cec8c5c8f51a17aa79651304e33976e6f62d23494d0991e9566dc0b07b70bb855868f07e175bac2b293da46c74b1dc0cff7aa322fba4ab03a1aa2029ea739de40fdd6e507ac5836f76a7"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_4(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "241646d8af39e2256e4d031fcf7e2fb654b492bea8b5856796da6454c35e11ee"),
		nonce:           decodeHexString(c, "0d3339bd543f500c688c36b777a46e33"),
		personalization: decodeHexString(c, "15118c191fe254393333003fc85ce6d6c659857593a1c6b185bfd405ad6a7b9d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d5391da6acc380ec75c5e99f177acdc34b13e05339afa5c49bf6869a797f1908"),
			decodeHexString(c, "9a1248121aa18874ef9bd2b2f1f80678e108f17af3f70b4ebb951ba5cc46fa25"),
		},
		expected: decodeHexString(c, "8349a0fa7b9a805c2604ab51ef2a993c6bc98a250c0d4dfdae704516a40bb1c3c199a1fdbb887a750fcff07550798183aa6507f5d24e6db53f92b55f29082bc62203da3e4e0bc279be58f7a7eeb7b8622d5f8aa0af3781a8b22fb21cd3527917aabf8101bbd3f427520ad40575999ac1f116d8b3c77f2941f6e8b60f5baad571"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_5(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ad198f51da004a3fe11e648b56a95fc0b839cc75497dc6f80c7595334b6fd0ef"),
		nonce:           decodeHexString(c, "1829727d4e2f51813a7f17aad62258fa"),
		personalization: decodeHexString(c, "7f0d878a5b774954f525d8d2607972a8c0ce934aa237bcb677e8d0a47b14da84"),
		additionalInput: [2][]byte{
			decodeHexString(c, "baa453fe5d536da109a55dc4ff6fd2707a89f787f03060c1e974071b9ee40bd1"),
			decodeHexString(c, "7cbb581d62e0838cfc8b97647e7b04db1b78c8703a4587747f653c65ac4a09d0"),
		},
		expected: decodeHexString(c, "c66586515942f7eb5a809ef9d07ebebf55862b2e1ee1fd31e1f3c54f39bfbbfd7a28879f4bea55d48eed2f1f867420d9ea06b1be01b56588c923e473e72f8d18d4ac7e6120885e21c8eea32c3ae0cccdc3129ae0b92756a94a78d9af7c8bb0d3830fd332e7ce08ee2472625449edafa001a068b6e1b572c089e472d0660650a7"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_6(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f74411625306c229c827b9122c9d4191c59932d98d17a360a6c4efd21d000b4b"),
		nonce:           decodeHexString(c, "a21b091e3a76e201ac6e7c3c7472784a"),
		personalization: decodeHexString(c, "69741345b60abe7f78fe30fdab9d7cac15eb5281e2fee8dbc6042971520b4e40"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a472e06c1ef17c091e26681e081c2093f1553a563e513b19e7f51726ab665a78"),
			decodeHexString(c, "2882a7b34d9cd9455401afa4b9e6770af410c0cdfb0070650699872d89a052e0"),
		},
		expected: decodeHexString(c, "53969b2d1669d2a9d74a617a2cdc443dce8f5e5b78df5bd1341aecf49c6fd1818738ca90a60650ad3b25bd3a85d6fd539d399fd0eb89732ce30aec0bc046b674ebb8f7f42a3a40c013e316b2e437dfccccc5a3407688d68a7954754b316cb0a27817418092bf181dcdffb662345c4afc70bc106e1a1009c62e4c02ac68bea160"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_7(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "04912d87d697225c1c06236752d9965d461bbc4b6f2bfeaacf7fa4dfe4845b7c"),
		nonce:           decodeHexString(c, "9876c69ab89ba243bf526d7e56fcf17d"),
		personalization: decodeHexString(c, "50766199d4eda1a22ad50520e2b15efe1d557198d0dce24256b316da3b676904"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1fc4ba8d936c8d923218b0c5373f59ddaa87026ea9138270199b67c3aea60c19"),
			decodeHexString(c, "da9745b63be291cdd7bdc7592c72639f4b1ac555ad4722fad01de4d3139d611c"),
		},
		expected: decodeHexString(c, "233f2eb59e53a468d5c939e2cd8ff0f53c84a358a1f568f0dabe8a6da1f05fefcab09084721e04e94dd6ad5499b27f58c3623f38a058626e36c199df9d0c4f7d43b7aaa91694e8fa005c20ba1185f562c766afdc46f5e0b21ee8f99f1b5d74d2a5c3761712686360457ee5f39e401cf13a7860465266885c852c7e0047ff10ad"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_8(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "62be631f13d81b1e541266db7e6f700d20e57507286194f9df24ae1206b194bb"),
		nonce:           decodeHexString(c, "7c96ef19f0a493ab125a6ad652907f49"),
		personalization: decodeHexString(c, "c5e7158a2f998a0d7a86fa200095658f06bfdface259e4d834d6c1527d77a005"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7bffae3849642f4e4c11e2c9d0661af728da444e84e9443cf08e16901fa6db5f"),
			decodeHexString(c, "2002702e7dbc7f9c6de15c8278b45fbfb4d49d4380e9449dd7954e85354968e5"),
		},
		expected: decodeHexString(c, "3206ceecea52e28e6d9d03394dcbb911c24550863b296213083c6c8378341c4e249a74fb6cc5076cda6ba3ea7ef4986fa11ab85dfbb0f0d1e482264a198e0d5d2237a6c8133f162df2ea903c77aea9869199a72b2b832b50702d2c56d2acd89721ab1030a7717d6013f1094094932776eb37bf4bb312c0d5890058035354f4dd"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_9(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "04373d0851b92846756c9afaff843434e6dcd239e30b004be5e028c3b2f980d8"),
		nonce:           decodeHexString(c, "e4500e5872e8172297637eab7c397a0a"),
		personalization: decodeHexString(c, "335ac62faf112760a094defd1816063fc6fb9737eba95eaf6958afa58791e987"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23e90c1e4d86371d1a18dad03b65e773939c1acfd348d5560440c8423ca9c187"),
			decodeHexString(c, "b7bf74b8e469f17684975ef1505074c31111cc8bf1cb383e983488b55d2ab652"),
		},
		expected: decodeHexString(c, "a57c021e65c874f93073566d8c7236ec4e4052bed18dc16adf4932c1bce124fc23db979af66feb3bf195d9037f0cc2f8d4c548453046881aaf36429fefc1177b8646306a257ffe402371b0d246f8c498f5e64fbdc41a3829c8e8c3b885e0ca373a634889f7adae7f320aefb129159ee448b1b31ba1cb7f4ed0abd8dc52029350"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_10(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "1b3d9c778d104ce50cb8a355015e0f844a24da6d8f87f411df25b125f3023654"),
		nonce:           decodeHexString(c, "42dc85ba551339bbab7acc35d05ca12a"),
		personalization: decodeHexString(c, "9007cb64fe8c835f896f7c627d0c8c629a3eb498b914da68a6ece90bb8603708"),
		additionalInput: [2][]byte{
			decodeHexString(c, "959613514456db6b097a3da7f2013b20838d3f9e33b93b420ab9708faea7ff55"),
			decodeHexString(c, "545c76712a388957b402beefafcac4af90c4415a5b25af0deff0c399b75926bf"),
		},
		expected: decodeHexString(c, "0418769773d2c54d1e949960758b979ab5821db817f923ad7f4e30db99ddfe256af450d25226ce59dc089a42a3ec14d4852e67c62dcdf49aa1533f8d764771e24ea67cf3a891ac173727598e5aa7838e72c2a2cb1a880ec07d8e85c3b4c36afd263ab5697c777a90ec1505275d19b0902ba02373b1892473b79005c5564f84ac"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_11(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3d6ef5c299ef4e48f9d6062692202843517883fcfbd8f04a5b1d8827f03e8341"),
		nonce:           decodeHexString(c, "da32122de317e8139ddfbf04bccee593"),
		personalization: decodeHexString(c, "0e17a64f24ffa899e7d1187311d1d15bdbb188efafa2747a961db871b2a6814c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bdfe3217d22d26c594e1c9f294dc9bbd0524a4b986ebb0b961a8ba776c90696d"),
			decodeHexString(c, "833d96a820995207045e7be63024668cd06974a8e5cf0b5e51ac786954dc077d"),
		},
		expected: decodeHexString(c, "1a60dc419f613f8dd6ce5c1ebecd57f94c0c2d7d4a76b0eaf14f06c77056f4d85ed6bb91f93d007f73cb1628113abc7a34c6a2cdd7dd80ec14104073e6eb72e61dcc972b4bde93d298bfe12460c64dd83738fd2a39bd02dd52c910a4192fcfcd392d96f8fec83ab935d5b4bc53fa8e03ad080aa279956d9cf3a5baedb7bf46fc"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_12(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "307095d3988a6784c0de8b62bfba14e76d0837497608e3ca09f40855d776ce40"),
		nonce:           decodeHexString(c, "bad3299ad3c9f0b421f3920156f84d43"),
		personalization: decodeHexString(c, "a29a09d32283d14ab219a9ddb9e16b0b1ab1d0388d20e4c67bcf0cfec09c412f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d0256993bd88c8c8bbd46c2d57a1e691aa8d63fc52469f7d8309e984312d2c2"),
			decodeHexString(c, "c35129927df9da0114f9f4bee2cb0bf3f40703c4ae373c2d5b365e4d9ca47f07"),
		},
		expected: decodeHexString(c, "45a5acbb705603659ad55439707c31309ba29235c7394309de2fce87fefde33eca5cdf6eb2d552774d5a3567e69de17336d906891b50768b9a05200dcaab488fb626a64fb95ae13928971db3d4d5ec98cf89e72c2b8e0bdc833e316c93e06559e72d12343ff9e6340f6c6eaebb8f4bdc9756d24b25e6e18f0bb71440aa60c36f"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_13(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "bc8ba446c68b2fd3fdbeb8e477344258a2ef2255c3f14dba02542bf51cc33a85"),
		nonce:           decodeHexString(c, "5d04e33def6b5ed8732dc93bdeb5000a"),
		personalization: decodeHexString(c, "26f7c629dc1c44dcc3833474bbfd76ed047b863a20d809c0b5f00eccad3ffe30"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2eea882d53ba94dd7ec57591240c8742d4c0201de62ced053f197aaf97b9a44b"),
			decodeHexString(c, "850a641c6a528478e9d21e4c1122159658b9925118c20b1f08daff3d1ddc6163"),
		},
		expected: decodeHexString(c, "c6f69853b30a92c617e2a048df8644d15eb4d4405f4c2f9eb532e8e012e57408b5390e2b71c6e1c67584817270cb981358c8ce4e211e313b5f98b9940b6b7b803a5c9eb7a5487d2f2d67fea38b45bd5d9a01d22fa0364594d21c1cb8a8f74a042dbb30ba31d5d9c4e085deb09868944cd1ec19d3e4dc9c2f1cf113eb9b116160"),
	})
}

func (s *drbgSuite) TestHashGenerate43_SHA256_14(c *C) {
	s.testHashGenerate43_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "afe8f1aed0e9117f195e425b7315f05f8635297dedec8b41d13e53b2d852a924"),
		nonce:           decodeHexString(c, "e4d356f3e11f31d3e4e6e295d15f042e"),
		personalization: decodeHexString(c, "0806cd80140302b264ac5812b74d718d60d8b3a9b279c592716a6a3d3f7ab79b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea12ddcafa4f578b8b43337508dd8627844d185b10af7de7e907d113c6d1fac1"),
			decodeHexString(c, "0cc670275cd2b0eac5df123eb1fd73c2f2b093b76806943918cf49930fa97515"),
		},
		expected: decodeHexString(c, "88dc727007c0e03c8d27d00c87876f8990b271964a5275f636ecd7f18cac9c869e5f9df5fb2d34e7f89c2e9819af562a706a03d9be9318896f5ab16573aebbfd94a681cbf27e7202b8674437667893246c267785d0deca5033de88a61bf5158177391c2e3232ea6f812c468d5629ed9f89ad0bec0f6c7a469f56331f9eba1cd2"),
	})
}

func (s *drbgSuite) testHashGenerate45_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate45_SHA256_0(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d655b2dce5be6c88242c85aef1155b8b8a191de6565ead972f6199f370116296"),
		nonce:           decodeHexString(c, "4aef212c45fc6e4fcbafb655a909a153"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb28b3e5ff3b6f72444c1c1df2f6a288bd3d8c77d26ea641af9e733b5231630b"),
			decodeHexString(c, "a2eb20f07b2514c782f71d9a3b9c5a41420d7a8bf172c06738c8d2a6b86b8bf4"),
		},
		expected: decodeHexString(c, "2990b9c15396e07ea7b03b7904df85e1a0115c55a6db7d710147ddb4fd88a0d45cfb87f77ec51f58ae5b7659fa62b1a7e29697e8b77b6f3d5e56e0cb16edbea0e7a4157fac157a57263e96806df0c095d7e1a52a29d941bfa8934f1346a3747e8ba4ac48564bad03abc9c67a418954d9658212192f456aafff6ba7802d4c7c76"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_1(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e5075419dc3e8ef44b2f70de3cc4754448cf310ce7611b5e22664ccf7f76a45f"),
		nonce:           decodeHexString(c, "459551c770cb5738d6a0c9dff5a885c8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fcca6b0a9d76038dcdf653fbdb9ea1c974772cf502cad722b0e9586e7095fa9"),
			decodeHexString(c, "12813e4f10c6b9c4c336b925acee74bf8f6898985cf2ad344f966f36dbaef5c1"),
		},
		expected: decodeHexString(c, "4ada3d40b220d74b49cb06e4a521fb9c8842df180df35c7305ae90cdac41092818fbaf4a7009061d7a47d9b59a7fa0ef571516bcc1a6e3696e22d75db0303fb60cf9b7f6cfcb433cf7066640557e755aa8acf44752b694aa6482550f00454c7c38baf071f52af82723b72ae32d5cb1db9f08b8cc9938cb41a01b572e1dfd2031"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_2(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "fe4e8ef17eedfeab58afc8408657b157d237dd5a3032c3384451c645d2e1f032"),
		nonce:           decodeHexString(c, "04f259b71a64f449a96ce8bf4aaf6640"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0c0a62b9457a43ac2055ad05534c0e588559e97042daada79ce544145cab762"),
			decodeHexString(c, "f3fb563d2743fff9be92724f07b36db36ca315b46aa58cc6e852fad274ac2882"),
		},
		expected: decodeHexString(c, "5431db2c241a02f4052065e3d9660d78b80e17d87bf4bbe1a2607bda5066a019c31ca77c5de700345ab85d7e7721fc225bba3af19a211f3d7dacf9c8636b0cd4d7cfedce80ebda6a3172fac658145c09f84324d42f40b0d9646297e8b05adddf016cf99c82cb10570e3009de92b7ac0033e0d9442d597a8a12ad9a540a6ad8a3"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_3(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "acc8cce03d6331eee00e2f92afd0e57af6d334dc09f1f12b09531aedf1ff97af"),
		nonce:           decodeHexString(c, "0490c0ece0001c457c37a6ac2aaa9c84"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a279958ff7353a86d21b1ed8da13e82dbaad5b6ba9d575d2438ff78681e78d9"),
			decodeHexString(c, "45fb4909381329cd115e20de635c17c8aca86660d8261c8c484726c6b7a528e7"),
		},
		expected: decodeHexString(c, "c70252129ebb4eea5d8f16d74cb1bc9158410a6a21f9d531ca72753724bf65a8524aedd2e52e415a94da0bd935e8a70b411e54ca27c589bc39a7500113d693274e7ed63c1efb5d0e6ad0534587ac465bc27650457b76acb1b5edfb8e84f4879d65a96d560578a6a470f51e746a0b6ef16e905f523ee75c6dee7558042a5b5344"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_4(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b4c0cc8b22ff8b0964cf0bcbb346698a55ea7919a46bc3f8b3c1d15ac8f4a2e7"),
		nonce:           decodeHexString(c, "a7a37ad52402287f358ad4ba0fe5f65c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd3fd666290c62f6a983165e0a9b0b6c2c8eb6c103f0f3ae81182daa0e23ac09"),
			decodeHexString(c, "d57fcaf6e2ace0ce6d593130c3981ce85b9e6028bed032d161b724526209c930"),
		},
		expected: decodeHexString(c, "d2517b96327b4254eb58ebc81d39ab86812a8e44ef791b03db3da09cda50235483708f7c8a43a2242b90a31b0a46cb3a156731d7df131ea98ccb34ff2e8c31ed1d50735cbcead7b897e68d85327c88355216cb0e9f5464e9e31d6f19e3c65354092de3ce7305f37bf6dcfda024856b4e40ca5363db69de046a0744633c7174ef"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_5(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "33397b807ba729011829cb675eb78e0f242760e4d23be6346cc4a848c8652264"),
		nonce:           decodeHexString(c, "df486ddf24880a5f4e215b300b6a78f2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0bc65dda5f4cb52a3f29a0d5795f9ff625dfa99bb18224ebcb1942409afa073"),
			decodeHexString(c, "05c67b270f38894b0be81004cac9da1e63fc5926e984a1e9ba74f683941b5494"),
		},
		expected: decodeHexString(c, "01989d154481cac57e014d92dddfe8090c408f4b429b1e7ac516ae3eaa1f82b5edad323a438b6411b7ce1387fb3b5cfb8e0c362bc7a9b3f415f3c70ddfd85bc70c9c7b206920e298d83d9926e5d499bac651761187bce386d07775941e535708bd567f394412caa57142ece8a6467d9c2c6f92ff70eb8581b6da36e047621f8f"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_6(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8acf2e4ae9db6969555b4bdffddb23ebd57e95ef12e1fbc601560b95c33df434"),
		nonce:           decodeHexString(c, "ba6fbc2f089305fe03043853aac64402"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "175e6b4b49e4aecd13c597210eb134231807d59df4166a08b65c993539e49275"),
			decodeHexString(c, "dd14a03bb1c5fdd814dd26427cdec4374b6c9fc33961a825d5fc806171418d76"),
		},
		expected: decodeHexString(c, "5ea601cfcd6ae2be5416536c090fa84f890f7ebdddd25aa4e2a6310134cd14651ce733a4d51a0fe272683474e0910fd1802f1c1e1a0d5e1a4cadfcc4a1ecf125ed48bc8ae751c07b8aa6052d6ac4112c3f9845ca554087a8b33ebe999743a9e02d2904a2f309783eeb78f639846214d95805e69531617fca284c911937bafcfc"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_7(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7e4bc7f6ce0e75a2c1a9ac2816fbc72fb47d36516d116e753cbedeb3098474e6"),
		nonce:           decodeHexString(c, "b5a7315add24016885430c4dc66db469"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e32bbf798ecf281397138c0948070a7f84b99b700bc37e0767515768bc172a94"),
			decodeHexString(c, "343c58ed4dc4eb6b9d4b2955b9a9c0af8b2cf150861b75544e59aee5b288a6ee"),
		},
		expected: decodeHexString(c, "517eae10ef91051ef43eedd77347777358bcaf7b7851a74e1ba1fc42471ec1a4aaee4e0cde41fb0cd89b1b30aabb146b8f267dde63e875ff1a2cf3414b5fe3f3b22bc7dbdfebaae3432a620f1ed7353970553748e2188f99e0d081eb6910009a6404701bbba1955bd33caf6f8cd6a117d55b4202180994866f6e91bda647a512"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_8(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b467e6551dab99051d2273b89a5167df8ae9a85d7c8c038a1c9c36e8f72547af"),
		nonce:           decodeHexString(c, "82e5429a03e76b1b51eccbac296232f6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0fb787b91336de9bed6ce86398fa84e0c3a640fe904efbc4b80bb28f77b656d"),
			decodeHexString(c, "36d776f40a725de32a94bc516e9aebcb1058440020829d32a96a4fde1b8c02be"),
		},
		expected: decodeHexString(c, "82eed6652c2b374ca8827fc0772c0bd7ad22913dbf84f5808dfb1cfa717d996d9638cbbf93f5d6b8c8b71186efdc8f0aa8a7d2c7afc3b29a0b4790b317742e40c5584842929843219b5504f4d8af002518fee33fed858615b3151601c4f6206545e257045b1cfa7a8d6f22097a734918d0f8774e4cb87fac1b93e071e5edc393"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_9(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "7b87eb8c272b101223ae3b6f2e7195a88e37a85136fc7a9f7057826ebe604e3c"),
		nonce:           decodeHexString(c, "71766afe4ab1a1aa178854f5b5b683c3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0ba1674cdefebe59a2d33c06105dfabfad70ad76153988b69b2bc10cef7d1a50"),
			decodeHexString(c, "78e45ebf6e2032c437fe7f9e3310b5ede1b0547cae5b1372cbc69a1744c85930"),
		},
		expected: decodeHexString(c, "e442973e8f6b9daeb2740c5878ecffcd1ec1afa28a32b76c5d93a0257713e3e198dfcd4488b17c54c2fe4b014846abdcf2c4f881af2bafa7cbd16e17f89ce9f3bdf8a5810fde977760159e254ec5ff098df410a5f27e35fba25532add23227a5cdedae75b0f08420568086812fac85d2bbe055b4c0847e644ad227e4d5f1d719"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_10(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "e465ead60ef17fe195a6bfff3c852d7d5dc0ce0397c8e3fcaf16c042fcc52503"),
		nonce:           decodeHexString(c, "78d40b9b261f53adf952b9b38c2a46c7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d0f507da569735731a31c722818699bf682258afacee50a4b0dd6e5be24a868"),
			decodeHexString(c, "69157422c69d110ca6f34592dfe3096f5fba3c5a06ddcdf86eadc34bcce5d427"),
		},
		expected: decodeHexString(c, "acb0d6ec609f8bfbe92fc5ad23bf23bc2ddf625374c09fa3ceb1cf162b4952a696d9cf899e1e3622820f374d7e1d33f61109c9bf57ad999a9d55db02be669d999975b19c29c34f22951dc922954253d18126e7aca1e6105ceef1b3ced0afdfb196a87e8aa8a8eefcbfc7082702bba3e3562b183d1ca776f219497ffde29e702b"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_11(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "ecdb60558a727c176cac1394fe81333b6a01d73bee0ff98575670a9146961532"),
		nonce:           decodeHexString(c, "d9b2933300f20e5755a15b8f53ae0f84"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "77ca4365ae20c488297a08fdb134137ae4048a4f1769c873375bde2984aeafd4"),
			decodeHexString(c, "f72c33140e7f95c1257dd5cc7150d0383e23c70afc44ca0985741ff1c5d7bd69"),
		},
		expected: decodeHexString(c, "283657e6d2effde0b190509c70b649ab3185db1c0e305dc796c215ac06baeaeb4df94c903a6eed2bb713fdb129ce3638a2d4364401aa3c79bddb1017bdc5f452eb469e6780a87733207bb2f0ef6df431d8143c0310e374c3e3df59f233648d43b0d954f0cb8b40b733bda65d07a4b6e94fbcbcf409c422208a208343d8709250"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_12(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "911929c3ffc14a8ecb5b26586edae6ff282bcbdaf9c4d4907f6846a2562a0c3c"),
		nonce:           decodeHexString(c, "4d7a46dbc5b6ffd0481a3e070d5664ee"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4ed9f3b31507637e0692f2f0c705b41b0ddfeae0498622517c03682cac40d7cf"),
			decodeHexString(c, "3c529fe88e7863a78cd4f0e893b56d8b780723f2b579dfb855b7135dfc04090d"),
		},
		expected: decodeHexString(c, "c6b33017129a5fa1ae98855377447cbb51274780ea819f322e3180cce3b92abd0ecd188bd45ecbd7f2457b49fc560159f70ca07a26f6ef199f5f05673a2a153a4c2d05b2db11cbba731a8cae0074434f743eacd8de46ca73a70a105b5a902c47e6a5c94b55184993ab4a11a9cb9b0914c3e0cc022663c517fc0ed8bdfd91a435"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_13(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8663a4934a27f7ce257aa05f3e7c64ac4478481f0c822e2e5a7ab17208f16965"),
		nonce:           decodeHexString(c, "1a26322dfdb96fe4a881eb32efa4e8af"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "43a3a82254715ff38223b1bdaba44167a475915782313bc3a6403cf470f53158"),
			decodeHexString(c, "03b74c720e937417684628992ae20f9058109bec1c40ed42fc782c83745ab16c"),
		},
		expected: decodeHexString(c, "38ac18a7b3e8b4c7ab345281031584c8ae55997bc99b3bb16b9b822acd2da7e07b82b6bbbf1aff01a091252658f641de11706fd00939335f0fbd841b7cc8229aebf0abb5ae1ef08ccd9f9d28c3e11246e8ff56b2254d32c5a8f961d17109edb44e4b8f057bd64672b231e5b6a7617f34602174bac27ee405a4815b17ee9006a3"),
	})
}

func (s *drbgSuite) TestHashGenerate45_SHA256_14(c *C) {
	s.testHashGenerate45_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "614eea0aad7d0c66200092a0f8303aa21b3349ccf05ec5590272f890578176fa"),
		nonce:           decodeHexString(c, "4c4fff769cb2196ad57c9a674db91bae"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "147d51711ae8a420f165db0000d9d0cb9e9cd5447311eed43d7cc9217df97a3d"),
			decodeHexString(c, "2910968bb1976a1b8ced116e673f408da6fc563695c918ac0a230b0bb800c707"),
		},
		expected: decodeHexString(c, "357a7269b30ca744e213d894f5c45d0db9fba897e0c863a56062f5018ad9be9f37b8d550014ed68f2c34bf5195c0b7460df171ff3bd4a590578670c92470d876c8de19d48a6d7fa15fc7996be78d3cc8a5c657439f4bb9865bd56e187d5df2531a405e3e0f4b87c611aa8e226b8b0266290f06f8062456a7a4bf0896e4ddd948"),
	})
}

func (s *drbgSuite) testHashGenerate47_SHA256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerate47_SHA256_0(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "b1a1a0a1f13a67d9d35441c96f8662e499f78a75b1c0a5c2e26dbde74cfa8489"),
		nonce:           decodeHexString(c, "e0c8a8ad309488f2043ba4afde664d10"),
		personalization: decodeHexString(c, "b54c1b191e08d33957b9e42712df4e64c8ee9ccc5c2e21a64748b36bb82315ed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a57a675c9df3ec61a20194a34fbd9f75944b36ac33f755b5a4546830011f3f6"),
			decodeHexString(c, "83e57b2d0f045d63f01cf2b43ca38b2b2f043fb2335f1bb1b571a813d561ede1"),
		},
		expected: decodeHexString(c, "884328b4186f195800c5896fabe2a0cee49151678508c71b7ac394981168535baf1d6cb5bd6e6a1bb32af4ebbd8ad74cdfb5a6339b20c3cdc671fdca118156735979da11ed1e4a3fda76b4611407f6b8e80a3ed25802a4d431c01be668c52d37cd5b4f1cb61f57e3ff5ce0c374e2554e9ce311426a053299c3c846594e4bf536"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_1(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3a12416992753074ff1459c565803a9dd38f733b1e609a0d8529717edf9967af"),
		nonce:           decodeHexString(c, "3a9eff839b5a3e16ad9754b4ca9fc888"),
		personalization: decodeHexString(c, "ae8fae6429488ce9cbc42f6ed589107a28a93f47c4f76a4ea3c0d8cb62530a50"),
		additionalInput: [2][]byte{
			decodeHexString(c, "258634c87d0990169b2d36f418ab810fc03728406581c2f5d0baaeb9e4443ed3"),
			decodeHexString(c, "4111d6bf8b9b9e3bbe9f9c3c412c846ca2628249cd1923a233e10ed08bf81872"),
		},
		expected: decodeHexString(c, "4869bc773ac8a485aaeeee27ac7c3b6ddb4671951020de82d31005efe399d5e42eb4b6681e860bf7a75cec554bb93c20379fe61cd618aec52b934f5673b48c0dd79ace33854c30adcfe254921c63b7092636873248f004fa8136c6724d480e5a30786f281610ab29820f0c83d47e70b8f67620090bcede7e185ca11a75765847"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_2(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3f6dfbf0dddb435f4918f8589a307a13b18b5266c968d16e1c25deee80dbf27a"),
		nonce:           decodeHexString(c, "6136d723b92eb98e77691fb67de701b8"),
		personalization: decodeHexString(c, "90048b185cc1d7432b1221520bdef6dc4156ae35920e3abb541875d7249b6c06"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8ede7c3f39be4edd57d351c30be8998cb38d7686eb6cc1bd070f35d792a2fea6"),
			decodeHexString(c, "f6a8f40c943d3c40e8915738fb702f862cc105f94831b794bdb606e86235f394"),
		},
		expected: decodeHexString(c, "c19b388646174a0156f3ec227e42664737c735fa69b587a0534f261eaa65d7c533407f071e8fcc81f42d085fe9f9543aaadfe060340bbcf4223220d0683a4fcb89a7c69426d1806d04cdc2489643e7e133579002aa48fae5792841119065a4f8fd7209074298ebf7fb467ba52cff2842a36a85fde71ac4b129fcd109d9d3e967"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_3(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "997d371ea177188463c9ecaf63ae2ba867d8d448c91df1977dbe70ccb1f6cb6b"),
		nonce:           decodeHexString(c, "20ea48799426051ba13939653d9668ae"),
		personalization: decodeHexString(c, "dfa25a85675adc25db3570ec790dd7eac9e92b64a5879371e6c67fb3be630dc1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f68a5656436c9f739c72bf831da09512d79814445bdd9c1801ea367ce2928e0a"),
			decodeHexString(c, "a0ff3a93a1626935749fce8c63216492123a96fce53098787e2ad4bfc3b883d4"),
		},
		expected: decodeHexString(c, "c27f8dd3df5ae2131dd6cc7e673ab0edc84eedf3dfbab0e0c871fc0b8050eae21cfd437656095b25e89fdd35fb29d684e342a0e882d4967db8feab6c60c2aa8488045be63332610b0b5779825eecc6283b066ecc1df976c283ce8864276e7560e53167721b4aebfc95441717f7469cbb2cc0d7e082116e201278252602026ea0"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_4(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "abd3ab8031c50746da7504c8d6e004ffb9bed74ced3365423cb76149376817a6"),
		nonce:           decodeHexString(c, "db56167358e4bcc8dd261f2129879d6a"),
		personalization: decodeHexString(c, "faaf7dfa866a726e635750e7fbeadc268f2213e70fc59082b7c451feaf902fc0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f10a641ddb688473c47ac20baf6ddefdbcd9805776333481acca26c61bd7ed2d"),
			decodeHexString(c, "5b849bde9a82cdbe65ed6efe5b49cdd0579b40c53d3014eab041f7cc645db05f"),
		},
		expected: decodeHexString(c, "d0c6b5cf0ab7434f9e6a9b7ceed29ed9ced755385c8a66fa9d448bd7e5b6fcea32fc6e1fee34b6ba49c727d228b84f192ba29c8e8c30effe59105a81f7059ea94573c00b83c58c9d0e0c2ae080d94a52c71f95bab28f7634984732dbb19a756c378279b48ef6aa7ec32145e395352c1dc0c856727bcb857dc0a8e1b935848dfd"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_5(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "39cc6cff94a582f5bd8f0a963f185211d121d84f20082ac45f079fb8078aa024"),
		nonce:           decodeHexString(c, "0a195896ffa44dc3d33a9dfc1e3ace72"),
		personalization: decodeHexString(c, "a4f2dbfd33237f628d40c7abd0de84d8327727ca2c7ed3c203dcb437717f51a4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4ab130c1453ae6400bb2f27f8dd5b0d96fdf46f50964bff5f11f00c3c3c8431"),
			decodeHexString(c, "86884795ac9c045ed5eecce236f9194d801707907e40c867ec1760e170304e31"),
		},
		expected: decodeHexString(c, "c5073fd20fb16fd9afcd5e15221371d5e066cafc80f2ce559e2f814ebbec6ff2f4c07c11de5bbeef9d6cfc92cc6bac904a3c5c1055fdd7094d805d38f0ac6c5467b28acb7680ea836d616c0a5e3468da5022d6a382abeb8b81210f7fe84e8048cbf112e8e6d6fcbc65bd67b344888265ad295dff7664699b35433b5b3ec13e7e"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_6(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3e8579f74c8d91b38b03a190f5cd17f6eaccb2e77cff28011175509096cff146"),
		nonce:           decodeHexString(c, "c6402322de78227a783751c4b1fe28cd"),
		personalization: decodeHexString(c, "fdb70c3c22d04d7ab2e442183ed0b2e090b0bcf2187f0d2a87152631753bac4c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5879107cc1629ffebd599b9c11f61e89fe8b73c427ca67a5643e3856eaa778a1"),
			decodeHexString(c, "0623d12e4106cb37e516236b90ba0baa6eeb6ae4428d64b6986b4daeeb0ca814"),
		},
		expected: decodeHexString(c, "390df2130922b7cc05978855a3b5c8a4412b86ed6450bc43ab99bc3a4d7621f818b9db1c79bf2cc0ea496a5dbd33001b9645fffa7301e9342337406f56804ca8176fc2919357294b5b9301780a8388188c4fbd894008185b4ca58d424061961380e80f771a81fc31dc0ce17abba9bf0527aed5668df5299cd568d9d86f7cdc00"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_7(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "d53b6acd4850470025257fb4ceb30991e2670f1cc6015a071446d40c8b2c956e"),
		nonce:           decodeHexString(c, "94ce72ca1d7d450a3aa0737bb8e5fdf8"),
		personalization: decodeHexString(c, "13e3eae54ab017d88353b6e71403d8153974658d0d63adc823bc6748e6c4465c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "364a3967aa3828df17918077555e7b4330bfd6db87e38a41813a0f289a351033"),
			decodeHexString(c, "5fc5a13e7174d56fb8f706c3786be94e345afbf87fe436602ed525f6db29bad3"),
		},
		expected: decodeHexString(c, "edc776718183149e3e2b2ae74bfd586d288264fdd888c71a184fd310197ee6d01edd10c9e4a985409ac0033989552b61209ce02aa40f8abaa48e58277c6967bfdc5871eae4df83479aa935ad1b9c0216ea12776df676c7d1e6b804e76140ea044d98a1f1729a773f8123fd7dff0e9ef801cdd0c53ba4f0564b499669e9d973cd"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_8(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "14d1e6a1896f2e2d5c3c9f52fdb0a38c153adefb2b721ba1c7e5bb0845b08eab"),
		nonce:           decodeHexString(c, "6facbae25c11e8944f8810b57fed4fc2"),
		personalization: decodeHexString(c, "bf740e44536271b254e9a65a0418585ce49efbbdfa3ae5868809b3a9cf1c3148"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a2e1486550f5857defadde82a341e3437a3cf27c6bf4fc1cd8a5be6661e6d14"),
			decodeHexString(c, "e054ad9b1aeeb46b9ab9effe96cf44e8d9a8c1f6a2099d0c0ffcc8f2e171bfd4"),
		},
		expected: decodeHexString(c, "91eff4f9d61ebd4993431628cfe473d8dc106cb69ece1cd060930804f93766b2d5c49a0de45d89b022651a26094c4cd07812bcbea7fe546d942eddbcc1bbcbb954d5bd84b0db9366fb353e24d34a4cfc37cc002f2b5baef7b79674a4d63330ada487f7bd269c13cb723331018a0afab0fdede8f2ac6ea93e84571d7112e78263"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_9(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f57c1dcdf515c3c663f4e0cc90674cf6678e7e84bc36d54027a87813ff366be9"),
		nonce:           decodeHexString(c, "7c750b805493eef74cf1756242ba1b12"),
		personalization: decodeHexString(c, "816deaa6c27d0a2f6caf8df8b7a222554b4fb6fc50350bbb82c99c82814628cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1045d2c2bee045362968da8d54ea42fef4cdc4b0b8f32fc05eead7401d4aa04b"),
			decodeHexString(c, "40e33c65d62342748014e179cd08d8a3c5d7d7e212cd75fe7522c79ac88533bb"),
		},
		expected: decodeHexString(c, "f0fd07ee4406f2be3ea26dd81d27567af67fbad791a22154e878d388da66d8138a77b559401cddd950eda9d4e8fcd7d3441ba52efa9d373a75300c7d2da993bab5edc1a73dcbb954da090e3d171660229e8674ea72076506210ace9841f292245668e42c6ae666d803de03a91fb969907aced7b2ea99ba09132096a056861846"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_10(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "c913a05682edbb93d3893e433716d6ee85d714472b8787e8da9c9cdc5ad47520"),
		nonce:           decodeHexString(c, "10723ef0d3156cb3ea73462117b9043e"),
		personalization: decodeHexString(c, "3bf67a5ea55fecb3f53fd95e9a0869e5f3d0ecb26f4e427d5f38388ea041b5cc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9c17b2c6048db20efa260c491e5105dea2f7c6253008d0feaeaf099ccd43e9bd"),
			decodeHexString(c, "5a739729baea3994f4c57ea0f5141a9869de011c88ae3d262b2e744624f44de1"),
		},
		expected: decodeHexString(c, "c567a512a21e53e687b63c51bff9144ddb902939fb5e7507e1d954b3122820dbd7d693edca18f825bb65efb122a86c02ff418065a5068fac80faeb9846f8db5aee39c3f20b60afec484f53510c47740dfa7a8c9fd606b0d50d20d6c07cedd47c22f9985e363554fb567c8294c864b5d9488c3ee0e483a775e9e668dfe73a1afd"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_11(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "f1917e59978b897e41b41356f83e19ed1e07d5b02a13dd512507dafe16b38280"),
		nonce:           decodeHexString(c, "4e417a1f441a4a3b0ec19f31e944bde1"),
		personalization: decodeHexString(c, "1d0627e94172c9d02d3d71ba39e35c79393c55b797575a6e4249bbff8618d5e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d07ac1b2a33fe514e04941c244ca1755a59adaebd6880331728dab83f978bb4e"),
			decodeHexString(c, "74f46be664a44b27dec26cb0c889fe87d5f0e43cd790616fa0a79f875629a57d"),
		},
		expected: decodeHexString(c, "5752817dff8a947aa14d632862f2b83bd6dc862815e461b4bed109e49419912cd0a129e15646d9ea18be1ea9564930cbd499ec7bbc1526d73350117ea036e97482e31ea189da754e9a3248fd0657885b1bb9fa3c8e9095130e7173d41728defed97438597fde676623bd1d4fddd30cf5e5b2054dd2031300694e6a05d5adfdd1"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_12(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "3c4022358cbffdf5f462bbe4bac6cd55f544a4738aa7efcb5c0ffb11e759a3b1"),
		nonce:           decodeHexString(c, "53651bd2bd2bb9041846457c47e0ca53"),
		personalization: decodeHexString(c, "45416521e2e852298c341b02ffc9e7ecaf0ef5a1548dfe56f33e6b6300edadd2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d3b202d046f032ff11cbcfa59a549920f3a673f73b1fd1de8a4143f73922fed5"),
			decodeHexString(c, "10c480b05092b16bcbb354cfc0933ca36f281880d5d10b58a9679b5d3853f0aa"),
		},
		expected: decodeHexString(c, "02f4e3c8c123438863d569a91257e9aaa67eca364ce32fde7ebbb3e810caddd76b205aec1f067842f54536fa61328c6d4341985a1cfac6151f63c47c198c5065e615ccaf33b712305c78876d2af1cdc0fa552dad953f67e25a975d8889977b1befccc4cff20061f76bf023fcf578bb2dcb1ea044bd53826d11838c3500d29790"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_13(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "8f2654e05afd29355a758443de6140fd3eebddbcb4bd09c85c83c8a737d2963d"),
		nonce:           decodeHexString(c, "f2d38dadd537090a398a811e8534713b"),
		personalization: decodeHexString(c, "f8eaf956faf312265e85b66ddd9741254f2ac3437690b4e583201d93565771e8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5250dcc23357fe76b2e7995926545350a8b9c95787b498c98762b0cccfa84a64"),
			decodeHexString(c, "bd67d109db303aec39cc14f6133359c89035991bf43a3e97b1ad0a3c7dc63190"),
		},
		expected: decodeHexString(c, "c02bf26819037d80eddd5749aba29c9de7d05891f541239c14f935a49ac56a3d3280291d3726ab471841ab8f7e3f5e785a94b23e057dae900508da24f6e007c6f783c08f6ab7de49ef637d1812ac822a4c0c84616e509121d902bec2e3c4f6626979724f2b0cd2ec3f7b44522345e56699ca3ba701a6b9c4bb0a7836fe161845"),
	})
}

func (s *drbgSuite) TestHashGenerate47_SHA256_14(c *C) {
	s.testHashGenerate47_SHA256(c, &testData{
		entropyInput:    decodeHexString(c, "708f5c7e10d56c30456e9e3f5869a95a051cf7cf107708c40cccb801a3a7636d"),
		nonce:           decodeHexString(c, "bac755e701b1fdd170dc92eb0f12bd4b"),
		personalization: decodeHexString(c, "f1db3acd73914a62bca9a5ce3497b1b4da12b29cee7dc4781d7caddf67e45f2c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "228522e58e65d50dfd176e8ff1749faa70fc2c82eda25b0748ddc5d41fd71be5"),
			decodeHexString(c, "7af60c47b4cd146a39887c9b812a1dd814d74c398609bbbfb57e73da9caff57a"),
		},
		expected: decodeHexString(c, "9528c88f0aea3fc03bb8a9061e159a06d78a2a654408808aa4d0e73ab1a51e5aa85e8bcae72d34784ff6f513193e183d556ddac5675314f2b5cfe392d1526056afe32d7c03e09ba2bdf3b10e228b0f600a61cccd9e7bf14dccf13b16a838e60909785307e6905d510d9888eaab169fa601558fc952aa8559d270ecd386d7fbd7"),
	})
}

func (s *drbgSuite) testHashGenerate49_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate49_SHA384_0(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "88e60bdc0216ffda724d75a78929a362e6d15ec340f4cb52822660da777e5420"),
		nonce:           decodeHexString(c, "38643e37dd376ba886262ae8b7130d93"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "78860ac12d6f1779bd54383ec65f2594ae87f290a3fa3df29f11aba212ef469f"),
			decodeHexString(c, "a074df12db9ecb372949dc73a02a7cafca80440824b8e6ccdb0cfa817c89fe23"),
		},
		expected: decodeHexString(c, "56b45cdf36fb6d47cd26b8e6f02677ba42cf43dea896ddb9e9e724a741e4112df6d396dbcd47672c6f85f9b2aa672645f6e0cb01ea13609fbbcd16978d741357f3e7211c07ca90e42b5639cb5e3227b549972a6a7ae5602f5b400de64c0a578ac59a133b7ebd97febf50002b3317b7b7d02f664d1e1254ef3c5c7043fe0bb7cc0ec20fec6b908ce697dd084a4c21fd1327014f95ce5f1842e07f69691c6d978a0a10c645827553045c7b54e22d38a17b5b0ed491b1b65505ab2be58940cc0d6a"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_1(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "039742435f3781b50364bbb02f1d5be7a943aeb672fea3086f64981e03ee9914"),
		nonce:           decodeHexString(c, "cae0b79fb64a8fe3762e1959d1926a61"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f65ef033dec80726a302f5131a2062fe521dd1f2e78c77c68409cda3637e428e"),
			decodeHexString(c, "ee22d109cbd742cfc29bf70e24a4a4654e011728e72d5bc6a208986448cf8510"),
		},
		expected: decodeHexString(c, "619e0cc67d3caff375b4686f913178dc49a357f632b383b020ddf3e3bee64e1869678284e24b15cd367d0d0f3803b131cb5b3fdedbabafd65487e026e6557cb6e3e0269dfa1fedf5f84acda609defa95309fba8d43c9b68b9bb4cdcb52f8ceb1533a4125282ed69df3913529682a402bf4f896b890c5f13e9cfd9de36aa0d3914f50ac1445f3c0cb491978443a9d64c00f582d4879fdca89a1958e6fa6ff49ee0ce3070b25202de9a482a871abfbb579eb33367c78a3b7c2f643246e01042764"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_2(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "61ff07cdda8bd6aa9b3c7c16c9a3e1cbcd17511096853c7c982b433879517ce7"),
		nonce:           decodeHexString(c, "8b017ca23dcfd6ec887b7a4a25bf56ac"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "280967d19ba7a145e9954fd7a95c71745e6915dc0193351b213db508b864f210"),
			decodeHexString(c, "9740369c9166c6c8a37dd78f15cbdd1caefdaff34c11bad2c4fca926f349e513"),
		},
		expected: decodeHexString(c, "c0c980b883af16003f9713ff2f362059fd213bd9c39998e0fc3c2327c6c8bb89aea75e8830ca8f379156824650de3731a9942dcfbe46b65985e52aba8798ba6eb1ea85cc559f2a106a6f8aa82d4bbfe2d37cdd0a1a5dc22cd9267029b00eca99dc20129b6faaaa7b066d3e06d66993f91091117552a41fe615c3ce025aed44a8bbc994de6eaec33f6b3f62b343d3c27b54ad78ba833d92c0c376117e4900f97bda6037c445ebdc370d78e335cda3884d1b78663f172610880f56bcb4021bce65"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_3(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "133897c5d21d1486736de5a9ea7c56cb9657baa215bb7485d5762ba114d13252"),
		nonce:           decodeHexString(c, "ca46dc46d97577e4b105a4c3d9e2cc3b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c2315115ae67ca3734a4709ffbe6dea36644f07a5c3108f22f2c9ed00d0037c"),
			decodeHexString(c, "1a267eac7ea6c2419b5fb175254a307e388aed2d91d26086dac65edbd4ef3edc"),
		},
		expected: decodeHexString(c, "787937789e810e5bb3bf99274dfaeba0155f6671fe9aa6d7044f8d8e6d2e1ca71c3ea087412c7566f56240d34ead516c222d0f07e0b8922a3614ddd4307d29d76e05340c86934db19982c29bce0196c7ebdd7824827df114cfb0ccafe884d4fe4e5d4dd6b5bc50dfeaa95cc3db7e20bd6823aac27b7cd329daa149eead3443878030453ba15e992da7146a04dcd0707cea0449ad6fdd5110c71e68ccc639d92308b3fca5c32fb5ac8ac74f0e895e703ff5036955805b4b64bfc3064a13d3cc13"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_4(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cc4017a405dad4a7a8dfec1fca936e216eaf449284a21030720dd9dbdd11a829"),
		nonce:           decodeHexString(c, "cb23d09e086ea3388c18b99fc0942b09"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1dc3f63073d70e2712b59a8ffd341a949ffa834c8d5bd504a70cc159dda7cdca"),
			decodeHexString(c, "3d7cc17df61bdbddaf7f7370d8d0e27b4ed7fe01c29fbe4cb356a453cb86bd80"),
		},
		expected: decodeHexString(c, "2e0193b4efa8599c01493712126e9858538fd094e063e775020a0b9f0b8863a048ed9a5bc31fe0504ae8ccd4c69b2fa74619e19cad595817dd8599b4cc59f586e4bd6a1b09b7500690348a002277877a43e1b240837f89b12cb2a8e630375a18af8571dbe8ea61f5261f747b5ce10ba48582943f60facfc37bd2b30d00f1fa9482d793da6119c2740c12f9954dcb93edf97e0c759f600d4ee30bf66bbfdd58831a882d871f2e0f75bb387e0466cc5960f349cf842b1f74d055025546dd3646aa"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_5(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d7faa4176cbbfe084fb4a621f7dc5833a5822e5e91357bcd271f42a12b40bf00"),
		nonce:           decodeHexString(c, "95c3bcc58d1e8d6343271ac68ab83133"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb9fd2644cb3592492bc41b9cafa676f1ae2ba415f782beba264f4c5f7929885"),
			decodeHexString(c, "c3612a530b3c6dec171c065a5c9e8733640d2d89b57cdb881727d0ada35df35e"),
		},
		expected: decodeHexString(c, "a4fa57a5ec0bd703ca2d2331096595f5950908060b78173c882c7a075cd9f55eca67df781bfc8916be366c9110f1394f47b573c6febdd652c69aab60b651d9ac2f466544f8e463d14f9b727f81f23a5adb83c9aa92da30bb620e0238a56188a42bc4d06c07d9fa3a0a0f123f808247416bd326c42b7414b615eae907119763c4aab18e130741447747964b6d0d72e881597901dc9b4fe08f3e7700dfc243dc9633765f85b088c1e71fbea816b523905003bdf5a4e4aacb6f3454c07d7ee63b6a"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_6(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "affa831c6d28648f3c3b8920be71f02326b089bf1872bacb2955bb81e900791d"),
		nonce:           decodeHexString(c, "6fb415aab2bc9ab49239180d06f88350"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "22afeb7c0744e21e6272c38025502de4c767077b12616b5803e77ca3a61e9810"),
			decodeHexString(c, "5eeafbe50d479be20ddecff20225b5c82dc4db3b64bafbd0f7e473decc81471f"),
		},
		expected: decodeHexString(c, "76911a7de8ebc80c8047a902362191ab8a2d63e3e022e318db7279377653009ed9c6addc0bfde08245d4f10c5fc25b58223b7dd6b951ef83aaf259b353c1537e2aa3c49d3ea5e9c8431c091e19294eaafcf91164e61d5d06944b3e14ec3fb9560722f5e6708152355abc4268eaf77f13155d3bce2360e6c8dca56df85c2f90fb3699b86c3e10782dddb0fb658366355aaccee6c70d1a49240fd3a7bb0d74d47a8caba3e508535e6424dcba812b3ca2ee09f91fc74af7b22a877369843c2526bf"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_7(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "14e71204bf09aee3e2e588d6d34f4302a4942a67e3b4f92d86401813839bcabd"),
		nonce:           decodeHexString(c, "94e6df08a79317fb7c7744a5e56b983f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff0527ac23da576c37a5669b91198c6b553998b17da665e424060f6c4908cc4d"),
			decodeHexString(c, "c72a465515451bf1a45adf1e7c772aebb62f718c4ac5203f68499518d607032c"),
		},
		expected: decodeHexString(c, "9259e4b645b3323d6045e25684349c0fb09c5abe48c9ca7d847dfc3f38930c55e68fd580951921c6322ccee36030ba32b3f72e118d54d28551fc7cb4a88da6158bfc4838ba96dc6e491b1023a7171fd9798a8b507bc615d2f7c3f99f27693ab777e05cc98518095625eae58930936e1423d3076e38eebeddaeb9c643905ba3ec3c20ad7fe7f7bfe821912180b1924d0a05f7dee45ab4a3bdd334eacbd27e6d8dc96db706d6bc593f9ed16d111c86060028f9ddfe692f2d4152be33db7e2e01d3"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_8(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0b2a266c50a0c6454bee0f46cd186906809bf0c4cc753369bf31a57ada6c0a8c"),
		nonce:           decodeHexString(c, "4bf252fc2a6c71f47bd6d8fe5558fd49"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "94adffa25a5deeaf363622be8dcf228586d91a221d71a933d7121eaf639f58d0"),
			decodeHexString(c, "f7247ff324010fdb00c8ae78e4127dfc6e9f4c2fdec670560d269b9f5e0ba91c"),
		},
		expected: decodeHexString(c, "4158fd28933a76e4b33bded70b1183988c6fd4a7eda1bbe9010c2c65d286c17c4576853d7bc05549e5fab44dd1c139c2483cc1217bcc717091161552e1e7656268f62fe5772a3f20133d89fdeaa6f235fdf6add1f91cccace65ab0e053c1016546addac1659993983f527bd5f99e246ed46fe9bceb669ec80e786c22fd2c0b79b3ea2218bafa09011120491d2eaa61896d80ae856ed5b1d880251fad58e7d0a3643a7c903931d736eed3a91a4af8b1c2eecc3351a3eade3f8d65df762b97f631"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_9(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "30587705218a4f096c22e07b68b4bc87b59809a11805df1559063684711cdb60"),
		nonce:           decodeHexString(c, "8ce54736359b9ffed924fceea9268a2e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9dad957eb776d28017d624353546c6a83471abf8e7e4a7f0564d4bcadabfd50c"),
			decodeHexString(c, "7aee53efc446c7c50b4fafec9eccea1d74d39dbc43f8a803e963e92dd80b1f55"),
		},
		expected: decodeHexString(c, "227d7243267b50a739cff7eb482e0ca9bad3d51dc6f340ba9babdd1b62bfac3681caa81c50209b7efad8b3dd00d687200b4c8794f0ba484d1a1eb153190e2cc10cf05531aad40ed7407d9dc64b6af32f7effbf09e837cca892e81b9ba2c03b631693005d98dba3db367cdb1b46bc07afa179afad5d6dff705d2d7a6878a998603e91dcc23f634994464292682eb8e06d6089068a0e4c265cbb2fb437eedca92acd3ea823c6c29d37314f126eb9dd54269d9020c7591f6cd53b2108d19c535c9a"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_10(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d759c8de12fd5e45793bf14603249a9f4d57ccb356e335986528fe46a9c084eb"),
		nonce:           decodeHexString(c, "0f476e3015befa6ea741b15291b62ece"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "14272338e0cf017bd43565a9bd4437e2c9f2881dd99f97d4f9211828aa7e3daa"),
			decodeHexString(c, "dbcf24ed6f4486dcb4c536dec4efc9c2089bf505c935e31763925469a7c6de3f"),
		},
		expected: decodeHexString(c, "c508302eadd6baabd6531f8a51fed008d3a36821bbf19787debaf44327a71bc63694e30cb1dce8b21328ff170e8c902f10f754f827c59f2acd032bbc9a7427e308caeda7ed19375d7171498a7562cb5f9354b0c7b0b67d96c3ff645323b65d6720b52f48adcabc846d16e99f11339b1db6506229efd588e9ddb77df8e3c4c700d2ddbd88c02b9fb1fc9da30ebad6a7566ef8e494dce5036480bda81736dd70cb71945757e3e0a557be25e2c61a091388ee373000f86d20f62bf3f6d73f70baab"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_11(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a6d633b526904a14a768167eaa43878f3e90c0bcdd8b29f533fc1e022808b550"),
		nonce:           decodeHexString(c, "fee06f56bc7eb905bea1a88b70a70533"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1de361bfa968b6153d6bb4bf74a91fce6170cbf0147c6ab8d8dddb30f585e542"),
			decodeHexString(c, "e3351eda060f18fa13a561b117e95cf6a6c614d8ccd2a75593f1b452ac04cd03"),
		},
		expected: decodeHexString(c, "a02459823e3848982ddc13580f6bb232095d4f1d333c307ea642185ee4b08ec362dde9f091ffbabd16563ab71cb726f5c14357fd28ff82e17121c9ec5bfe652d0abaadfdc04e087e986f0788484e810a3847e3b4583ac6b1c83526dfc2002d3a8a9b3ca40fb032a4e6c0e90f846192107104c01191bf071092f07c98078e916fad6e6167d2abf465e300b555eacb7c0b461e57dc6d28ccad40788ea884104b9c491a086e482dfa9ce635d5a055acd459bbd5541e12f44913fb75548f51c4f179"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_12(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e1a0e3963cabc7bc2d060a9fefcd18d4807df4ea44576e509a7407197b2e7d6a"),
		nonce:           decodeHexString(c, "ff3c19e05bba77254c651add6ff6a684"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2bb78f1d58462bb8bca712c6318e45ab0795f50af86032f849b829a1f5589846"),
			decodeHexString(c, "343524b558f80f05f1dde3b56cc0b1480e5eb2be09414d95550b6e6deb87111f"),
		},
		expected: decodeHexString(c, "2dfb951274800f418e9f9ce49eba3158bae66419598e6de45f8c0c7ad9d209a4d9c62b981ad67a89f86d9944845c416aaf097437fee3488e0b270174786985c67075bc11c02ba6631fed1005b291fa468aba902f131558c64516b6b85b3f56dc1835b5939ca194d9e808f30bd4c59502bd7a03609d7d5d52c8e266f25597dda0a73ef3180ac4eaf9ce3d9c95181cde3e7b88b064ff28c423219540eaed1a97dd88a91dae7d9e4419f695155c3da4819e92347559d0744697eb9f711ef83c4e2b"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_13(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "93e60c6b2f81642e04080231cb60f5a82dda1d2c29abec3d24c16aca31c3e7c5"),
		nonce:           decodeHexString(c, "627e420471fcd82c381e4eeea2b3b15b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "59bce0170d87db5046f4b325f9afe2d4f68a8ca75d724cba772ef8379be25337"),
			decodeHexString(c, "c52e68493a8fd1b206a89728fb35bd37859b1d6a413b35513b07456c7c74e6e5"),
		},
		expected: decodeHexString(c, "f5d662bfbd1ec6e7ebb7c14b628e0aec1b814da4be26d48e5f390f20b0dc3c87b7189c3d8a5a417f3d00f7df891d86c904cbb7090cc02ba034e2e7fc5aa0d264a12e9bf8d9268efef72acedb1dc24ea59e6393f1a249a9f90e70ab94a9d810e92d93c726eaad2d1fb44fc583acdd0f9ad1bc615498451a130bca5e65a43d7da5ca15252587f3b7552b29f9fe4e101923c697fbe8e8a7c697fa00dfa9b701019281252413a8b00c4045ecc3c4bc48074c2603361493ad09c2fdb1aa9c4b500fdb"),
	})
}

func (s *drbgSuite) TestHashGenerate49_SHA384_14(c *C) {
	s.testHashGenerate49_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0d9baf7e4622d9637d858d5a31d9de2cb23b7b06101f7d881a6278d526495f18"),
		nonce:           decodeHexString(c, "1ba76b79471a3f330931e4e67a066cde"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "25d2ad9eecd3bb8bb60769942abd16edf0ba777f2541a4b0e80fdd70fc2d26c4"),
			decodeHexString(c, "608c5789b5a2a6c11c7df095be8c81968c0bdbc6296026ab65195bdc5a297366"),
		},
		expected: decodeHexString(c, "e1c600294a86393b7067b6e77ca83e68d28a6b76f6f81007183be65a50fd2f1adf6eec5a64cc753c5bd0ebc12387bde8c6ec10e6ec7e603f09d4ae624cc5423b5bd53da4f0af064e14a7d176369f1726fdcf6468ee15ffd7db3be48d196601506c71e2f443a768e03ebc35245d254bb87a392508ab07c95bce84ba81058ca1545289c9d8142aa0858c9cd5ba54ee2bb75cebb5b74e0d099ee458752d11ed70122aed1254609a715ddf2720798c9194ae4a7424e2c518ce7a8277ec79da86263a"),
	})
}

func (s *drbgSuite) testHashGenerate51_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate51_SHA384_0(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2e154070573312bc5ea0fa00e589b85dd559797a47c7e5ac731fea50531771a1"),
		nonce:           decodeHexString(c, "8443504d05af55a2c5091f077b1edf22"),
		personalization: decodeHexString(c, "35679c78e75c78bd6eff67b7d62a9fef1fad39a049debd1efb09be9acc62260d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f4bf0561b3e91f0eab5a801388b04b43eee57887d43516a1f332c7c503ab53d6"),
			decodeHexString(c, "77371fdee3485a12e55d5029d70b9536aabbb28ac1ef9ca761633bec9058bc04"),
		},
		expected: decodeHexString(c, "c6a7ee27596c28ed32d6d0a3dc5b7255448c873b2246d2bd5dbecb1a3d32de95ecd780e3e61974a84b374a1c0b32258ef8dd41371c5af762aaec6555fd1359efa5051f24bfdbadf9be8c101198fbf6fa97ef58c1ab2865a913f1b1e08019bb25f0e17ff5f7543cc1fd35e7baa042916d12d29ac6a52202082f4224a45932772dec149a34da4b3912c30903b7681e89e1530c7d8569eef281d165ea99da653df0728c74c809dc4a0ec8b754193ccfef2ab725db8890f84b1aa19bed96ed1c6927"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_1(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "56aa34e25431cb55b28b35d5d2171dcbf5109948748e69dfa8832987f43b73b9"),
		nonce:           decodeHexString(c, "5336e88c494dfe9674e304e12350ee34"),
		personalization: decodeHexString(c, "f73605cf71020175a225019df4525f7f11d130087a4e19cdda01c80c55928db8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f694bf8a86e3dba03cda34dc7bbdfa372d576ac4c6d19c79f8c49e122403a6d"),
			decodeHexString(c, "7f78f38a570313528857ac213f56cf7afa8fb42f282ca57646c1a4764f7ac28c"),
		},
		expected: decodeHexString(c, "50618916906cfed37d51ea1fc6c6f31f8e7c2390bc7fd0f6c55f4421435fe23b81c1f08e401cea7b1c9432cc592bf6161119ef278d4e3f629a76c4c4a5722a0a813c6d47dbadb431299372a38ffe35eb413097fde80a8786b4e875871784f533162335875432451538b0132c4b0dfb557d9aa4d9504c667014aaf0cda557b462b46fdcb6fafc90c01ff4f216630f22976b9ede9f7cfc31e124929571147d842363b5dfe4c3876504178200f48e8cd549abd90520baabda136c3cf76936ac8b8f"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_2(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9df99ed4bbf654ee42718bfdf5d756b59096275a8407fec46d212c844068d9c2"),
		nonce:           decodeHexString(c, "24f3efba4c5dd500ba7b346071cbd588"),
		personalization: decodeHexString(c, "d8192cd5da58cd2ce7eb2a871fea1bb725c889bd4a0dd2d4ad9871ddd53335e9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "771d33e918623c8519df44680f8357c4c12622cf02c1dd5b00721aa22e4b65b7"),
			decodeHexString(c, "4b8c08f8b829afdfa9fcf3109fab4a0fa3c32f13b3f19fb60c6087f73eee802c"),
		},
		expected: decodeHexString(c, "127a9dd1892b185e9fe850883e9d4e1288c8e3450b27e8ee217de51130046bc86a2c73a72c3f3fb325a85292e844d9d9a9fba380553ee18f451897d6ff898398d1b7223e187864813e117c8bd07b788d6ca3d0a9cad0ce3473d6ffa65612ce0e75dbe5f26484bd7839c80d404dac15bd204e8ab26a3bfdd0c7989e028aab9998c31cbbe238b4681cc6461c6941dfa32bebbbf0869f1f3922f2b1c453a2d0ad8316bc41c9eb5305b7a8fcaa287dd4e6875a248e5969aa84d29fd9ff5ce0477712"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_3(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "81360c806d49db96f2c53347efe920fda660f47c42a505478374b880181f79ab"),
		nonce:           decodeHexString(c, "f4fcd0443aa830028d028b9a4e1958d2"),
		personalization: decodeHexString(c, "a89a326ef0794e50f751d630da7a20c3462d73fab81b0d59a9a3f93397a367f9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a29fbb07b42e6ce50b38851b703e61e5852df006859f64a5b80703c519b97513"),
			decodeHexString(c, "1ffd978e3f471d853bad3f20b4e65e50dc33bccfc29c990eb1e19024bf352af0"),
		},
		expected: decodeHexString(c, "9343cbc5f389ee33e2ef49962ea461a3fae44771774e4663ca8aacfc2df341cf3c2de3b7ce9e1820ae0aa3100c0fcc80fd04efd729f87ec0c2835c547906f6605c8653ab8435165601c0bed7d5442bd434d1dfcec9e99bf7a1820cc9ec01372e548fc6d5a11aa4229382ecab6e537792cf8292291f903c1e3f115a837fa15dda971a116989eb6ca049bbe5fdad94e2f4575ac09ee65823b7f659dacfb8d6c1801ec1529961b1774205996ca89be7dd6c8599ad47a09bc2b0e340ad64a6653b39"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_4(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b438ee94e419abf4a9b26171654b8acf3f023f1902df040e1ff868b3ebec9cf9"),
		nonce:           decodeHexString(c, "a1e665d173905eb64654d3fe4a4a8a39"),
		personalization: decodeHexString(c, "28e523314338cbd3341a69deacd32220ff10ee1693cb4f548c9b58d2366591b8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "781fd50e7ce600e3cc2bbe5e39ee3e625819752de5150d2655500701ebbd3cf0"),
			decodeHexString(c, "3d1fd74618631f5d2ce8a36f92fca951f68dddc7dcbaeb557e15a85c5de19342"),
		},
		expected: decodeHexString(c, "205920cbec20c34acc1d3c7e37c27de9a525d08528be14b3081e2fe5faa8e8ce0b96b3869f967e1c22c1bf66ea29971dec903b26a8ff6f1d72bff095bdc2d44d8964128af4ea8c5a3a45cb82b04e984f2a25160715e5d90b22ca19c06f4299f564263e35fe4d4e0829341c85b70cf8928e09810fd1007af84df5cf719348427b0903de0ebf83a9a0d70b657bfe22dac66abbae44d7012f9ed94a7fa09db9b465898e322c30a91bc428ea2a8a34ef8ee037831fbbf8bfe54cdbd0ba8f469cd0e7"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_5(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "573791109e5b80f450996f5c043878ce92e6850028759569f80a685c5c36b8ff"),
		nonce:           decodeHexString(c, "69589107861c79db2ce75a44a992fe8e"),
		personalization: decodeHexString(c, "2a5300534308cebfccdf895813e5abda83d744f98f14a89fb98c0e5d72132167"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3b7f239900f508fce28dabd192aaae0c1c0c24b44f392cd562636d54c569d5ff"),
			decodeHexString(c, "62860d4da851a1049c3b5765e0e69febbcc43b4cd70c91cade3ab85f17df608f"),
		},
		expected: decodeHexString(c, "81ba3e144d8b6fc7c451cbde078a59b5d8a467bc37db6b9426568a58fffd7abf87d574921519c8600fae27ef8b76a15b8ddcb5e97a828e1063c317646e463ed37fd1057ad0b395c4d9e6f3d3dcabaf9fa78826df6f906a88d85bd6f2a87879dd2351cab1abf1d5978c713751a0c2223177a1f8ca255297c71126c9ec81aaac49034499b6acd230385c944aaab76dcf58d76d602c1d5ce5fd96d6d8c332140eb7d764e5345fe95d40186b15a0e1bf1af89b396f56b571a19b988fbfcc61f764e6"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_6(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5082ac80cd3af3ccaaed9d107162fe84454519d4bce78cf34af410ebfee2ef3f"),
		nonce:           decodeHexString(c, "36b63e1c771cd2e5af376eb2161fd374"),
		personalization: decodeHexString(c, "2f094d73456b3831f8b87a4da447996131fc8e1dfc57177badbd2dd6ccfbb3a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a243f0204f0a8856967d59fb345598b63bf04eaddb1d11ef37d1241562f6933d"),
			decodeHexString(c, "3080f43610f9d3543cd7326b23b5a156406eada28ba975e534d39f89b9d70478"),
		},
		expected: decodeHexString(c, "2fd543b2dbd38cec3507c18f07515d07d67be9c0b52fe5b5710ff3d7e7be8fb79386c93cc0030847e813ab7ee8c7c3d95228bf903f6fbfd8efd428bb84b2d1f4ee038ec208c2474a63b3ab9f26afd11d5b10cfe8e6ee1abd43329aae940668c680953842b4943a69e4271ebc991575058178cc137c3035d1211d815859781b5065b8687c4ff0430c40dacedf7777d4433a6bebd3ddb6ee3967511186fa108fdad428d98274388babfea5c44d241c7a2acb9aadc5cafbbcc9a302d76bd86d6c14"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_7(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1be0d9f203502eeec2ba0eab43afa0772c08538a27f25a1072c522e7cd5924c9"),
		nonce:           decodeHexString(c, "b5cb88da2dd02fac6019532608e078b0"),
		personalization: decodeHexString(c, "4ed471e5ca7930e9d5bfe3260a3090183c87fbd083c81c85b27912039d8177e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "42cf078e22f1bd0096c9f246e8cd2208a3175d2ff95b478691c05d97b2793a29"),
			decodeHexString(c, "7fa2610dfe9cc13ebf33b05e8131ed132f4f461885d141848f5c5cb0f3182296"),
		},
		expected: decodeHexString(c, "e4e9363ac7bc2d89459b9b396fbe5a76ec1718b7492932163d37cf343ed6e76dd36ecc24c18e061ad66a20c7b701ecbe5ae2786944887aeeba344768caeff8c913c8100d5bec0ac28d6c820bcab2727c4981d8214896ec8656642db09968b26a465c283bd68f592fcbc76b9cf25d5df57fb050a7e13ffced7354abb9c9807fe9955894b2200f97aa9aae645ae16f4e971efba4302157b073ffc2f127027e0fe8e7f9e7bf3f141fad60a1b23a584b8315eea13242f27f8727aed8c48b90de8278"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_8(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1bd9b187964cffe0655f1eaf6fcc324b5d14a33411a82f2c3140c68efcec5451"),
		nonce:           decodeHexString(c, "29c20377bb7d252c690dec0c909a054d"),
		personalization: decodeHexString(c, "bbf4bab9dc99aec01423f0bdb5d166e34fed5aafa78ebc5b1b8d4b4f994ba169"),
		additionalInput: [2][]byte{
			decodeHexString(c, "77db5cbf6576699ffe42e4eb5ec799acdf9bfdd9232aaf8819c2832b2aa0add9"),
			decodeHexString(c, "23be6002c22f6f0b8d0a4f0c0f36b939e7d4cfdcfb68ce5ec8f2b929c32a85cd"),
		},
		expected: decodeHexString(c, "59e5c468ce27d689f56d99f528765b38932706d0c858ed9efc4d4e4d4e159ea42b230b5537d39723c3b650b15afc20d80eec152b3911dde83bd2da7cf806415b7ead8b7d39573e07fa6c41a60c9f2ece70e71da8e0b8e88ebf951bf04f058973739360f0b56f9a723dc72a36efef2efa5cc2d2cbbf1d5839b8a64569132ec41cfd6eb10508e6e32eda400141b966008e4badca0db252ebbb8da0074ba27b01166e2d79b96ec20b117d2e25115b4ae90ab2fa6af6cd16cd880a2c35e308790e46"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_9(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "658b37da967f57c093f07ef201b433b5606204e6cb12b843a1f30f2495357b7e"),
		nonce:           decodeHexString(c, "0bf0d51ab3318fd208609ff11036ee6a"),
		personalization: decodeHexString(c, "ecab60ddd0c61d2579c2fff0f67aca10d3cc45cffdc256134a504b668c2ff81f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff38fa79a7a410a992388b6b94c37bffb6349362bbe399467f1774b2e81fc176"),
			decodeHexString(c, "d5d4a4491ca00893f1d4a8d3ef3067de4b5299c68bdcc9eda341804801157a9f"),
		},
		expected: decodeHexString(c, "ca0343e7b1924562c56fddc5c29d126017a7213f6d8fc30c5fa97a4672187425f1639660da96f29d0c33ecce1735b95eaeedb54219fc1ca028d31fde7c1cd40bf88dc41ec6a549dc0c08d86d2ac553ecc9f3c6aa1a1b8e4f1313197c14bdb33e53b6fdb4301171520021dc2c9818f4388ee5cb82ce1e4de847ee7ba263bdf78d8d9ee7a55f301b2277ab846bba7897dfd632d17125edad4329d52b0d6bcad53c654aa2424601c604be69dca7f6c8585ad56c9c3c35ccb2e015022b7c11b63e72"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_10(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6e40520c653ac0b72294ff90e30bc026f5e0e5e322a33820177d3834697d8803"),
		nonce:           decodeHexString(c, "4b18ee04649d5134fa426a5bb453053a"),
		personalization: decodeHexString(c, "dad9b3448fab084661daf4a775dec7c3b4199fcab85108056d862e4d0b04e955"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c56b5f7cbc33cdd88969b6146e0feade007b22eefcc6dc63ac60b7ea3770e6b0"),
			decodeHexString(c, "966836832a93c8ad45cf032d525a6706bdd7c48715948ae0055672b885e34bed"),
		},
		expected: decodeHexString(c, "d9a4a53b5be1838297f8ad604dd18cb660ee1b724d1e7a4ab3ba4b1d669cbe02f1d55b6623d9116499e4a64d3ce40eac2ef009f60df52eacd5c5b9378b4191d92b4f9efdbfaf14033fded7efc64ba7418791e86b76c56ce768f041f9cbaea360584631dd72a453cf79ce07f72478bc51bb7024e6b60610076928d4c992ec073420e7ec6a3dc7436a27ceb3bd981cb176b4b77888070cd203227a459c97ebf79b514be290cc8f174d7d62041a3b602fdf86c8c45160dcfe661713104a12a0a43a"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_11(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "09244932ecc3befaaf0bbd5c5997419ce657b15870778508a8f8ae8b73bde52e"),
		nonce:           decodeHexString(c, "9157244f767efd95f6a3359eee1291e0"),
		personalization: decodeHexString(c, "db358320a8fbe8f021e8b1d6e7538c31ca0a8b1d82405b800f92fe17c08877a5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a17ea8d6bf91d97e590578e20223a130b3b2fcbebb85d4cc3325da882c009ff8"),
			decodeHexString(c, "ed9670361a39daf1163f8dba4f47d07ed5dd77e341901994b829814942a0c04a"),
		},
		expected: decodeHexString(c, "e89fb75235c0528a58429a00a56ab0d9e072a8b909d35c01ecb2c37ee0f969d4edd3d6ef009ec0e56aa3922ad615e28bd1c2217d16d7e50742af212b99a7909d9249df4d822d0489ed2115c3b8c44087b85f848fb0b62de4e53ea81e12c8f4afeb2c503f6d7816c594f00263cbf83f98ca0677e1ad99d93e57433f0e774ce1bdf4bdd41bfde44614d1f9eb7f42bd125470b3f9c8b0a498a65dfd0d076ced8ff6c3a2ff412076ca3392d94d250cbedc849af19e450ca4aa07beb8a9d14c47153a"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_12(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d0379fa4eeae6c42e1f88627c96814df67257676734a8bbdafa90102a36a7893"),
		nonce:           decodeHexString(c, "3bdabed423e71d7667c08c699bc13e73"),
		personalization: decodeHexString(c, "3d4059d31c5fb99017cd60bb7cc33e012eb78b854667c3099e82034455a25e49"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0ef949be1899fafa522942480321712450546354ea74fe7a2aa711846a3dc9ec"),
			decodeHexString(c, "c0012dc814f413de90a2963cffaaf8a15443ea21f539af12b0970277c6c906cc"),
		},
		expected: decodeHexString(c, "4491950b4b0cd996aa6be99c7516b7ce2b1261d7603b8b0fbe18607c5aec09f957884ae5f31da8eff1d19c4d7a22e2e3f02649e69464e788e898b4345d8e9c2ae3a1441cdbe678034dbc2a6254b4a01edf0563275db80feb638e05c2cb7374af732ca6ec426f1e5bc7fb73611a42321c5d811958e2ad75ee8bb49588af35991c646396f8d322525a354728a1b93dccb507fe6fc68fd2e35660ca18faad7e30e8878b019830a05dd3b8fb3ac7da288fae8343fcf22593a10146f91a55e6d8c9f3"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_13(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2636f178a386017608f098c7fd3d8baa39c7174bc566bf9d5424abfe5e50332f"),
		nonce:           decodeHexString(c, "0db8ea2daa6d04fc79778832f414a860"),
		personalization: decodeHexString(c, "a97e80d4eb0facc482498bc0af7159a39c00eb0bb59bab969f109277a0173936"),
		additionalInput: [2][]byte{
			decodeHexString(c, "718c2b3a8b8ec53bd2d3a7693e110ef86881270c96635b3946e7b2794da96251"),
			decodeHexString(c, "94a197e66302e871d2fcc5ef3a9e4c1118dcdf1f12de3d3ae22cc8f1749cb286"),
		},
		expected: decodeHexString(c, "6976bb84ceda5248cb5702cb9c6c0d3706b7961e9932ca37646ea3fde76e8eec760ca17c89c640f1956ae9b7d06357a2c2fee21dda0592215a0060832e99f5593f8e30b47719673fcf870a2f5c09dd034bc890795905266221b85dc17e54a2e06be6af322e9017198a6bfedcae3924d140001036f3020c04a0799c4599c76b83a6ad6fa110d2d4b6c4d64d57aa9dbd55811dc531f65f21f331bd51d7f3508df1095db9ac9aa2d84deb97566748064ffec59b9eb89716369fa56255474359aacb"),
	})
}

func (s *drbgSuite) TestHashGenerate51_SHA384_14(c *C) {
	s.testHashGenerate51_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "fb1a0b4091757e86f201ca94aaee4dc80c8d1f0653b8f94c6375d4d3e5ef16f8"),
		nonce:           decodeHexString(c, "717570cb86547c1b5c0b719ad04a1aab"),
		personalization: decodeHexString(c, "5793999a1a395eb5acc1bb16c1259cef3244f584a98129709a4e9c5bcee9001c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d81d8c5af9885d1b30d2174429bcc6979bdb2b82e6fd3ccdfe93f36fabf45e3"),
			decodeHexString(c, "c63866629ed771e53d2fe2d5c21e98ebde295c3fc3896fb67279427c61a89eb7"),
		},
		expected: decodeHexString(c, "b369b226dd535dbdab45ff8f13735214f9abe6d11463a44804b838d2932112ce6799341505b7b5bab423a3794c37f383b06be1fe21f5c7da97b333a41fb67908dbeeb2450a3581ef71870c964c976f039ee856fa507e9de948c4c097a64070b23cfa09ab7506a8ec4fc38a38ce21fbee3f3c1ef3ab598f5da202f35b90f422af31688402509c38ac25359409d2b61958390d28ca2d8b5dea99ae26c90978f01d7a482c12e134a81de0bf6c9f39e32a8b597ec7b7a05a805ebc7ce260c381f189"),
	})
}

func (s *drbgSuite) testHashGenerate53_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate53_SHA384_0(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9c92ab8084ce412bd4a5c763b5f4c3365ad5bfbe1c8092fb6da3c8652393882b"),
		nonce:           decodeHexString(c, "d2195e1f57c899b67a6fe60b8b44fde0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c554956d68cdf327f9dfa3fc4485e552077f9ef24a69dcd009e4769ad4716e9"),
			decodeHexString(c, "65ca4e0b75c823f13985f0f9b5a5b4958e6462326c05e2187a09575d71c3606e"),
		},
		expected: decodeHexString(c, "4e909782c00a98ac54089005d1c097bb63ea3ac1fb496a21b6a3cbaf671dbf382d30d3f9d764c84f5cb727ff822e75c555937cab416e9777f53e9d2e70312d007aacfb23b562129d3a1d813192bd39987722c21fa4183494edde0c35ab30f0e0f606afb51f8920f7885641ff61f87c3ca0bd972a37726cebdde6006869955ca84042a69b7091672d6ff7c413819c50d8ae1bb3936723a0a84ec48886739acc7e05885290ba8fa966fb120bc8b5cff0d6fa672bf561c093102de085dd8856f290"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_1(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "419688851d8975ff61be12acc0e4f1b40b63b8b925948196444b49a50020b24d"),
		nonce:           decodeHexString(c, "423b885d9c19a5ea9485e8ae21107eb3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2dfb5083605f674b39ea91089dc5a94bf44d9510e31fa1e75de253049cc7f48a"),
			decodeHexString(c, "f50a59deb68db0f9c1d230558ff4f8e9619c92d56803c63de90ffcf3e6a094b3"),
		},
		expected: decodeHexString(c, "f85fb91e6827ded04a080ff6b198350d0b3e173bb05f6975ceeffe2fcce9ca7fd02022bfbbaa904ea3f23c15723018a3d31804768c87fea70f68ff7869b127ba231667dd304b8ce15984f47c37fc45b1ea17e634f76e4382fb0d5b49b4b4cdb64602df4c1e91b063728da6efd3b056a40ec2d0cbfecb21068a86d02dbc7fe4bc000050dc3702d7cbb4c7544608194047dbcd3ad076dc48b921b633df641c658f2fd14ffac65f28b20cc1755330948eb47d59a5b1c6b43f167846ac191cfd2e18"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_2(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "056e4326d5e8238d2ca40396a987107cccf6d2e178b93e03387114caea9729b2"),
		nonce:           decodeHexString(c, "d674aca5cb260a52570ba1456e3e67ad"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c65f0703585665f9d911130fbb4e2007d089cfee3b349704306e16fc62f396e9"),
			decodeHexString(c, "1c29bd4ac2e279bb09826a8fa1170538ff6335587d7d13744841722b21af28b0"),
		},
		expected: decodeHexString(c, "23de91bf8195e5dcab43dc75ed4c30f8742a391b3abf1a00cec0752e9d92b70645b0c9998ff4b4a0f087fdced4daf48005e25b897b2e730d5191163faee672b31418b40bc99d84b688dbdb076e23983ecda347940ec877e8930620998416204c691cc65a46e879f3183505cb65e486f4a5a8f244bbac42f3ae4dc705fd1255e2fca12cc3050d1156a13f036e49dea77b6b9888e200d9276cd0b4267ef583144dbace60dd02ca139522ca13d75217fa9e1f041cc57e5eb05c82edfc4b8444267e"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_3(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "62434fe9c36ed3a7d5cbd3c01c019575da3013eca715ff2e371628672231e816"),
		nonce:           decodeHexString(c, "e7ce6dac29c8ec7021c076c7c81de966"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "46266c8a159c53c69cdf84d6fe725ba29a9039020625cb2e6b03f1e660082de5"),
			decodeHexString(c, "936116f23970e8874424bc3f4d88ef2c16b165decfd814320dbacd10babdfddc"),
		},
		expected: decodeHexString(c, "a21fb58d30926ae8f8f61639528bc0bd8e6ece00d031692c4f5c7cd31556d4854efd278260268fdd27e610579c01a28777ce183eb855b4e0ffdb59c6b4e5d223d5cfa3e48c6ec64a0c6f415544f3191f59d7f171237e75604e65a0c9b5a3341252da3067a85626170aaed23a5596a7391ffae4f9c3cd9ea8b8fb2097223ed225d8d5b335ed016341a53ff31e727d0015a7f2e76b7d6cd4600eff8bc4c6a40c6452ff336c229528f494686f0cd53a8d08d0ebfb482f730b600ead59000e57d65e"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_4(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a70a1c62ea656d332ae88954662a8f3598f92ef2b2ead334feed6923d6423940"),
		nonce:           decodeHexString(c, "df356a7da8e81dae6dd97ded66487c7f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee9778138589f49fbc301d2bd04bbc5cf16edcc58ea6520cc83cfb1cecfebcb8"),
			decodeHexString(c, "1623dfe328ab24b9fc11b6fbc47ba1f41a65b3ae9c1920279f557adb63f2da49"),
		},
		expected: decodeHexString(c, "1535f4f76ca442d06f883b4c57a64d92662833cc74dc6bca95cdc6958b7632c2b19400c8c9baf27571f346a0021abb3232aed0bb018eeaa2d8803b84c1a3f3957727b04cb9eb988365521fd8aae14bb2ba797be1dfe5a3a0a57bd610785a9a14954e86fed25a354dee0a77e6b9f6ee35be27b66a45236c33cae6101086e593b6b44b44f79881fd674e4ddb638455855b2ca9096ad13d288f02797f1a2ceadaa1760d99d2d348fb6c77a3a0ab26e865f7a25a691d2171bec0f9554cf08cb10cc1"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_5(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b9e8a6f7ebaba074850bc8b75f4ba991956a1c7ffef4d9233c47f3a984cf6e08"),
		nonce:           decodeHexString(c, "dd3085a721fbf3a59b49885decccadd1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "41b3f7a531fddda2e3e9b46fefc1f8ef0cc5e2a7eb3330f70c51369379f537fe"),
			decodeHexString(c, "c7db86a2de326f8476ae906be92f13783d238a4bd81f7e460ebb92df925d7de6"),
		},
		expected: decodeHexString(c, "639390ee12a46e9ee8f520a4a74ec0a2dfdca9d6250186c49efcb58f6aa9174189fe73bd222162529036a7c612ff7d8afc755359d65bf420d191758c4f0ce6728c4748ab703413ab70145d2fcbace4b1a5783d46a9a9c51dfc172127f668102e3695d5861b76fed157529d6948345ece071d8dd32cdd66805edf15cc7f8a03fab38811deaadf5010f75e73cfb3cb80972d1d0c557419f489b3331ba413cf0bca9c84132fe0a06692d7f54006926457535fecae9ee7d4d1851526cd87c342fe8d"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_6(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0e72fae2c0d72c2ffde1f047e4e3c751582301e621b941ae6b1729d3e10367d4"),
		nonce:           decodeHexString(c, "a47f175a22a9dd5c9324e0b2c3359a14"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d2ec23eebd97f62245f237a8d46ccb8346482ecfb8d20ddba22abbafb1cdae1a"),
			decodeHexString(c, "2d4b97d1109d273d3917f237dcce2e68a7a047e9f163a0cdf02d35c61bd86d35"),
		},
		expected: decodeHexString(c, "b63966464df830fb1420ca5a3eae048f7cf6f47b1f7181b16adca2bc6cd27a2b50e900ae4c9d8b5f6f6d2a76080a02303149329acb3f1c15c3e236c9d5fdbc3026bcb1353e3d32d91950b87144845d526dcf93248cf9080aa4fd89aaf500f8603bf52317d56ea773693c64ad840fd8d7915a26c507dc72cfce822a42030514ab7921814a404df9086363ba353bc2b1270b40540178771693b710718b5e8980f224bb0c94c79d5914b43a404da064b8687cd9fa517f9d634b148c776598b483e6"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_7(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9c9ae156bdf2c5e0191559f71c2075aa13ddf830da77b9ed823a00b105c4a769"),
		nonce:           decodeHexString(c, "98f7ec8ec236d76b01beca6d2367dd55"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c04fcd4fc4ffec31fa410682efb6ac2bf3011faa86dd80fb8edc88725dcbf30a"),
			decodeHexString(c, "ce614aa457287fdeecfaed756b937f59aaa312e7a3d730c8c2f122749db4a7bd"),
		},
		expected: decodeHexString(c, "a4c71c976aefbef24763d712460917f4ffb39d5df4cd1e062eb25a91e332c4ab32f77527262a8708e55ddd40be624dedba49205206412d9b1a5f2ab4ab64dd33dff2135ec27b1f5dc877835f777183e0573fdbb8efb99c437e9b022dc9304dd937cfd368ca5cee9cce373c19acdbf5ac594da8fe2c5b6f5346ee58d81897b3cb430687b6d1fb01911a47f4de60eaf71568f80eea983a1a4fce2c2324a1d417d5439e752ecda1a309a1a7c97c0c41a8384f412b7cbae5d61dae9b94192eca5029"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_8(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a8e3298143a6a06b5be4f7e30ff40ff51f65af40d575082e0342d0aa0393f55f"),
		nonce:           decodeHexString(c, "93c445374a3d7e3e65dc28deab89ca46"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c6bd3beb51734118e7633d0da17146a00c408ed678a23fc39f98320800a4470"),
			decodeHexString(c, "8a9fdaa38777f31a65791fc3b0787394538eb04640d4467a4ebdd517b129be0e"),
		},
		expected: decodeHexString(c, "4a1ecb32c35f71c2c7c9438e232a11a353f1e674e4c589855c04f0006cced932d61cb696e864be0d12b2e7f3bef0e9caec18fd27e4a7d0dce9b4aa81d084a4cee2985c415d2619834c724a6bbaf4ad3337907cf37fc37d221a0987861fad588a3c11a7a962466aaf4093c7a828a5a2897afd7b0c2f2c7237c952caa95e33ad6d70f793549674168b675db9440c8af702023d0fa2e4c15a75bbaa1ac0168888792d8af4d458e2f5227d46bacfc8a56ff31fdca36e4004948ae422759d5d69268c"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_9(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "da0521494a14b82937012cf47bcc0735cfcf42147bf3907d8e4dbe23dbe470b1"),
		nonce:           decodeHexString(c, "41eff6b9b0c2312422063c1418830754"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d88235ecdea2d0c8ddc0adbd60cb7706378d05ae69fbf2d25b576136f427360a"),
			decodeHexString(c, "28d7c1a7e7bee1b49b268e4c67bed13cab26fbcdf10f54eca239c15ef195d9c7"),
		},
		expected: decodeHexString(c, "401500b8a9a85a812e45ad14494dc0d4756bad54ba0ce6e77a72db21cdedd64a121867e833e3c2a21501cc9d695d73ac478fb880fd600c227feb08d77daa40ce0f78a5f7f6bb008d3810fb3e5a00c30031e5a26995754e25b6889a66625379890937d5f1b3d1476f9ce436e84f905954392de14f919099e13018530d8eb5eef2ca78f35a9138974bdf761fa6c19435cf27a6994da80577474896d1b975d23ac231bc4fb0e26dc9b1a83856eac5cf1fe9d4400b6d3ab99c99c737e5b7b3910126"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_10(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4ef0eb84fde6b6437e3a56352b978377608810840393fc68a1eb9eb75d58ecf5"),
		nonce:           decodeHexString(c, "b87c5f8289ec92b6e2a2b5356b47df19"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "36fa25cc7b32dfd23d578c7d47fc495df20e7304fa839d2c4b0bd8bf7a022059"),
			decodeHexString(c, "d72b7e5876809766048542869e47c6efa6d1e4c43665677281a0842569eec754"),
		},
		expected: decodeHexString(c, "d502bc88cd8b862dcbe940d15125883657e1e5ebba4a16ad4090cf5183371dcb1ac2fad5f5ad1e347b90565c073925ac70c088cfaedbb8f1ad08027c9a08ce5a939a2b8368d8b75c2f0a7b32fdfc2b3ba13207bf558dddbba1a2769075946a44181e38e0796bf0e8c0ddf40037294a3ae331e412ffa2dd3f7971a7314aa8e3006245f7dcd3342da8292453b03af3f3f9d1fbad1959815e227e39a1ebf7d2828437d61f4173dbe19fa48a7d6df0c204ab18010fea46269c1896672627a85d11a9"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_11(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3da7692320d19bc3ae58ae5f26e0d9beeca3e15003d55ad02762d5135b6e5fc4"),
		nonce:           decodeHexString(c, "58781992a8b9147c48a1d2fb3b5a6d53"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9231ae680ae9320b5edd550993c0a6ae47c684b4546059f484005027a512a6a4"),
			decodeHexString(c, "9eb5b5dd0847ccb1e996317a22a9a607f8339d073bcf6c2e967b49ffe2e01bed"),
		},
		expected: decodeHexString(c, "1d8bbcb653e61bf2ea1601f4cde346fce963977f38477d74a4b4887fd0684ad1f7babc8fd15e197c5c77d0de545838313adbc03e91f9553b3dc1e124115cc31f3700ee2f94975d19ade55952480c6b29aee2f38555cf9dc87782f915b1f4e4b7318269a88bcaffd1e987c711bf7187fb2df85d4ae4648846ca4fbab420b04739c6a1e56af022ef830f21044c95ec76d6e70fb2e0581d47c3f5ccbde05fc0b9b631e338b3bc846c4ca0dbf0d39f88372c1788bff8df035a2e296edd17b53f45ea"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_12(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f52fd8a98c584e12d5542f9b693ba547cd03ace419a57d296e199608977851dd"),
		nonce:           decodeHexString(c, "fa974668497f72f265d8b3f6d571bec8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ddda31a89347f7ec8bc10a4635e803580a7e88baa32fbfffdadfb0f731bb3f45"),
			decodeHexString(c, "b46ede7d4885ef59856752767fe4fdcba935d1af82237a526697f02ba6f0bc43"),
		},
		expected: decodeHexString(c, "01b9d2abee6c4213e3774925b0596e44838f3edce85b2c68309637012018c1a9ce1138e5f298cd0a249be681bb5677b667c0989f9aa165db4992cea51dd349de340d95aabd49071bf18e5df3855e7416beaa07803b9007d91ca44776feaa27b3afa6869e9ba7be9ff3de136ce60b93dd0bb3ff15d5b1cee6b751014bcd8bf335e7e6ec4cae6d2811861fb07998c124ade2cfe2716548f392a8366476ff991c631f6460e41d8fc91a36f5193187df3920f0469b2f24f054e397ce0bf4547a327d"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_13(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2f703d506f0223a0773b3a7ca5b46619e86ba8a026a7666e60897e28c1d978a4"),
		nonce:           decodeHexString(c, "5f350c592f781cf7063fb68db563c3e6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "76c2a197fcdc3ef743028e91aa94c2dd7ce934d0ffef1fd344a82f4e6408a91a"),
			decodeHexString(c, "2ce9c93b579b9a5c4aee0997416a580e8e8bfd5b8c7347c23de454f5ae2f7b74"),
		},
		expected: decodeHexString(c, "369e9f330bea22ec0927e12f74a3c94c87083ad3a69df792851497900b5bca3a9a20ac2ae64c35e7ccf90f707e767370b46636652603f8410fe8ce3496d6cd3240e73130f3df59cc6121389dde78d7c71ea85ff898521d52b21585661b808b70532494d27d9c39daeda64979c6383c31c40cacb9931faa4570258c15a7fd2bf72453175f798b8b2c765f2771a045fb5da3d1f702d627a3f708f5755753a320e5d1b0c00a61341c7ac50f55c5988103092f4a2a6f90c555874c77d4589b1dee93"),
	})
}

func (s *drbgSuite) TestHashGenerate53_SHA384_14(c *C) {
	s.testHashGenerate53_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "222b09b67be3cf48846336aaa0e76c8587edbb0cdc5123fb9319924e452d49c8"),
		nonce:           decodeHexString(c, "1dc18a8c2637c16759c67bdff0600365"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "80bb70930ef2015949b53d787630f5de93d93f98c577ca4632266e1bb1f6f33e"),
			decodeHexString(c, "b6afd2c00be2eaed5c1991909e89029db0b04598115fae5118cc215298e0528b"),
		},
		expected: decodeHexString(c, "c20bd78d9c396fc8fb408361e1dd4827ed3231617a73cd8848e493927207ea23e6efecd4fae36aff74b5235067543c7eb44c290122f9167a0ec4c6a530ecb0936fd683fbd866b73afb712b2f20ccc981b3f70faec4f4fda62e956c7d04cf578b06259b0f3c044e6dc68baf91e6149efa70b2ad2b81c8e14d1a994887193e53bdb5986a23d0412e989c447689a71b283934e50c25e10bdef0b22ce7368840cf761e32aebc07d7b51da16dad4c332926a4cc9853ac8db36b4b01bb36746a28f527"),
	})
}

func (s *drbgSuite) testHashGenerate55_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate55_SHA384_0(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a5825e0855cfcd4221837b493718a380740d53a21870837671664196ccc54d9e"),
		nonce:           decodeHexString(c, "361d804f9865631a0c929edaf560eba0"),
		personalization: decodeHexString(c, "c337212fd68d23d15415bff96d8e8fbb4dc9b79b5044c213f513f6917487d772"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5987f21b584c2107b445f06be605eb00d62acc379f7f24ec55b65c5467aedb19"),
			decodeHexString(c, "74132b412a58461aa41e2db743daeb6d809b0043fbfde801815aa2984a47b59c"),
		},
		expected: decodeHexString(c, "a1876c53450ea07a97d260ef23f3520baba8b6942535db0ace5f2538c0c2418403c50d1f5fb10b9757a7e7ad7344b5e564be357271c007bb03b6964a891e29fdf17b7520e905804272dc3a692adc20136cebe7e14cce28c39bf509267bb4ecb8c036c3413acf0ce7aa4c2b0955825a00afa1ee6ea655d1cf5acccb66f52eb643b117e3c92feca13e190c517987074dd4464e44b3156383e6481ed743634c6eceefc336212b9d52e67af8dc60bab9feedd57a27c5eb97835bc9a3690801aa8c7f"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_1(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6fe04ac2198c0a2c386b0beb4030b3037dad41fa62f88a8428aa94f7c83e9df9"),
		nonce:           decodeHexString(c, "2eca61bd42ccdc2b9673b093cb9cd4c5"),
		personalization: decodeHexString(c, "a4d77e5d47af90366d947ec0bb67768ea4e868979045b68702842077e21d1c20"),
		additionalInput: [2][]byte{
			decodeHexString(c, "054e9f11cbd49e916fd7e6a14534aee0c456dc97ec0043e4cbec9626a381ccff"),
			decodeHexString(c, "6a3ad6f6716a302677f597e790778421bac683cee0b840b2e9a0d86c2e326a67"),
		},
		expected: decodeHexString(c, "4daf3f82f38a9ec3f2bf8a471da37aabe2a7d27c0bab3de118d66b1c1c8e137d0258aaad8ea36031de8c16cba7829544e8268a0674696a0a56262a05d0ef5ebce44b31ab6f234334e3aa20984696aaf37aeed7650677ca5a46727b73867be491619f55614af2a47a6b7e7faa3f57cf04b757a43319c59c0784f0a069131d962d6a155a8f69fe4dee911cc130a2a9d67db554b5789fd7ca66a71963c091242f44b402f80d9e8f0b6cc47620e9f1898ecd87bfa80dcbb31ee225229231a57bebb0"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_2(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c85ae79239ea7f32597ca927dd42a9d992016828464a5df8318f7ced398c0a48"),
		nonce:           decodeHexString(c, "c384b12989ab5a7dad84e73085dac1ff"),
		personalization: decodeHexString(c, "06bc07e3728ec33aa92c2904fa89e4465aeffb4717fccf36eba7920cd1c73fe8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "78f8a518a5657e9816b9befe8f216ed47152bb9eecb5cc36042314c0504a5fe7"),
			decodeHexString(c, "6e4f0c9be8d4da198dbafe8abdb5d2bb5097d5ccbb697a7d1a668cde0890e155"),
		},
		expected: decodeHexString(c, "c02e1eaa1bb6fbad9c6ad2d7661dbba8600fc8d403e80b0542b22e499ce055bc7453ff11050b0320be3d0852020c95fe80538918a4b4d6871a6f159bfdfa671d2a3739eebf8fcd68cd2997f0de63fa8c9ce89fe663e2195b1d19340a9429fd4936a2289ad97ce1bd83bc95978aa4a5bf2720fd91568269659e43d8bc88e10d5b806968eb0bcc33570d4396881e59ed92c3c07f4765515d77ddacb6003cca95731b27dd5c48ddaa346a0cc313154f2d42dfa62d9ec65d8d5c9005cde2d0ae02fc"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_3(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e3f2f42dd8e41d8f252b3e77c3fe7025b48b416f49f634df469850f22c4aacdc"),
		nonce:           decodeHexString(c, "ab60bfc89badfcc16ad53f991d2b3b54"),
		personalization: decodeHexString(c, "008b552e005c78568f8b865f3857b0b37f8f28a7fe277ff63dd64c5d44f376cf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb634698375959c4fca74026ee8606d76051c1903579acb3bb28772db7d289a5"),
			decodeHexString(c, "fa7f8bd37a442c09b7ac8256aea83bb88b05fe288e1655e79b2f56541738b639"),
		},
		expected: decodeHexString(c, "2d301f5701673f080ba68fbe3da99a389efc9d6e4aa3995825a3f2f7cfcd24164c6a2db4cf507531577dbd8ef6618321f8bbebacdfb6da028dac51965bd10d0eddcdc7f34e0e03695a2e24ef852800fbf7085ba6d8d605e88659e3dc7e9944c712a4713cbac6d35b03965eb2a4890ff3e01bc6cbf625049aa139f042abdc50b17a187bf3bc23d40756a7e017fc875db1532e2e8c20d5e895f2a7e36c066e4f1fdfeb62a5eb00eb2ef06561cc97ad6eeabe5b536a314eb369fb4ff702939e0d10"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_4(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "c2bb31d49db727c52800d589bbebd2ed6a9279034fe573defe4a3fc8181c6ba5"),
		nonce:           decodeHexString(c, "d3f1992a0c9f2c9000ab8866b59fa28c"),
		personalization: decodeHexString(c, "3fb63ef00ad27975477091c18afebcef0fd815eed6387acdd1bf69a2563da5f7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "37ff14bec69d47f767b1b7d877396ac6eba2381ad1e526d96621a98c921dff5b"),
			decodeHexString(c, "d6b53f08b72158dc971f53be13cd2dacd41de11d6dbb82b518f8d09f63b0b3b2"),
		},
		expected: decodeHexString(c, "192c2cfcae91a6c130b8fddc321690dfa797606c45ba5016c29fe92cd59e1537097d4c0d5fb1bacc795010984d2d5235c2ebae16c0f36ff5f6d3ec2059bce03cb3f8e002499611490c994d74e678bcd87b610adc07dac492ea429127dfbc66399b150b7a89364a6bbfac8f18ded63dd544f1ca63e59e87bed39565230ca47c1bfbdd7a7554d3dc434ac01216d6bf173fd3fff5f378e487ac4078774e1432195f0ac30e8448c3d9b5394ff472afb345e725eb6b8ce1e98c5daeb0dd66665d41ff"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_5(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a356eeaf651bdd92ffab32abcf9b98155e71f7fac0f0e4adefa815e1d6c5636b"),
		nonce:           decodeHexString(c, "5841b7c7f014ac05ac65174255d1ee4e"),
		personalization: decodeHexString(c, "23685d20bc0302ddb7671f9b6986ded41fc6cf5059023ef3cb72680fdc030b6c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "72470c86828d6bf03dcd3d23d0076712169a313ca3eaf32dcc513825beb2baae"),
			decodeHexString(c, "f1ed0e127c984b2289e28661620237336e030c43dc5f0677d784c3b325a75679"),
		},
		expected: decodeHexString(c, "65bc2efa1ad4b2384228300a98761caa2ae97d8c0ccd6e4e445fd8de0a2e59ff25076de563913e0870458e8f9c70fdddbac3fc8d513f3f17669a1133a3fa87cff6ac447d7638a64d1f9609bbf1fc178e1e712a69f61d208e9747a2c834816a99ddddc8be9e35d70114a9db3d9b55e134898940adef320b4686770ba00d56bd7eb26ddfaabe168ce903704dbf0a7136b025737ea54159046d3cee11692c7f57e98e16f4442d0cf773a668fd709ce49935dae67f46bb58f96636e71c185f1a3870"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_6(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9ff397614ad95ed8b6ac225ba32fc4224b8deb5dff0e73dddb670bbacd74e571"),
		nonce:           decodeHexString(c, "61c0b59489b8d6bb16bfad0fb2e4f0d5"),
		personalization: decodeHexString(c, "04b6f3a762a89f61990efec287674b816f7b12199067f350dc2bdc36648e9946"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99faf59f88fb098b094a9514eebe0222d3670a7b91282b9a4f4b624d221eece1"),
			decodeHexString(c, "b3b94a78978bf27e3b44593dbfa8db5e9436cd23baa42453c3a39b6c80ac70b7"),
		},
		expected: decodeHexString(c, "2750644b55acae6e32dbfc9c36b11af369e5fa190afe98b1eb0d12a96ebb2af43e49b8ea2b4347d0cf264f873d0fef08fd030b14c5cb8ad95bcc3a74ef78ae81346ce4f1ae48d98ca9d8a7d19272c475239173c169014e75304d4f737b7ac2e33ee621ea7aed7cf06e6c0a5dbc26cdcd9e425480e34428f7699458b571c116846e39ed7e720cd9dbfc9c6783cb92649cc8ef05077db319fd42a1c2e958bfea2148f19219487c57927a7f9feb568cfc7395989f7847e1cb90c6a7ec04439bf92a"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_7(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "1c6c04a77a4e7ba9fe80e6a181e033ab6f5bba8b9f3a4d8196748312c4a815f7"),
		nonce:           decodeHexString(c, "989de5c9845754012f1a22bec65468a5"),
		personalization: decodeHexString(c, "ff4bff05cdfc71ae321ad58299185112bfc9356dc346e86e907fca645cbb9b0c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "07315e2a0c7900ce7fb89de89d79bba2b8e6b56d99c8223a154472f25d11f4a2"),
			decodeHexString(c, "eb5b307b7ba293ba2ad700f2e829a6dd34e258013560068648ec3c89d2c89496"),
		},
		expected: decodeHexString(c, "512c3d7c71e1e57bbe451e79e47f5c6fc07ad8acc3e93ef7324cb6f24b108a8487422704b82e5cb66001f4a2c523602093ee6a29905c143f838603702d4f61c522d8184755e57776e615b4967af9bbb5b29144d683ea9d8ab6fac3ac7e1a5c0579294b4d72e475a03e1f1b82db6868fb2bd361f3ca42f48d4443d51d593efe5a12ed8b34eb664e61c7c0b7da453f5e66891c91f0859dbed4dc1fd7d4a5969172309b5aaa55eef5871ea68047a58961afa761c5cd3c5805a8a7e7f0edb6ee4eb2"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_8(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "815e69bd8935f67f12239b4382bca5913aae0725b93e757d93974ecd6744306a"),
		nonce:           decodeHexString(c, "c1b5d24c068435355f3affaab90099bc"),
		personalization: decodeHexString(c, "136e4bc9ce2d6217e74348a6b33199bb39ecc6ecd9553b9a94de75f3bd886bfd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec4c6dcce484736c22dffed8488d6bfb95867db71ad53eece69ea09f6d38562d"),
			decodeHexString(c, "cd23eb8437f35af8c0a0cee068a3f93fc9e830828338462eaab55e158a647a3a"),
		},
		expected: decodeHexString(c, "561330156d2a91169db6bc0c885a99dddfe8af40fbe969fb22a079654ff6141110697923dd7f6c9d12a27797310b66d05bfbe9d4fab16c34cb1bc715fa4fbe41b9d90bc3b5f0958bccd2d968abe62734ac8b4c66a375c249a71b33a9170b192b9a60951ed2c2170456c5a69b6ec41898cfadd5aa1e198df642e0498454daf567c009ea750cdf452dd4a8d0e6f95d1be72fd24d0b90241e7b5843280bffe502d22722763c3d9a865210d32c0defc7dae395a4080430807c2d36863e1a27ed2eb6"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_9(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "eb4f2e37c052b6e67beaafb75c575ac7146db34eced5c24dc6d4eb1fbf50dcf3"),
		nonce:           decodeHexString(c, "828dff1d8bbc85840e7b18e801e69ddb"),
		personalization: decodeHexString(c, "e68223a3274661aa668de15765f8c334503dd41843cbbf743de5ec5d5958544b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ca640279006e71bb906b5e8c1debe3cdb82d843e5b945959fbb22e597d35406"),
			decodeHexString(c, "772b1cf18e4de1793f1426b707111380eacd9876289d593b79ba4ed8d54382c3"),
		},
		expected: decodeHexString(c, "7a86197194aabfabb7aa94615ea71b2312015003c82337676adb69cffa1f4dc04b36573570d461233b38e03a702e0a0be9359385d56725b05b3bc2876f6c83c48f1cbe0857a079bff4bac98fdf58dbc3dc420699c74710083be78276314fd7fbb066dcbaf5a0d4bad3d7f09763c080c5d189f75bbfa7e2f25a332343c08a83975314d62e6628eae5ced4496d04e39ab7b70ea2ceb0e998e5a23de7d2a06a8f60bdbe60501dabc3816e33cac5890c95b0e2c388d0950b4d939590140f0d01d0f6"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_10(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "12f626801d2bf16595dc860b5c2ab1d7698eea16d0a9f0ad1062857713ba66d6"),
		nonce:           decodeHexString(c, "21fd329fa9a4d08cbe47784fddaf6f9c"),
		personalization: decodeHexString(c, "13570610ba985eb5fa7f4012d1b24620c09f371ae777ace6b31084fdd817bd88"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e0c52c099d2649cc9b207acd2c161cc9a8ee8bdca44c797c79e29ff86a41f980"),
			decodeHexString(c, "b76d430600ff1634b4cdb59daf52cdeebf8474ff88be984d3db900bd347ab640"),
		},
		expected: decodeHexString(c, "a73da8ab954385d12b87086c35af4b64968bbaeb720d5487ba579cc831f8053c2120cd609d25647fecbcdfa967c788e1393913c18f4362194c4b87be4aa1098952288a6312880b3823ed3784487a744ff6ece81da4177e5967642a755a22916b578926308e12139ade9a291df3779665a5214834c44e469c7cd39542d1cb535d16d92a439c43afbcf4551531abd8c2b69cb8901152410fe26236e0fcc0aa3dec898531befb1422a9e6b226739ef9a9ad3bb6f223bad19febc7b2e4afa0fd45d7"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_11(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "10b67c9740aac7c965c644e4f1743855dfeecec5ab2b8da4c3127dafa8488716"),
		nonce:           decodeHexString(c, "a52df195d047859c9b6883b641204109"),
		personalization: decodeHexString(c, "5e37bd9c2fa7f6e257f19b30b4e82076ef6a9c96323e8d1e82b545dc937c617d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8ed5e5dec946576b43719992985c59defe7f87a2babd834909cb0b9c589dcdc"),
			decodeHexString(c, "7d2325ef88c40ce2e1e4495b80f3c38c955024b760e945ca51002d0ae3006024"),
		},
		expected: decodeHexString(c, "0cfb605afe8fd756d5bcb94bd6f240a1801b834640d14b5f10aef6b7aecc35fa1abc88496ec84a64eb3bd7e629622b4a38a11220613d0e50391a5de16e0aa8d6a126a7e8ac41e820ce56c9d3890fbffcb3f7322cafdd74e078b2f75acb71de440deaa0431183934d5404753211771bfbd605e3d6c0ec6d5b6f2c9b18da0927977b9d72a0a035fe0e272c21c94a4916aea5bf264ddff0c76b239a459a28b973c6fdf2c456fc04b3bffac4af071b6c4193a96f7eded304a500967bc78afb2c4e5e"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_12(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "92bc198252e5515648e06afeecbaecec614882b38a66a0c9111567d36b2a97fb"),
		nonce:           decodeHexString(c, "234003e9e6ccf82894b89ec20b53aaa6"),
		personalization: decodeHexString(c, "cc55b057b68e8ee1e334f5c7610d4b0627f95febdaa8d5667d3b453c9f6baa57"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e17c2d2172fdafe61ce30ddae5632372f1116925f4e157a3a4fe020110ca3d54"),
			decodeHexString(c, "ba5ce9e893f63b356a5af078284a02aee9db5f108872a3bf3c439d5b435c1d01"),
		},
		expected: decodeHexString(c, "a8aa68af678e8e340b21cf7a595a3ba72daad1dcf124ba7f3ed22e070aef517d08baaf6fb5d522f209f85ea4c4d5357a91a5511bd6dea955b66399f7f3a86952a89a489f5f2e4fb814c0c25c3d7368bf1759fcc0e1b34d527ecd4bf767b96761436434ef537937bc4141e7edbc24faeecd94c93f60e6b6d50d92370571cbe4118022cbb2091098b953db16d5424a32f4a28bab2f4e2380bf5e8d96d1a4f4ab5a94581cdedf59ac7e7b123d47789e1270e9c0bbb43d9ed04e6c42d27f1a8b7455"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_13(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3af3ce7c2de63bff37a8a40e7d5a510ba3941bb4d037f377496a68b82c527fed"),
		nonce:           decodeHexString(c, "a968f6c45707f8d73938cdbfe04d1f17"),
		personalization: decodeHexString(c, "9c7d4d8266cd5da031f7bcf5c2aca5f4db1c6d8fed8411e5cde4af8f62a052f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70a8bc04b426969c55599b66f797c20c88cf646f819d6b1d3cf9512556e1cf82"),
			decodeHexString(c, "bc33476d9491665ea2f5b7108c8b554c99c8a20787bd12ca689ca62dca0b8254"),
		},
		expected: decodeHexString(c, "07450117a5b116d7d7e0df5f1a420141887f39f16852dd5b3ed4badf061f684767ebccd6656b4a838db4d8e4efe3284b85b02c4b7076c056f3255f7ca9947d7988507b665b653d0a531c6e60aa677eacf53aa380eaaa4741bf2bf9634e9c4a90ede8d20522217b8a7c2e458cc8b002341aa72aaf93263736b56166c3c9c4d230ff96fc3d51fdb8ea2125facced58e1c94cc4405ac9dfa1212b55e0d37a524d14684d476b5b1842844a9bceab02d5b6e1b01cfad88aaf045a9d9b3974e265567b"),
	})
}

func (s *drbgSuite) TestHashGenerate55_SHA384_14(c *C) {
	s.testHashGenerate55_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f676e6f82d90414cd0cc23f83c112e6126436b962c454ea4b9eb0598621a27f2"),
		nonce:           decodeHexString(c, "78c9137a3ac268dcccbe19ba0a7580b8"),
		personalization: decodeHexString(c, "2952af91d73d96d41a9b6d4d1217de595f72979b9024e8c94912470ad29acdab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0facad642bc0004f946e3fdd149a4c0e52475c9e832c85b228bff6f2a4af3af1"),
			decodeHexString(c, "19d477a7dd45a0b733e6c301a4fd44ddf65d4fe0a0435b57e319e31de4797427"),
		},
		expected: decodeHexString(c, "2a48844f6919ed43a2b0b64a1d28707fd3265b418e0673190b49a606358062c1a54a6071c845adc6ad74193d746668f890423ebb971a63cedae3241005432c8f3fa3fe7f98d5912da34dabcfeb17c03ee8881de7b2ef04fa2147b78532eb0ce7d9244d717697138f116341c7b9e99f15728207f6a73c651b8940582f9f926253420a853ae18132093183a6073e3bc85633b75e1c6cec9323ed4142d0c8ca0dd5ab2ff2e6b304ab8cfe4aa98ac64951d836e074169d375ebeae8498f11bd02c05"),
	})
}

func (s *drbgSuite) testHashGenerate57_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate57_SHA384_0(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "211aef52ebfa8b8ab712d6734f6d2403cba5ed8ee1aca4bceb8358215b526cc4"),
		nonce:           decodeHexString(c, "d24fd710c1773744b7af045a23e2b359"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfee12401a1b8c02f02ee485c0eeffbd7a6983a620d357953e4eec75c486b43b"),
			decodeHexString(c, "9609829d8bc02dde14cab4f9264dc61798513c9e3ca977f735116a0cf553c065"),
		},
		expected: decodeHexString(c, "a6dc3d779f35be2209eccb4fcb5ebf15bacb10a8cdd0bf3cd28b54cf750c6ecaadc755ad48dcfa06420ef52cc93959984116d54d5f243ee5422acdf46448fcf47e33032cee872ee4c3245b5feaeecab94766ef0027fc9e1df5e99ed3252b1236c3d6459a43dfe9b30e8c3069351f57a0f650112c0be658856e43b3643c26e640ac966f9a1aefc541b37d0534ad20bc6889055d98b5d398deda10bfbc62842b992b8a10d46eb9c5348f1ded1ec46c1d124204e4175b24ffe97adc7692d3f20e2d"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_1(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d559e3a0489a0cfbd5b8f5aeac9fc0bd5a082f580fb16b4e79391dfe27fe824b"),
		nonce:           decodeHexString(c, "ebd227125a5b9c502e1611c7fa68e557"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "406b3d5cee034080e84e3ca2ebe480aaf057b636f52a6878fd0a4530b379b85b"),
			decodeHexString(c, "96b9e8baa5c839a713b38a921bc69c17c9ec5fb1556f4c2139757dcfaf0a6eee"),
		},
		expected: decodeHexString(c, "8562e5da6c7d5b3e9e74ad6e6f5e684b4f04ca9e99a0df4bf514e2ccab93bdba59559b64a28f4d1ffef2b14e0394747cb74964b5b1139457014dedc674ebaac25214de7e13cf45ac37d502f69a92d13aa633e0edd25ec9ec04a8a40ef1613b4c53e9672e5d7d2267493b34a5a08f9ac7752e9adff76b00337d7649f3c57e7c7a71347a59cdfe41f8f3fa6b2dc701408caedfb46b08b8abf46cc93e237ee8279e83203be7dbc4694579889a1cebd034a86f13ddc7d316df2e0ba0d7ba23d8f2f7"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_2(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "84bdcc44f1554efba8de2f3ddfb87c4fce23c8b97c1b0e70c42e2c1683675bce"),
		nonce:           decodeHexString(c, "7066b1fde6841ab4e7c9437d791dfdc8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "31f4abe175e228cf53af8b3eca037a59a2126860eeb8ee69f1f88140da589d31"),
			decodeHexString(c, "e54f99458a3bfb6fc44f32527d01268cc7b8de06017050d0fd47764e005280da"),
		},
		expected: decodeHexString(c, "8dce21f6599b66704b3d718bc351eb8435f3a00ce80393810e85b799b526c9c4883eba9e4661484375d5bf3087fe22915ee41018a4f30764a9bbdf35897f64a82f840c67ec8c3c62e96d9a59a9c54e03f0cec78258a138a9e5370bcb0a2aee4842e9e1a29cf1425a74cf89fa48d4551487f41620b1073114637624c5f5d3b512e9326b85c84566c3c8ba51b8bfbf716ecef1d04262c4025638ba225e181e2566c6466054e56f20838517902ad90acd9333aba3c2296a6ddddda6ffda50221645"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_3(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "7cf7a280292a7c3d15231003fb97cfdb93e722644436ba72a7975002e52581c6"),
		nonce:           decodeHexString(c, "edbb6d2cde1321234e2131856f9accb7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb88a12d7562281162fd29222e7d01202503d97fea2a7e3aae0d6ba88e5c90f0"),
			decodeHexString(c, "8455c1a90b23ac3129e0e79246fee41b4cca6b885860f62aaa039dce21a3c21c"),
		},
		expected: decodeHexString(c, "145dacb9ff3e45a6e5a409d501c1316bac87d9ed5c4198db804b59bd752bf0100221963d497b83d047ff67b25f93c86c4fe9a9c3b2bec814a87a9dd56b87dc95f392c3282e98c53ed880f2fcf44aa48b5221f75f71e130f379f7911fff5c3ae54ff88f28ac1e82a7d6a6f674a92436503d1a99b179a53fed9591857d5515499c1f7f05a8daa6117cac680279104a081eff4de28fa6bb17fab7c1f0041c6fc10a38eaa4102318cbc859ab13993bfedd423d4d9f24dcc7c1366bab14daf5957632"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_4(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "9155d2e19cbeec98860722bef799c2f3332f1408e6afb32baccf1392507d6bf5"),
		nonce:           decodeHexString(c, "b6b4ae01a586efde1d00255454a4170a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3af3a72a85bc795ed5f9ddda56229ddc462b32f92ba5b791f1be647009311f0e"),
			decodeHexString(c, "5491ae4f73534fcb6fc328ed1cb0b4f4e57ca3cc792203eb47c708580ea630ae"),
		},
		expected: decodeHexString(c, "6de2d0e3c5fbb6644ee11039bed584e909d974b8f569f60e12ecce8563e1dd280532bbc07a6fabb76bccca5a9d06cb01e817421492200f830efd1e995e8750c15aa2da8cf0d6f38c5cbe92f2ac221b1036b8376f92c129bf1b5fd0a2951041e0f6125c31a00bbd537be944d41cc46ca352d612e5c748671d61e5fb122444dacf57a80a3f22cb3e05bc36e444edbdce1c9ea1a1eacfe69ac7256d3d7bf7ec4037eed2fe7e8de50cca38f470657876dd98da5a7aa666dc5dbe64534f6cc6aca40f"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_5(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f8851337b20f05c86ae5cf6e7c417d4771c8e3e5d2339a5d2ff9c21386e0ec7b"),
		nonce:           decodeHexString(c, "f361a2aeea782462b403004d8f85e7bb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b3f59d3a5b8074d041a6c00f8d9cc01abf42de97bd04cf1b23a306dbff77373"),
			decodeHexString(c, "e475d94bd54d2d0f50aef24e77bdabcb84335eaadf20686b867dd66a1dc777fa"),
		},
		expected: decodeHexString(c, "d5dc0999ee0a31b756b2c84ffd4828feee1c0b97190fdd0c51e98ae23930d4b9a2dbfd720e4d9b786fa32991ec0bd2595153b9297438e5f32b18000bede539f504cee1d0b5848006f6d79668e48ddfc494715d66fa339a6d0ac3976c1e331acd70e498e1e8f122a4b121366d90896ce2fdad09296a0e44ebf074e4fcb555e252f11abe1a3b4809bb092ba35220274e71c046852c97f27dc030764963536e9c434640db8cc287ffe639830d891b57b8904a845c29967bb2332584d49fc14dc1bf"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_6(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "38084c1e381ac23b82ebc85a7f86ba3093ba8d535e137a139a9fa12d7ef908d3"),
		nonce:           decodeHexString(c, "1c58efd1a23f32caf94d9c400919a0db"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "194888df78f5ad2a96fa0f01aed22c6652e66f450fc586889e5fbdc22596584b"),
			decodeHexString(c, "733888da96ada32c0c2ce72275efd118621224fba68557afa07a91fd6858f421"),
		},
		expected: decodeHexString(c, "cfd92af709819d97fd24f7dd0a1268e0946a3155911b2be0b4cfec2fa81aab610dfb2cae05b1dd4e8daa01e42b911e52093bc0dd3333d71fdc108c2616281df9c90669c68e72bbea98ce1ae8ce8ac0ef47a721085e66ba470cf2bf66dfd78acd1c6d8691bc43b0b950e8a717546482ae654e4f762a1ed7dc0a7c13a906964ed55262933dba034575465b14633b32a8391c78b626f64a13e0bc4bd68f36c63712dbda3e95c2567c093a694756f11e817948d4c225dd3b754b0b02a70a16cd527d"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_7(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a9e25cc2e9b737b19a009c35bc6dfef47fe2b27490c3076daeb3da0a8a1650fc"),
		nonce:           decodeHexString(c, "3421e2b231823a613dad2f851734daa5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c788311524aff96920b30692939980d366c70955587c853793ae73c16e9d596b"),
			decodeHexString(c, "10f12eece4f19fcb9c78bdee94732902a42a5854dcfe407d19d0fdc7a03c4f3e"),
		},
		expected: decodeHexString(c, "83a4bf357b8268379e3ed4767b1acc503178ae9c47b5d3a8566a5932763d318138b186fdd760332516ec3ae3a560373479e75285662609757d04f2ac51fabe61b1d0a635e1d198d0883934480b9ace1cc0c096734f4a906ebdbadfbd039c191f45c3c6bcd642970c4346a9a6b8017081d6f58ac07ab68c2a1c085c902388bd0c425adcca80e73822d3305836c224168426c397aedd43ef9aac8c860dc3ce8e24d067774bebff3194f2c0164db2a074a6262ff379003b53bb0530cb4707eb0b6c"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_8(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "29240d738e28bfca0b228abf30f966ed25c49ef40767424393b449e7a6103798"),
		nonce:           decodeHexString(c, "29c23e30beda91e31499d2a303effc4d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "11b3964aebac9f8e83d8d382987def28c62ef2baca63a546371cf10c44abcb54"),
			decodeHexString(c, "06940635371bfae8f7a66dc47b56801d929feeb29a09e130085a1e6a98ac78c5"),
		},
		expected: decodeHexString(c, "dd60a097c02b8d810af0616971749539ddad3cc95defb3a1901b9e53dcc32eaf5e7ba348a5eec01d5821cb1fa674959ef6999aa02a8bd096c659d3a5ed4b66c84aebdd51e154c95a830e41cefcb1e7f088370b87bd28fac2aaf67bb94cc612c610bfaeebc050bb972dab69b1997d045d1b4c6c80beb70f61874dd4b06645c928c624af578fba39dc255fd789041fd8b68be1580a86598f696a24d445bf0e67b557f220d72e33e61c6b39fb2e5bbb3f803ddb2857c3add88a1c26cbb0ac5085fb"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_9(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "899829f7c7c8b2fd0de58862019278b0d8ff9c9cffc905604b5fa2f5cd48d995"),
		nonce:           decodeHexString(c, "16a57264e2eb3db6af150382dbe4b5cc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a148ac240727d0a4ef4d7c091f1c47a8d307c880c97ee792e47b8380975d518c"),
			decodeHexString(c, "d0d9ae85ac486f93410bb128e2dab6e54e6fc71ca5b6bf4c58eaa21c7da6d387"),
		},
		expected: decodeHexString(c, "2daf5b28c358333bd65aeaeab18d2e4329edfc1541173eea15e1c9057bd3e11c9035aef374ba9e8568bba5645b018b384bb189e1dfe774a9051bcb655a65ab2abde6ed3e51dc92353b7a113c74ebbba352debdd74af163337419e6bb5fdb167f1f1e278198c0856348cf1e46a68e29228b3cf4f977557e1dd502f3a155841b24841e642af62c985cb23c5e14622d843e7491f3db9c1019c511de0c089667dbf64c92107f99c107ee30ebde531732e02f19958a06c81e61777e785a9905bddcdf"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_10(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0a4e66d19092c36fd8fe2722e769ec81b5fc21564488959620c5c841d37d08f9"),
		nonce:           decodeHexString(c, "362ab0fac130deb87047d69e81c20e33"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b8c044329a928212631d19fb7e6c0eb34f32c42f8d6aaecfd84072d3aaed4938"),
			decodeHexString(c, "cbd5e50781aad8b7ca73edbbaf5c803e338144a9f0fcb7ad457d87def2c5962c"),
		},
		expected: decodeHexString(c, "41f849c0e0c2926f591ad257c4802e7552e078f0f6bcfc108d8e4e5f78ad6630a6bd02a3e2373d4c80e1fae46c6fc6306db3029d8cb199f110e20ac5ed0a82c275ed943d4fffd43ebc1fcdde7bc08e7190911eaa98cc493c290546755af7846575c3ca96175ab4cc1ffbc741b11d246fe056e5849ec5ea264c81061c2b54281f5e3d45aba4ae1bdb9645554bab59543d7bc0bd6e9ba3cfd01ee97f67e65f3a6dcecc02e507e420aab8a05151bf1d7351cace4758dccbdd4c34234b28d18a3654"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_11(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "294e4f34a6e82f7d82870148945a52da13daae4a1961ab558e64d64bdb164a93"),
		nonce:           decodeHexString(c, "7b33da99b4650057465e01498dd71879"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "30927229807d278b9753514a9b762b62a5468eeb8874af4ae8e3d00b8eeb77fa"),
			decodeHexString(c, "eaa065cbee6f7ed92f391f3fe6badfd84e62765df9ba11fa5a12b8bbe11b87d5"),
		},
		expected: decodeHexString(c, "fe50f4780b107b519887148a3a95754456c6ddc63f603eeb4405a676e67bfccc83c8f1ca5babc79aade63825b64c0cd695bf01cf0889729551be22103d79a8009140a2d3fa97e4a607d11681a7088d13b8dc44f926dc952325bae51c830352177759055d7bb1ce02cdac368c7c8f9b3f03d3e916f52b3e73c9e3a7b4160f0d18d4ef6073ced56f057eb9177b87b7e1931ae562ab07adc6ac5442ff519f8a18ce0486572f62870a250f1871d67e4bee9ba84815c6f8987f729315d55b3ad9f710"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_12(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "678348fca7958da9c6c9824f8e41f99cf9e5679aedf23e36efee944659931f0b"),
		nonce:           decodeHexString(c, "091632d69910829b3752f2ffcf7d7d90"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5c90b6ae2ca748e1457a47881c51686e526faae7efaf615fe7b1e0faed5abe93"),
			decodeHexString(c, "3ea63094d37b5ac8b70780f6cb068a06754c34232cc4a510a67496d6df5c8125"),
		},
		expected: decodeHexString(c, "def000cebc30b3ca76ac26f65d8e91e6fa8f16983221ee5c8691961dc3a26d3b78ad2ad2f1e861c642d85a5bc4c6e4963bedd68011144c184ec6c4e0484e404ff8743b32e6124ee35c894f118eec2afd215d4fc04d834b08566ab4e50b8d710822895752645c07b5d0d3a25b69df294130b9ed16dfa8a4717a59cb9d1ebb16610b0f68c6e2b4c9f3cd11c77da6c1ca3dfeb1a9c50333ad53c25aa3f8dcbe9061f14a1b7beb7520c58ecdbb0ea2050951b00befe5d78a35b269969ae03e0b91ca"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_13(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4c562b473c4a1dce0d7a3f1fc037660225404bbd59b346ced01cd9c1a392aef3"),
		nonce:           decodeHexString(c, "ab44014749ec64303cfadb70e07c2c2d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f4f213671befdbaaf10f4a5177ac25f5505c82a194cf5255b0cfdd7d0f9f096"),
			decodeHexString(c, "490246159761af5ad163c02d8beaec64130bcb6fb44d85b56e999844b148a81a"),
		},
		expected: decodeHexString(c, "17face71c9cae2b898ed56a44b3634559d3ab58ed3806e1c0a88906ca1ee18a8825faa34c5be021177f2c642561a7e99132dd92c3ec3b47ef6d3f67225b644f431cd0bc6df12332ee910755aab48dce9da3775b21e7ae88135a2b074133b433a3b8bfbf21444e5d8dcb8615fbe3729bc5483d84ecb4c87fc73e187b361a81cd051ca65053da4dab05dae7f1a1963cc70e78ac6345fee5262cd34da4e1c42e2344602288bcefd8ae7cb3e87b0ec446e64e5033883f97b6ddcd279a772d660330c"),
	})
}

func (s *drbgSuite) TestHashGenerate57_SHA384_14(c *C) {
	s.testHashGenerate57_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "4ddffdcb19672ad540a056a61d38d5a5f9d3649ad96bc8db0c81993a8615e0f8"),
		nonce:           decodeHexString(c, "c4885909d8dfcb6d7e567623afcf47f6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c6a3bc83220c7708eb7fff5787ecba27e48c894e15302e0ee7f4e5f09b3d6b76"),
			decodeHexString(c, "39b854a1c487e24e1ed58916d8012277fafd6e7b6175c4be43927cfac9958404"),
		},
		expected: decodeHexString(c, "f7d2f39a513f6c4eab993fa440b769ce09a15476e06ceda47969be05f53ec7f8409de284749cdcfac07fe7df66b1b6bd39389401909f3a84538d041e1c038a289869e51bce8bac13a0f786cb091628f0a3a7f7f9a2f620c98889688d46a2a037fbc1b2a4fff40800eaccf98a0bc1452ff1f53f040daa94e17dcd6acef97192c74075d064be5a97205ad97f693257d96c04e78654a694e90b80a5234a25d1c7ceef360d53e768067335097c4aa8f126a31882eff8e55cee05eba4b4325c203f4b"),
	})
}

func (s *drbgSuite) testHashGenerate59_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate59_SHA384_0(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8d94e04ee26aa9ec7381eceff9dadf9163645c4f7c8692df7a3263f23754d315"),
		nonce:           decodeHexString(c, "90cbf3689ccbc2340920946316995252"),
		personalization: decodeHexString(c, "8227179c9134175c478821175bd8a5651a82c38c31cef5d2e49396194cf569c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3da647dd626a59ff5c6039e044438f0539755948975f2ba97278a439f4d0d69d"),
			decodeHexString(c, "db975d66964fc83fa4b9a5b2531c2320d6215c4eabe8543dbd7ce91753e3f25e"),
		},
		expected: decodeHexString(c, "03e97b7f175b8dd135c46dda67ded1b2548670523885d541bd79aaa44aea3fc95a197b9753b529320557dc2c9ca9073c952691ed423d12e9aac6f74e5055331cf9ce27a067da06eddeef444f9abffe49b0b3ce97e616409a18e8aee5255cb68addfdcd558676b476febd4a9ccefbaa8f55f69271aab0feb2fffeb5a4b563eec046524a07aa239c83da5615bd16494920268ac8a7ebb4bf8760eb872c3190ca692a8518cf6a8777d37a3ce3bf5a15128b7200820222eee0d31ab7f062c461c48c"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_1(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "eba56435837cffd42ea2207c506df663675242879bec4ef87f8930f422475349"),
		nonce:           decodeHexString(c, "3777c3b8f9c6e090f8bfa8293655c80c"),
		personalization: decodeHexString(c, "8c2166f2d67e5b10211ec2717519174cdc5964281570325d0dedb450e5b68c8b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8ab7647bd61d94c2505c542574cfa587f92a532b0687a9389f37d426a344b1b0"),
			decodeHexString(c, "4edd5708217b45669d85e5ca9dd1710c79108c2d42035ed7e5c65c084d6b1ff4"),
		},
		expected: decodeHexString(c, "f8d2c53d8f59a53c2e35c57f09a299fb698f43096e3eb5f7a9fc24aa9ccb2c0fd577cf6a55cd9fa5d76a9868b716457ebea58091c09bb4b111723771b8d9d8c8750a13b0af4ee5185a69fb12c0c79bdcbfd10ee23454fc5fe9bc667cbdd24d7e02a9641c5058de33cfc6782010d39733a796a166da98dd7c6ad9e353d72d2937b65bc9ddada85a16218b5fed05dd00b7df8e78c8b2bd5021c5f7ea9cd3d4caf1920616145374220283ce279dbe4474b1c5476d943975f4e673430fc0996d0a92"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_2(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f2f1f7659497a8305f35a8493a5d776067d3a9735d2acbcb7ac565807073c6df"),
		nonce:           decodeHexString(c, "70d09abdaa9442f9f503b77d14d25fbb"),
		personalization: decodeHexString(c, "0c2575f457bf117fb620a9ab2ac19d23e1f65f16c4948aee441ce970f8643086"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a086eea1b4e71120d1137816dbdac96faf0e013b23b0b467a8fb16ae4887f8af"),
			decodeHexString(c, "b18e4342246fbfbc2ff5fa0e949f0c497feb60627c53873a3a6ede850de15f53"),
		},
		expected: decodeHexString(c, "840d3b8e9d7ba5eed72a0ee853d281307f813077ef32e8a3979ecbc249ea21381bdd203cfbd91a932570274fa46698534958bd4e0a83818b08d43dac55ab85fcb1e27c571fb8ab8638bd66af9d3c1aea9b1755362da194c2b3c9076746e54d16b07f29afe76358fd8bf9dc8498b3e2558d2a4cbe06c20473c82773a586c3adf2fe747ef2aa1febc6254a2b5e5bbe422c93d93c14684f8e119dd1c0215b49b5ede11115742fc5785f455227f4b68869862ce1787af3771a3fff7a406fac55f3a7"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_3(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a292ceef569f185d60624e0602a0f78733a24f4e84bd52f83e38769ce3727336"),
		nonce:           decodeHexString(c, "01b0a5c0b7cd47554933603d8219ecef"),
		personalization: decodeHexString(c, "dbbb16c8fa840502888e141ad82f13a22d95780aa32915f2045554b29f3e1f1e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "67cea8f68935466233a17e27994ba5dbec679e69d9f5de89b62ab5b56c3e2d1a"),
			decodeHexString(c, "981094dfeadf088f477a2955c0b597a7cc55d17b7e133dbcd06192a7e70db4e3"),
		},
		expected: decodeHexString(c, "8bd1d3d2d24fc79506d92a3f55a972346422ab86dccbc9c5c6e66cc925ee12721bf71a47809f41755b4cacf005b37bdd2821be33d44771119652fb43817c1d90f6b01e3ecb2e0b5920a0ee30676e0ac074975b73f01bfe2d7cf07a278b75978f1b05033f9ca9fd5bf99b73831f7b6a9087145caddf35e54e23704013a8de64d36cc572be3de435a3377aeb077295b5e1059823953784aad9f0c2e33abaf9250cfc798e38be4dbf7237fc232e27569a97a6223b2c8f0b67d2e770781aed87e5db"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_4(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "eff6e452706343f00434e8e72dcc922f2e56d1bb97515e220d2a698e4aefa42d"),
		nonce:           decodeHexString(c, "95529017b166e0766c2587908e30a8b0"),
		personalization: decodeHexString(c, "5ef174a49fedeb83841be9a638ad4231ab840d217b052ed7b655ee9cdf42efb7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "be111b2165eb0acd6487d9b9004fbcadd09741acaefa5540461b842cacdae425"),
			decodeHexString(c, "a33d190998c427aa599a5ddb3bcd26e5397ad1f0a59f38278013e37e67449767"),
		},
		expected: decodeHexString(c, "6174cd69e59ef2f720728fc83c085ffc9623775664f53de26bc6ca12fdb391aa3ebf7a638413402f0ffce994b2cf3d23fea0db31f1be94c0a7f277b3a3f4a35fbbbaf8a1aaa30a044a2f66dc748e7fc44f374ea4802288f2ede3a9931770050ea9920ff8b9811bc5b75a77bbad2ecb9915bf2b20647e8d11e237c538727c96318683544383884d1fe0df7c93656b4a27f51d2cdb3acef1d1a590cb013a8521d0173633194eeb1629da4de90eeeac12417b7b25e204ec5b53984dc233485010c5"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_5(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "d40168bceadfeee0513543da1c9ae57ff427e21bc2a8c5def2c0bd0a94d11dd1"),
		nonce:           decodeHexString(c, "2902d6db86bea33255d165ffede91564"),
		personalization: decodeHexString(c, "5d4077ea9f43ecfd30f03d548d8563dd5e13cce00ec525c008ae000848f84314"),
		additionalInput: [2][]byte{
			decodeHexString(c, "91caa77ddba8304dc282324a706000ca31dea9f52ddf51cc943f222466859856"),
			decodeHexString(c, "9f9fdcd790dba268c4b92054029c4c9a9a040fe0e3e674226687dfe2f6af348a"),
		},
		expected: decodeHexString(c, "eb8169d05935de5e5f382b31fc710a619dd0a7d572e170c6ffbdc15eed5be2609630f8b9f852f12dfbf46e0dee9badf48cfa8adc545e13d897d593d26a7033ac71ba5cce2c575d541b27aa692c6d2a2d51f5beb95ca75804571a8a4d0c1b25b1ac752b6a817bdf987342f21afad47145b9cc66a13f8bc523e8b5f5d0653c6502f004a6d7ecf5cbc96458054041eb846b9c089939aec1bda4913bce79fa7ced1f36ca7e84bff89490136b19d32d2b7932449c792fbbf6057ab2dbea5a57672377"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_6(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cfcae9e5c273119db4c4060400ee98d99b9c8fecb486c1e4be259eaf04826c13"),
		nonce:           decodeHexString(c, "cc1f73e20584132668df526b5649c844"),
		personalization: decodeHexString(c, "48b13013cee0c51a08792d4d057e093905eb93e8880cef5bc7f6b94d88f04cbc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae81edf9c7c8ba49f70a4e2faf3bd7e06b443202f185d07cae00b0d2b5840e71"),
			decodeHexString(c, "d6fdec894b6478edfd196e085af5cbd89bca403b6eda394b1c98f77371449211"),
		},
		expected: decodeHexString(c, "734ab88603d7c3daf500b25cfce81ad6d34e12204758c4bcf34a9edaf459290701110b7c2d5ffc8358f54632ec15b65031b599d643c876c5acceb8156bc79e16393e61fc0166f4fe8d97f2bb64fbcc927af6f75ea69ff3cc6ece185e87c28a6ab3ecd1cfc9a03b69c6ee76d8b7631f1ccb51691ff3fd3d4cf359a74b217f23bdd11549cf42a8637333ac92d2d4ba95fd5bbd0f4181e5af92f533987cc50867675a1ea2dd250aa3f30c100df6ac6e3fa991595863bbbd7fb1df32efc7ff6202d0"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_7(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "596fe2dbb26711a790e8feed790597f67a27877538aeb5f8d70a938608dae6d1"),
		nonce:           decodeHexString(c, "d211741ca6dfd385e29f04cc4f9b18f8"),
		personalization: decodeHexString(c, "36eef365489d9440b98c6519a95160894e582d2537fe5f34b2367c873af225d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f745c63afe49b4452cf4e9d68dd5efc4e46e0a0ec61f6e18438316819add6d1a"),
			decodeHexString(c, "6159be82b4f11bdf504a6992d0a57ab1d8fedafa1cc5d43a4bae2a1d85c08fb4"),
		},
		expected: decodeHexString(c, "6dac3928f926236148a6276b7f0ae75f498866ac9cf5995bffe6fbfd8fd7138b16d9f782e84115833801d0995e15f98a1133e70631e1dbfd513ab7f8ae28df5b27512bcee1984e8ac0943bd04cabb5a6d5bbee16dd17887f36d5204172316b35b82262104eff5117d36c04f5bae34e622932eec1b1f1fd09d40cefbd34a2ebf74a6d2b59b9c2f17ff2df640dfda5d9c4a7d4b0bb35d4da05e3d48df0af68c57ec89fd91e8e7149a26a795bd93f6265844b1f3d57c76be6f369d91f15a58ee14e"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_8(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f3eaa2913258e0130f608f374be741acd8e546f2190d99caa15b7061b1e04c4d"),
		nonce:           decodeHexString(c, "081e8f87e462f2ad4073dc1cc3beb993"),
		personalization: decodeHexString(c, "dbc1512f971801a814d59b40cb8c3bba8699719412a317181fb8abe5a32357b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee55a9905a0e77cc25a670484b72018843eb0dad7cf77b05f941af663ba8c15b"),
			decodeHexString(c, "d935e8d13f0c32b6fdae7850d4f050aa2772e5502c7631c11f7bad0e5d1d181e"),
		},
		expected: decodeHexString(c, "6feb6ca54d169de79de3a3a077b1a0b665cf9d4197b737e025891a0f743532ac88728b4c2c9f54e6e8fbbac29fdf7d448166a382cfb3097183e1b7c2508793713ba0430f660b58564a0c6ae1c408861a5dcba1422baed032b792f3f36ca3ef9ded9bf8f9e019dfceb5a2d2e875c26c7f2cae8da63ec009eaecc55204c58b6bbd0374e9ba7d10522edc52f6ba2dfee359bc947ebd7fefb28109a7481a327ce0d01d838fdb5818b9a47902c6687f393494a11f3b2cc8232de5c9ba69074facacc7"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_9(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b9b962a5ddd44b4941041b1ea74485e249897dd88c0355d8303a57ebcf577209"),
		nonce:           decodeHexString(c, "d83a4e5373bee5a9cbdc560f5171d1f4"),
		personalization: decodeHexString(c, "682dacff9c2eb2f300173c4f13118be59affcede0099780e843e894e4ab5cf16"),
		additionalInput: [2][]byte{
			decodeHexString(c, "93b3e104230bb246b527b671edf8d8d9553e78729533823839d59ec84470ce56"),
			decodeHexString(c, "010b9610d7d10a4503b309287fad7b06cc16f9a03505c3454debeec9f7f06559"),
		},
		expected: decodeHexString(c, "2ebf81a2608c2e9a0abb9de9acd1d4c02d3a03a0128f0b5cb757c4b189c8c93d63ee515bf1c625582371ad0a557af695ba72f7e88175bb71eeb96a75371b401a83df8e9873ee9002dedf352ef48403dd7035c7dd2b41906286f6d98eea99a142f50cf3eda184c0e54ca2735cb68427dc1c02072ed3c4a8558be39fa2c35399b2283743549d0dbcc0df370a486edc76aff8ce5592903e447e6662d1185d61e11db98daf5fc0a779cded256bb6c3620ef5f3ade3e1e5892c72fe98643345484984"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_10(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "561c3c79a72e42f1522caecf2af1873ad554b57d18c2c4f6c44648e8e6a48531"),
		nonce:           decodeHexString(c, "42ae3285a5102e0ff262ee8c9544b6d7"),
		personalization: decodeHexString(c, "84b6393ff308f55f803e33e36cb18f2ad515faaf0acd961a541dfec1efe6b75e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3bc52ff5d1c85f3f2e5d459a2e475836e028ff1f764d7797b310f52d2f95743"),
			decodeHexString(c, "2aea6c35e008e671a5071b08967e7b5d1809f154dc71073e3c271bad6d354e83"),
		},
		expected: decodeHexString(c, "67e0ca620571236717abad4346155adee7f699e6cf8034ea19ecdcd83a0548b9afe354d9c4cc75d691acf5b0da98da343ed1069cbdc76895b95f951f5c12ae98fbab55fb210defd128ee8bfc2799c6f1e10cca8c5c7c7b605419f701ab03af687bd3e3a02f0ed7333b376f46a6ec2e27d87ab0128d7ac12887eac26fb7c323458f58b85a1c132ef1a47e1e0d2dcc7f26655a11add6b83c167fc3a0a7587ddf8fb0b7ddc1f1e0d838fbfaa0155e969d513c4554229d47313a19fde80ab61ef5cf"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_11(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "cc16f7c25b9622d7cf01aec7f9b591ca7c7cc632d406ef91274ade219169863f"),
		nonce:           decodeHexString(c, "554538c7cfb05406142b17614b3534f6"),
		personalization: decodeHexString(c, "18a5eb7fdbe463e62188e7f101ded716a6f931c98feb0c591ff46c484ab37498"),
		additionalInput: [2][]byte{
			decodeHexString(c, "072073aa01a786bef9e8683d459ca1ff801a783079e7b84c8873f88fbd98dc97"),
			decodeHexString(c, "6784e0a93ab55e76df32eae827a7761b07b67d0816c04874eac024527ee5fce8"),
		},
		expected: decodeHexString(c, "c8eff9f699bc3393cbe96f4c0b16f4101647e0b04d8342b45fabb372e503f7f757032b3383ef3ebd135c934d9fb5bc9725d624fbb749485b4a5153259e85f66ad32fd780d7100c085086e105d2cca9e60de6f78747ce459ffcd1c607f68bc884bf910cf95e2abd960b635d2661d89a13e37745c10db7f4040d20bf36719b58cf89c7bb4e53b4392ab890c8745f6b26201ed341494cc398b9652096f69fcf512dfced15088842549e14851922e874521b2dae77275261a94c7ff096ce93598fb3"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_12(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "85d542f5f5d5671a1f9bb22a9d95b6eaf56556ed6130f4f5cd301420397a8286"),
		nonce:           decodeHexString(c, "8434d2197f7cc2635de79cd20588d10c"),
		personalization: decodeHexString(c, "1cc81c3a8170b34f9f4a562749f677044dc6e9f5e1c717326a47169f91559362"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e0fa487fe56900a3fffdf212030506d4e4eeb2d033ba660a656f10a9f3db146"),
			decodeHexString(c, "2d5532072c4d5740802472193b51cc282add5f191b0464349401863d28ec4ea6"),
		},
		expected: decodeHexString(c, "b11270c27b2b9e709bb64bb5bdacea40d8cc15d4ef38a9bae293d4b521d32661203b2188c131dfce2d8135cd79ae4f5c08f1e5a40cb7ad078936e2437f17d3de86bc6e3402a0c63f660766ef5b7e7b06e4fb05feaf01d15be98f002b7c9a9dc88733b1e9bc84d2e74af30ac855b78e105c325355845dd5a9548a7ee7f8afcc37907864bc586cd1a3635840b5a6ebe071d34d7d0688905e5a791920b8f66f257d3cdc4999bbfc6c0df5b4e259bb3cb0795e005cbdb35d1637534dca076b5cbb27"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_13(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "253faed3a47cdc300773d76fcf43ba1d932639b6db6f0780f77631e6a70ad36f"),
		nonce:           decodeHexString(c, "97e289fa6c6511fef80c7644d0abaf6a"),
		personalization: decodeHexString(c, "4ddda6f3e6d726ea0329a011c0313b6683979a7ba8446e85981d454d3ed900c2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "330d6b5ed6e0fb830d5270234904564f2920f1d2a60476dc79ef2295e43e1a70"),
			decodeHexString(c, "8f1f018f1164c4e8b05386294ac97eae52824abe0388ad1bd4f4dafc2eb05fd7"),
		},
		expected: decodeHexString(c, "a53301d45f17bc6c89017c1bf97587ab31f4916d0056a2961705eb8d0d6024b8366a88e604d1883f9f530a9f4f187e1d3e523cd7a03ad86e2abceaf59c8eb279044a60307bb13c1660594835396fd3852deeab551b20dc572df37e0689b176812aef1126a3807fa313014a1d24e7a456bded4b343c24ee5a3a01557f27e7d030e182a0a285d1498a577c5e6b12bdec1e9836e3692c228f513e86d7e95e3dc1065d08a0d2bda698be78ea0b2b7f6a3497c0d5ee6b81c94586beb0fa027a8669b7"),
	})
}

func (s *drbgSuite) TestHashGenerate59_SHA384_14(c *C) {
	s.testHashGenerate59_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b2e7ec92eefef5d32b32892d3aa2b65e01d305fd4bc1da9a37604693529fbbb0"),
		nonce:           decodeHexString(c, "1c2c282e101c24cb7a95d017a03ca680"),
		personalization: decodeHexString(c, "efbb618c2b16d52e4e47f557888e6e035717e71b1deeec604eddf56582649251"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fa32817ad83c85b594976eafab28fe25c45aa74d0ab4750b33dbfd88361f9dcd"),
			decodeHexString(c, "2e5cb3c7c9503e019b3383eb6264d6000160c3c99ee5700e7a92433da1c01f56"),
		},
		expected: decodeHexString(c, "a7571c1afd3d1dc1d3b28dbab54fe3514a0ec74ccf999376a963a3820474cdd67b190551ad5b24f4376633b4964490f79a94059a55b967f8dbe58eb20d70f1fdac91565bd8daf5223abfa13b132a140acd33e36f29fe1b107f62e6c45a679247b80c0aa050f1c2d3195629baef7422b72fb3cfbb82a2e4dd1966b1cc27b8e6df1907fbd6320f25594e1eff912cd9685755473b908e06fd30c4359258be0580e6bb2f986b0450d53fdbfefc3bf06c0d80648800234100af755acec4f809c39f3e"),
	})
}

func (s *drbgSuite) testHashGenerate61_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate61_SHA384_0(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5f085635d4af1d4216f8f7475699380378affa49cb7c66ae95061c2ca1f53b85"),
		nonce:           decodeHexString(c, "b1317464462811438bc59ff5be27c06b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0f3f41382fe8f99ea64ffb2edd5c826be69898a519458ecba98623f2e2400edb"),
			decodeHexString(c, "41c6f4a8cc860a22e1545555cc50d8f8ed132b3385f7b8c1321cefdfe446051d"),
		},
		expected: decodeHexString(c, "d7dd1e0d38a8e52b988b7e208f01c3ab4f9887ac645df9b8c140c3e63cbaf6aff412057bd5c3e1544beacff77c3546085e24b30b27cbfca573394088be592df7ce4fe7918839476e802c97430833501a533ae69bfc58c5810a5691d7a14b0398d92817e24881dc6dcbf255801b629dbbd7ea3ee2440a0ebf1e762b71f44af8c0081a711818f246f1e0144416ef5cf56369c8b96f20b1ce3f2da20622d7fbec28b29fd09d24a2a2d2d2d56aca643340329a2bed795a9adbbccd40829661c301a6"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_1(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5fe0188f578f6900174af80a2161d1a572c470a147d2441e4fa99dbc2178e8a6"),
		nonce:           decodeHexString(c, "06ae3907f4f7d47311e00fada6575d3b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6f0387df3fb9d121a7e6ca908851bc1d43a3020ab8ee04bcdf57880f857fe26"),
			decodeHexString(c, "c10ae00ed2e53c045f3115ac10a796d3419109d8a0e5530413c179814925dae3"),
		},
		expected: decodeHexString(c, "86e0234d7d7e783d39d472425e770f62e9b3cfade4afc770bf1844b8914735a2115bf670af0f6dca2ce045eea63b951ab7e0763237cd1f98ce14a68d2fb653c33d6ddde96a65fcddda94b738c411a73b4e976b57abc9c1a77de67242f5ce00fcb23fe7fc6699ca250596d3e80757c5ce588d90118e9622b37d20e9dd259840dfd0826aaa61958d8df5cedb4fe2beffccfc42c465630341464320bb7a61c77a6e51b6b7f9f0e4fe0e518a5aabb84167dc31403113edbc8a0aa89c5a49fdff249c"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_2(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "04e8408191c64461062e513951dc77be457b1bc273e214e00dd3fecf853658d3"),
		nonce:           decodeHexString(c, "c911660eb58098f1bc08bdba56e911ad"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "976e9987da9a03ff06e1de2e94ce4d777a09a7eb3afc0c46fa357e1ae7c26a80"),
			decodeHexString(c, "c21d79a86561879b21e01d33e94a71e230eadcdb49779a574e3c76598d2aaac6"),
		},
		expected: decodeHexString(c, "d3f33737fd112a8c2b6d674183f34317a7ff2ca4196982f9cba04aca0cdc3a3d2fce3a93c6ffee8439a7238c833572f06521c74471b31590d5a7cdeb6d2fbab57bb3798713900d67936bb265bf9caa5bb833dc652897d8ad052b06356ba9da97f37edc396fcadbb1b47632af0261b4df287e801388b43133d64a93fada91d4eba88635bb00548d24be99f2f480c3375378279b16762ed10b5453e2724a8beb298681dc90413e706bdb152d08d2ab633e9dd8dd0e63f5d47075dd4533dbd5abfc"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_3(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "add2fbd036fd0916cdc65e0ddeb1d99556e09a8b0980e79119c088377668769e"),
		nonce:           decodeHexString(c, "09b3d33f8b126cd00efa559476401f10"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0cf2c8210a45194c20f2068a6b1be73ff278418cb6f3ab85079e147b1a2e3ea2"),
			decodeHexString(c, "a610f86fd389413acf796457d2c7e285393feecbf4e18285cf25f4adbc839732"),
		},
		expected: decodeHexString(c, "7241bce7a3de33fb091d01804888d245396072d8f8ecdb6ddcf535a745494260a5462ef9fe59002b7326c47d0cddedcf2d7f959b790a8ba4d4c4948d2c1c2a95f10c55beeeae785e863a252e9616bfda5c0c3ba3a5f3bdcecd4e3a4ec7488e76f7937797277f1f4076db53d35f01f52f864d319a504f3b6402865836758410b29b68b08f1564e83130f799cc1ea5df3c06d9744e4b78ef8386d4bf03d24037054652faea3fba22d018b868243b47de682105b004e2c6b5e3b21c6a0729ec6cdc"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_4(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "87d5f880f80b99890342e59d3b85f80393ed0775a8d4b8ae7a5bf8db9aaddaaa"),
		nonce:           decodeHexString(c, "c0feaccb3fcdb3054f3a6edaed14202f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb93ee435cf552c75f0a0b86bdfdcb3170e1163fe433fcce0eda1a8fe2dbab80"),
			decodeHexString(c, "6f57145a1b51b26fe1ccf12697fd7d23c4d88d25d9fb3f5cad111bc75541d6cd"),
		},
		expected: decodeHexString(c, "29bfe06b883f6755510bd5a3d0dff03b738b6e9b6ed8404eb414d216b764b80cd4188e2b2464fc38988bfaaab14a9b1f2a606c5f08acd65afc998689c507e8ed2ea9be294076a6b10e9d265e816a4cfa696af39ae21800b8e09f36b767564cf734ae707e5baf665a21f48469b46b8b538e977ca3e9f18b30ccfcd59146826c54c0668f33310f8d698f2d4a4654a9dec2ca84d5039794472c252a45be06b321c013c8d527ec5c49f15894808dc337806e2c283637b7e6276c6f4f5675de54366a"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_5(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "09e3acb7d872891027598067a5814755c4af34308df758da89913938fd298024"),
		nonce:           decodeHexString(c, "0f23249457b52b73fbe00f9a77ef1117"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a54d0108d940df646b44b06a73781d370d62785393a25befbe8312d117465d3e"),
			decodeHexString(c, "6cf2ee872895735082301bba9e45a0dcfcab202fefcdc1f0a88bf0e825078139"),
		},
		expected: decodeHexString(c, "978c96e8615c0d595bc521c6e59ba1895dd83f8e62b3a689798d7840c4b904e6cedba7f9d7996c20189ca1d5490b2ac49021a7fef21715fc1c2f71e9f31897d4151b5a9692238dd3d2e802b201ce72e2ea6af7464063b2222eb618660167f15ff2f781371e2dc4ef7aad1e78163bd69125cbdd300d001e3e6d64c2e8528fabe32becc906929692f6971db3f9f987df7066f25a440aec2c9e0019a2e1298a279fb20748517be723c19c613192dfc4e390dd49f1f31985208460357dee01738475"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_6(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "8d82faa2471301c176a49034a3223363e5891be7bc3c35fdca216279f2b9ca5c"),
		nonce:           decodeHexString(c, "f8187460d3724d6233a3506b36e8c7c1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "007f8ac83c3208948b0011d70f95db6378a3ba7597d92856a75794d4db2a119c"),
			decodeHexString(c, "3b914adb57d88bed5cb70f9788a5fd8f4694d0fb977bfebe60176c51e1f70246"),
		},
		expected: decodeHexString(c, "6c771ec00fa60496cc3684729b7054b2e539e285671bc5ab3f6e3f8b80bbbf178926b36d94cc6824506e9d920cb9988bfd025d4b122548609c9d9b306b7ffa0f6edcc2278cd8c536abf544ae2d21df23483765f8931e2065a3a450ee718a32e15150041d8dadbc1c756948d102176e486b9e7516e3eed1d201a63de0a9a3e3f2e5c4751f8d77c3be7275b1c8aff401e3f45c78b9c1fd6347c349b530861a8f6abc8570cb10179843e422e0e1e8961af24107fd6052526096997b9609499e499c"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_7(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f933b5a23efa112d1e0e93d391aae55015beb2468786929d9d1d45c2b20ed6b9"),
		nonce:           decodeHexString(c, "7846542f383c388356fc4fa1d915d337"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2defa8187afeec70d0a254f34f75e180eeb107f9401739789fa57adc7cc211ac"),
			decodeHexString(c, "194469e824ffd7db69262cb3a064d8862f82abc54f6bb10b874ae6b0893d0baa"),
		},
		expected: decodeHexString(c, "81c5edd27c390ea387550e98c73c8ec9af0f433ace2cee681f340dca16cf3014db120b5064974aa0aa916091259d4c2422c1be79bf599df4adb5478c5e27816c4b7b3ba16590748083c1f26b00a732ff1df704fa2d07aff4746aeba53145ddb6078fb91734a4f1716d1bb91a4f1dddc27f0d3ab7cc310a90efa7fc39e8ede8f4143052c503731f4f1cdf825e3f1ed9c457e38a5473808d3a03e237c68764dd32a6d9667201a4e004fe072be3de158d332314487c2c619a483cc7a900119d8f4a"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_8(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f4c916fb51e2fbf5237b4ad80b8fabdd86de22a4c7fac26f53b6082a62230f96"),
		nonce:           decodeHexString(c, "48fc31900aa0163f4a22ebf64d31912e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dfabec14fc04c54c3654e08bbdf9eedab70078fafec610082bd800ff038b62e7"),
			decodeHexString(c, "5c5ddce832d692e3bdea8c72eef7276e3f99bfdcabf5388f4d3fc709bca1320d"),
		},
		expected: decodeHexString(c, "1c65ac44cd9c19e50e467649fc280903f176f37f3a870b9f7bb30f173e0acc736e8f3322cc1b1540189ced5a82b8b3e716012fba421ef39918de623f50bfc697abb56a034ccbe465d3b39cc6d305ed58eee98c539d7e77e6fdef520ed54b933ebde3c028e36156bdb9b3612fdff6bccc0c4524e3d8fc12439ee4f05de67c65ba35031f07100425778e9b9bee56e32d66f880cbe95e4af3050a5f61dfb86db936c58df7b2b737a80ffa253adf4456801f2ecacaf7f15068a685743be67f86ef29"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_9(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "460fe13f8904f0e13caac6d00ee0605a74f4f8d58f8c9c6cc95fb94d4e181e4e"),
		nonce:           decodeHexString(c, "32ea29d7fcb4562e69e07a8b5c8be146"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "1cfd579a0a37f5c1a5555f4604353c57f6e10a125d2aca12ff0185a884512cf5"),
			decodeHexString(c, "ae1f19a9c43af40edfe61fbb778c13e72bdb2005d819c6d906d643393039b260"),
		},
		expected: decodeHexString(c, "79c4e16ea48251f6738d657b537585712aa4d882b483010b9f92dab4aa749ae29db2081e6d04a5bbdd9a4c5fe61cc4617d9a16fa815adcf530be39d1d3ad843f3fef9b6299fc58c88514521635cd9dc8cfc26a7973369cb090da50b6a1d6cb8c50e2e0fb90e96585a974edcee90c4c7c6792ab7dc5d10404ce31fe55fe0a0377ea13574e9ea8e9cba7547abc2432126d013bfbc27dd7de1a46241e2e15a85b7776e082b0c5cf76171a8f4a08dc395695feedb8d46eabeebbc2e3da07a405fe6a"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_10(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "725d56ede85e1f1239df7adee388edbf0c69af3df69b60a250684b6b4801689a"),
		nonce:           decodeHexString(c, "c156af45d6c551212eea7fb6223a9c15"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c95dd25d31357eacd11117e3a44abdf6f0d3283ef16a4bdaecd124776230919"),
			decodeHexString(c, "7d7028f8a4bd307d1cf9e113bbac18bdf45772953190cc310080580d9f402d82"),
		},
		expected: decodeHexString(c, "31a724c055ff1668215946ed5a4b492aab198851280ced1de4f57871db31af69447086eb0b9ed1ffe77b771f08f67daf1c9526edcd4d4294759d80da8aae559590df5e49e0e54e53cfb2cf57316c7187af624fb86bf6fe44014b0579dc5f7f6ac3c5b4c95710e3e61882e8289e17a7081d0710e90c6c00fb2a295e1d6a1678d45ba12d4e5a039860e6d22c20328f4485bbf7737d57667acb15df6f3e010401b6ac64707ef6732b60cbea347a9b229547312ae90d701966e359b7980e9e2405ab"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_11(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "708dc47c4af4ccd27d82bc7ab1da9a76f2daec1bcfd3fc2398daa0d6bd93611a"),
		nonce:           decodeHexString(c, "638ea30a5e5faea1ac2c959bd3c63f2e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5312decf4e3057949bc97e2d159ba6a6ca94aad01b6368b821a1e0708fcb88c5"),
			decodeHexString(c, "a05b03f26a49cd5e5ccf72e18b1542c7409c70f89b171e0cbecb260fbfeaac4b"),
		},
		expected: decodeHexString(c, "1f8d39a247712188d1f7fecf29897c5c4c4ea6a13f1098ad7def578490e1051613aacfe216805b63a5164bf34b67b4580391825b3200ac500b344d10030a965df6df064df95b0c1313acfce73a1b93a6994c833414b4b3b8071b96988121cfcf4c89a03ac16c5bb189dd12a9d1a42d4463dac8ce0296bbffcef917b8403b85b6dc5b94bc1bee9a865283ac02afeb20fa73da4ef9f3716ac6d558f76aa8515a0980e75c189cb836e02c3a0b2fb7dfd9ecd525bc4bad0498d2076ce94882dabfaa"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_12(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a342fba3f7a2df8a8d25130c5706bd478998aaf8f02646824f0481035874568c"),
		nonce:           decodeHexString(c, "1a637cf494acb59084f600c18233d230"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0cf52f8ec7f53445200308ef04d24152ade65f8bed4bbcb4927d64cf2a0e78bd"),
			decodeHexString(c, "76be4a79c72ebe2d51dced9254f3cdd52ac20f571d323f1dfe6bbac829fdd740"),
		},
		expected: decodeHexString(c, "9b631cb56d5b8e07b1e14111c8a6d2485e442ab39af4b22f4b55ba1a7210b90682ac6d552531e35af6d8f4d659eab41cb89b581756bf12173eca35c3b2324be8230778fbd51f1b5f42f2c1ec8d3e38ee13b60418b0c82a8690822b62f73b1fc689214e9a33a90fff4a8a2e8cdfe84866baecb6bd19984752f8f72cb5346d8a68b6eb0bd2e19d698ca6016e6819317f23a3038416df7e72ce35532aef2f1428dc6127213dc68c06b26ebfe1d7bc0c96fc89f7e75a8353a279f5377bfb2669a085"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_13(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "db08f992d8ecb7037f7631342da4cf771f540d4c50a0c09d3675ba670ffca750"),
		nonce:           decodeHexString(c, "c7972b4e81f028ad5d640f9e0995e830"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a2d43e01405bc9734a70e2f6fd343289c33ebbbe68ba59554d6f16344b2b419"),
			decodeHexString(c, "c580567053d8a0eaa818cb611adfc1b571308c0fb437cd84d11a4eb80fe752ac"),
		},
		expected: decodeHexString(c, "20e716b020bf03816f6bd2585b03529c8c258bb583450d8c47b89a3706ee488e8e3d73429be19798c69222784533239b973942d19d048378a58c6e076d9e223beccc32722e097b3df774018400bcb963a3319cb4889975755c422fae5b9bf504e59c341354276e5decbf3c279a4cceeae6eb41f0abb6c1355938e5d0d865c27bedf1f33a1accb70c7c6fcdc97be324ee3a86b93685f640d92eb9458d3e888e273a66e30cd98f8c58bb88c1bb1c541a525e62970875e5637a59ef24ce71d8b403"),
	})
}

func (s *drbgSuite) TestHashGenerate61_SHA384_14(c *C) {
	s.testHashGenerate61_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "0ba5abb25413c57b2d4a6d673bc03360c5ce1df9cc9fc8cd26f8ec0f4ec87ecc"),
		nonce:           decodeHexString(c, "35bcd2d6a138d4f3989b98b60632b7c9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7112823304b16377182ff9aba920c97ec4d4f23cd472fa9954ded16495d23f7e"),
			decodeHexString(c, "ba183a035635d9617bd71b59fccd561f1c78a7589c7fb3fedf41dc2e6d5015c9"),
		},
		expected: decodeHexString(c, "94e577e5c4f66be345c6be7038b02fcfb4070d5bf74f8004b59c279cce961dcf5bfdce2f01e007790cf770587a68d0d24ef0fcd1a148fca6920e707289e58b81fa4a58b5a018a358d336a20daef30b2881844838e51c56f11533b25c77b9c6c6bb2c0657350f011b24db6c60a84232dbcd218a816563737585c1ca6152ff13304ca86dff20f9f9596aaa21448f2c6e620eee58f69338e3b675d29b478f34f0e60dfe7f12f02e6181d19185f7dc945210d86d31e85eae03161e947fec0f0fc91d"),
	})
}

func (s *drbgSuite) testHashGenerate63_SHA384(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerate63_SHA384_0(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "3367cba0b8f854e4d070ab8c7aade94fa952211c24b0bd593a6ed039296fc8ee"),
		nonce:           decodeHexString(c, "522ff5bad7c6cc6b3b75c217fa02451d"),
		personalization: decodeHexString(c, "160987249e693f453e084592fd889fe4af2881c888922e7f655f9980a2e42b0c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0bb082e1aa49086fcfaf99626560610a296f56072ac2129761d4dc8e7fd16616"),
			decodeHexString(c, "f92c004f6ba57517dbc7fa0ff0f21b89fc429240407b2f9196773ffded8847a4"),
		},
		expected: decodeHexString(c, "6b0a99904c5c172c56ad8bf9e3c08d28245ddc8934e3e494219c8387ab9b895d46f031e50a3b200892ae6a2fb0876fb60e57cc30989eae21da130a381fdefa9afd3ff78bf68a9ee8ac6c3619f2343532060ce7c7560f88da75170914f3b45913324fa8aa8ee85107ab61833325ca4aaa9caaa8f0e98b8c18da6739faacfb55dccc344191f94b58293fd1454cc8986588457dfb63f7e53206c09e07f423d06b6d77928d426426b318b34eba140b0a1e962b36871d9190a0fd9e7b39bd6684f52b"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_1(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "b0b77fd8105556f7d2ba75ec05a1c572b5abbc8041b2e0c2f39fc2675227e653"),
		nonce:           decodeHexString(c, "de9e21eba0b8761f3b39d338dea7e62b"),
		personalization: decodeHexString(c, "cc6466b6ced020b7eec5899fdb4e9ba942cd54c0c41ebdbff769c39f235f350c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "07e18f9f5172dbc2e135b97d57a7da9a2adb0401327976b516a79b8e5f21c19e"),
			decodeHexString(c, "9c4dee11861ac4c4dfbdbedb9a8e150dd3c9ce3477c1ed31d4637a5b542e2734"),
		},
		expected: decodeHexString(c, "0b844db9a742ddb41c755d872ae421331e7e38f960be8a1a9d3a294bac5868d9e60cfaa7591523c9a353d409f9c75cfcd197bf3d7626db8333e4ee15195e6bbbb92c18a2b89e6c2d1419c85c3abdcedfb995dc73d87c5005a842a7d8a8e3a9306690f289de2d4124be6a7992579642e707461d344b3e62cc7fcb8a38147ac55a8bf39c3a4483168e6e3a068fb8720755e9117354cf9f42be654508dbeb7c626678091be07ba9a69c375f76cf6a81658176615a7b08a3f759ca4d8aada9cc06b7"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_2(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "719e042c520c191cd66904eb45a6a31bc35823243a87d6aa694f46977556755d"),
		nonce:           decodeHexString(c, "0e7a1f3ccacf2d809e3b785b0cddb726"),
		personalization: decodeHexString(c, "9dec818051541fa05260656422e45801f216122f402d512b2bc073f9de847c2f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7faf1236fe5861e3eb3a60119e8b3c385ba0b758e56f5a833d0a2682c00b3eb0"),
			decodeHexString(c, "7cdc6f00a150165b23ccb1dcb278e34ac915a21d5a7ffa4a7ef1fd19307edc97"),
		},
		expected: decodeHexString(c, "b616ca393de06d6a7265e179dff284e2cffe8d460f97eba744293723e96dc78f2ba4518aa6a8259eec8f119fcafdddd3ed220079a5a121e571a7339f9a4d91b114bb29ad409ec2d99cb7849a2c5ab1f3a6d12e8a59f994b8b050e1539f4f69258bb87aaea49a1b90d011fe3585ea2c337511f3848a54f8ce6ff0aba6d37ef1f80596024660408ee779866adb75b2502fd59342c1c8ad074216fe0e72489cdc0d0a1b6893b6b55831fd93ddf7c7f65da27e9c878313a6639e18553ba5d912a01a"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_3(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "53e1f9ac699031b33b16d55bb021e648ed8a28fdc3fa85322fd9502d2a84d518"),
		nonce:           decodeHexString(c, "59a039426593e41f396728576a8aca70"),
		personalization: decodeHexString(c, "ce18a5c3d2c6b59ecd716fd5f265ea8b4da4289d7e01cb1df34f772e3caa4327"),
		additionalInput: [2][]byte{
			decodeHexString(c, "721894371f14a98d6d86ab96862784e291d1a9e1308ac4deed9bc6f86425a83f"),
			decodeHexString(c, "c118a1a94ef21cb55db1a4402ef742dd71ecdecff420c0f11560ebe5e7104669"),
		},
		expected: decodeHexString(c, "6de0328425a72e2609f602e26b34324c11eee4fbf71f0e8a6b975c6f28828faabda27c45f905a769b199c16e64a98e82eed115980c2bc51eb3a61edf86e25e177e397c4665e65b3c3524010204c500cf3ce4a7280340a2ed4a57707c9c826c0f19aee2b3bf372d60cfec73b448bae063df55f8984d482e083a75c9b351d58a8e22c35409826902182926b645cf6a31243983ac9c7a274bebb44df8750ecb6574cce2484635b9dcb4a4e376a74c6ccc7260c283c148e9653144c6015ac05422e6"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_4(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "6438ac32e88b88649bfea19571d7ba060261ec79026b05b816677fdb67398bf0"),
		nonce:           decodeHexString(c, "344b242d90e019934088688b776485fb"),
		personalization: decodeHexString(c, "c4f6966dda5fa6d4db09514926ba854e5a6c1d6b993c755730245bccadb5852b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6ff7bf01fbe5a8e2e37b1b3b5a48797db4b7437a018feff8c8a362b68e253d81"),
			decodeHexString(c, "91e119ac3172d26dc7f6766a032c278c76a2115370e27da299ff4e4c9c1ed4ce"),
		},
		expected: decodeHexString(c, "7f9238ed1578762e2c9eb70209f429e8b9d4ac874101aad11bdfea76fc9c10a89d63ddafc02bdad6da82478102fcde4dcb75c869350ce82863e4b0c6a97c58dd19ca44d3e1a681e6ff9860f210f01eb786559c2cb96b196e1f56bf44ae2e0c995a1f339ec64404b060966ab86b0153708e5420e76a77edde266f17bf8931c6213d7ce678243fc8e9384df82546b5f00e6bd473c0089d44eec8f6fbff0fdb373df4a15f0d5a6006d9bc8b3f266418a5424af2d515d79926da9ce92a0414f6557b"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_5(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "10b838c9514802f9755a3268e48bd5b5ae658f281b1a09b7f991b70f621ad90e"),
		nonce:           decodeHexString(c, "e35a4496b07dfa0f60c3bc7f6482f86a"),
		personalization: decodeHexString(c, "d960b9a4af9b5a3ae7f5ef89743248398886739da826f3f016cabf4f917c0226"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0101a6605137fd0144e3a337f9abc2d345f474c429b4ad8ff02a831b61c7cab1"),
			decodeHexString(c, "9828206bbf49e20be0c59d6dc15bf41eadb9207b65ba09bc5f8b3f91a26406a1"),
		},
		expected: decodeHexString(c, "aefdfd6ec7f193c144c87a01e28bea811e29c809fdbde5d3105f8f6b42bfdd20986d3fba93e3b93761edc708d434865c6e0734c09984727048d3a22f2a91233a8282f6cdfe02181ed422ada52efc9eb83a78185f1c20f70a0df37277d6908b9a8d25e1651bb7e75a6c79f3bb556a18217bb2e2f9bd820672698b4da00afbbd7f4d8539ad935b9292991cc95fc2cc0d8f5cd9c4e46dbf0866ca6f9172959afff2ebabe01554baf93ea228fe8915e3ced5908e11227a13be93e806490a0c54ee2d"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_6(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "e11ec151187fa63eb594726f36639c151ff6838b48f594ac9a213cf44c8fb88e"),
		nonce:           decodeHexString(c, "85d98d8fdd7e1ec7aed2a0f388662467"),
		personalization: decodeHexString(c, "59298aa898ca587ef9c12c0210541dc84564f04cff157747a7638d64cfc859f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8570c3a713f75e1441c6569c64dfff22c3d7cd4c5c0e3e20a52b6479e43d78c1"),
			decodeHexString(c, "c4befca8e4ca28bee4baa041c568b6d61afe88871ff31568684c319143c3e994"),
		},
		expected: decodeHexString(c, "80f4357149ada605dae89e177da4150f1aeb8850887551140e2bfa43491f4ceb0b0521f44a6c6938ec9b18b903438b7b7ff260831f28cedfca51c67bac0ccd40036c1cfccebaabbe93194bb6dbfac7e496e1da870e1d42ece5edec338d8e27ec9a884edc5176448c453c0aedb4dc5de7a707dab7259a31f2eece410be6e4caafec619c445c743702d14a6935b472ea7033e5b11237c819e9c6543e0816fc662f79d84e2cf47a2d6cf6dad74326da745ebd0a51800e9a6a47d3423013859360ff"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_7(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "597dcf0f4f85dc1bb4b3cafb22de583cac96ca661e4f06d8784f695b965de45e"),
		nonce:           decodeHexString(c, "0b72e52811d44a40746bcd804e1ace8d"),
		personalization: decodeHexString(c, "36c78d2c4839a1fcba7364a1a6baaa89c493417b021d576682bdbf1a02b69b56"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea94293cbc27dab524c070e30ec4eb0be646f09feb77ecd2bc702d518420e1ad"),
			decodeHexString(c, "7f64490bb0ae24c93b901106362dc086a494c3f11f9d29bdc48d407a0ded757f"),
		},
		expected: decodeHexString(c, "b7c6d10f36ef924886827954850cc292ab2979323ff1f7cedb3b49222355e2404062db45a739b264bf94b85f15bff29adbb17bb4ea24bc3eb3dda163dee4a267dff1168aa30cd288159636c15c783941fd2e81699a8440469add2eb492de6a5fad7654b111328d0e9bf320a067873f948312bf69a532471aa0cc7335cb313bf49226aabc47b27f5dab9fdbd33b52ba3b7917dff009665a5b190eddd376312970e583d38f287fcfb6e535a745beb9747f6752c722b17a464097cddd0c17d7fb34"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_8(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a84fb1a153b2fb6dfd6c8c01050028ed6ffcfda7438fa463dfcb6088424031ee"),
		nonce:           decodeHexString(c, "e8ab86143a21f103d2379ad2afdabaa7"),
		personalization: decodeHexString(c, "a061161d44625d4bc00c369eac66fd3690c7c6468c3584ec272db8e54fb09229"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b0f2fc219591ad6f67d3c43e04de22740fd63ce367a2685b1c591574b53b1811"),
			decodeHexString(c, "08c623db0ca9d92d493d306aa9c3c952ce2e15540c8921e9747aa3a36e5548f3"),
		},
		expected: decodeHexString(c, "df8dd6d322da1b88432dce878f10445f86efc23afb3c5200b392f5175f9d474cfd38005da15a2f701fe6fc8a7c9d69c9e3aa08e59e6c9fa414708bf0d40bad1917f1352915669f1a2ed8fd1af2c9edc75ddb66b568a8b8b44acefdcdad531832f452bc7e38259f7ad8f7dff1121ad0aaf97921c6b5dd8281ff21066513dd82718e8643fcca8ac51e3afd643d1f964a32bef160e44696de970022000a56d7154c0243dfc4c93ae79e17e3ddde4d885414d38def6dc16a4effe71167b3c1e4c1a5"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_9(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a9b7db709f62ea96c92bcf593e08a67eef7123657aa60ee0db4fcb8ca35b01d8"),
		nonce:           decodeHexString(c, "3a6b2e969eb854705fbe64c40566346d"),
		personalization: decodeHexString(c, "1ff077215892c088e02f40e314b6cb8c3c1bce0d221acb447bdb7a27cde438f0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6aaac8aa93b3e7e18ddea7f7137a2b150e68007c4f7e49a71af05f9a11bb46da"),
			decodeHexString(c, "a31e16dc94023a66d5cac7abbd99e12910b348cd86a4534ba89b6cbcfdeef9e2"),
		},
		expected: decodeHexString(c, "fefa6160da2ef6f934afd80507c05d4630addcdb325431e17a34b77262b6cd0614968078c3c757ac8c3ac7a013bee5f88cefd5820f02fbede8043a75695c4e3c9e087f32ae8e3cb0335e97f8983f4fb82d19d8b6372e0230401fd4e4a07712139a8ce1c57e72d8a734ee272120102a033dc5f5f656a034aed999e4cb2f4f592e1d7f2e4d4583937d7caf634b6e0507b1b4ad10e0ba16d44c1ccdbcee8784a6b65f58dd4ed768e9ce42e1dfc7d9bfd9d1528099f22e221d95695616320216d2be"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_10(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "f386e0016584a36ba37014c68095ffe800d40e7b670721112a61624a791bdbce"),
		nonce:           decodeHexString(c, "a967ec6cb6fe0aeb03472482a937d01e"),
		personalization: decodeHexString(c, "0cd17ac981337a77ee1a476e747380a6702d8d5cdc9a4bf3ac433cf19dcca887"),
		additionalInput: [2][]byte{
			decodeHexString(c, "001a0f2652ad16e0bf515facc33e440906b7866f13310377ce76b7158fa2cde4"),
			decodeHexString(c, "a06a08311bfa08be609dee9ce0cef830bd7ad917af6b825be35256b0caef5f77"),
		},
		expected: decodeHexString(c, "50f6d93f2909fabdd9a4d7ad2c1eba8d970cef68dd00b3ae537d31476bfbf4fe046912465c546a8bf10da18dadd9835a10da49560742d0425d87c61a2d6133e857c70d11d0f54152ba91d9462a2c60dc79f65927e56dd7f9ad77dcde97704dedf253189e066deee70ba4d938e9c31f68dbe5b5bafd4c00ce72f78ffb714f6a9490507a09102fb32cd8aa40a4869324142f1cf5b01661b8bfe442111767cddb7d9e601fb1df7f510f2820930776253805646948932e72bc2a4e69fea690d2977e"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_11(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "a6379c0799535e100d1092c675df9ec321b8e5490bd9410c3f7449a3547615d9"),
		nonce:           decodeHexString(c, "5d32a5226624a29329471de262112b93"),
		personalization: decodeHexString(c, "b7221d9819e0711d77c885aef71cc4204c730f441116c3893ceafa8e72d83b72"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b222c369619ef10ddb6d5530770416408d22901b13c3fa3c4b381e6b05e79862"),
			decodeHexString(c, "85458492e9ea23e9fa7834874d032127f9c86f0e7784d7eddf9d6adcb9cf88b4"),
		},
		expected: decodeHexString(c, "0509dfd32fe93c7c26a8550a79e6bd294cbdfd12e5c7c1691be541cf5d86419392955480b23d27ca6270cd7576009dcd3a229a6e3c4af5e48733e71b741a5d9eb1e25cc94558115d27e35ef04157d6a6bf840dec1114cbe6654eb3d08903fc0ef09636f3254b2a58c7eea8723eace3b13c5ce9b0432741b33efec2ae2fc78dc64d2a6937ee2f10fb4433af43f5c7356c5615cfcb4cc0e8fee95be59c485fc170bd1c6ad9aa15e2d93ac3f07e41c47ca3d490d5524a806dd10409d416811c455e"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_12(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "5611226d073719a6af19c98cee4933de42bf513682df50ae94fa906f1da49327"),
		nonce:           decodeHexString(c, "2efa79466faab2214ba0725d1bb37191"),
		personalization: decodeHexString(c, "42277298e322e8d9e7959a29ad4d5adc0e79c5ba85b17f29e1370acc00228bcf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "263fa2502697af15129db52814752693e8461d327bbac88caa3b583862bdd845"),
			decodeHexString(c, "0c66e1b8ca1bcfb909a104fb582c8c9ba85db1792b98799a3e6292c95dedf205"),
		},
		expected: decodeHexString(c, "16973645325b777c6da555e9654b58c6555ed0c6f9054da814f53f363ec9c3d28130a2e558d1352ab26e3b205f20d5f77d7f3efc93a355d346eb4e192650c905947cf6ae166b6fe203ef41a366909a7e57a131109e4a29f9229a8004a8aa55d1c9a20236a4ea95bb8042bd0d15988963029f5ffbd3b5bb2ce433e26582c0ef89a9b7ac13df7051fdf1bf4b3031aad7fc8214cc233b7d4000596cf47a2e986a5d72c2ed3e005a7fc0e70ce77b93891bcabba208845fc9f9cd45dbb5e1a79a6cdd"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_13(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "2d69eab46d8b77c84aaca91169774793c3e46f508a4b6445d9549eb531ec3a71"),
		nonce:           decodeHexString(c, "10dd5a1a07ffb2d71214626cc5182cd9"),
		personalization: decodeHexString(c, "d2f3e69da5dba1e14a218cd4030d8994bd10a96539e67e6968595bccc649e310"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ec61275d4b1ec9366aec719fe46dfc075d860e61f75340dc4cc4f790a9c5b0f"),
			decodeHexString(c, "83e7f1447c53d1520d5fc9b855b61aa8d4078e85b78f8e088b5a6de026f2fc86"),
		},
		expected: decodeHexString(c, "cadd0cff161e9f787dc90d2dd1a5d3bbae6a771edd657209dd67f61d618ffee286c031247ff3d921fb24b16f3b4091bd0e1246745eefd1f79bb06ada715774bb79ef0379f37c868ddf768b85a279531badc51f9114c68a1e6c89a54dacd0b45a61ddcdb58d79ac9a5930f413a463b6bf12d52866a4bde5460bef6707f5f6b5f1e2f74e1363d93c6cdad99773b2bb2ba8a30c208112a67f7d0c0f1ccd09e554525b63d3bd16c3527ec07cfe30db3237425f899143ab7053b6d6f962be1212619b"),
	})
}

func (s *drbgSuite) TestHashGenerate63_SHA384_14(c *C) {
	s.testHashGenerate63_SHA384(c, &testData{
		entropyInput:    decodeHexString(c, "161bef119af736fd23e188a227aae76edd0fe654f9f583d75d77a3764bb8479f"),
		nonce:           decodeHexString(c, "c6e14c68309ca84788ad9f15d5f0a90a"),
		personalization: decodeHexString(c, "8b2039a6d4b909906a8794df5995fe9ea977c5a1a30982015aadf937c863cfac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23e4e6b0e0c1b28a6f9731f8b09960ce7adac17527b3bbaca7c811daea4b1cf5"),
			decodeHexString(c, "dc7fac6aeded9e17b5bb5e2bcad9424d42dc07e809da59d52caecba6e75ca457"),
		},
		expected: decodeHexString(c, "5a42b35cf1b72d2520d92719a94ef1a7ca5b6d6c7eef2de25c8ea44c1fc3a9a5ff2128f47bbe58084a0c7a3fc790626eff5666b4c1e68fb2f53de3370b29c398d5067b255f5f7f29fdb0f8bc256ee3afbe78a33981626837c55f981e56eb2e1bdd89ca081e48f6da7ce6576fbd37dbd57a3f41cf410cb375614af239f2e10218e777fb97a55d9cc73243882b8d8d2a2c812fbdeaaed90b5bd71a274b4b171cd7e661912c9b3de1714a3fe4931d8fc7cb1c9f64f4e37d4e5dbc31602d2f8699e0"),
	})
}

func (s *drbgSuite) testHashGenerate65_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate65_SHA512_0(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9c96a34f68689b8aa8d9c1f6cd0fa7c6f96071caf1bf5556f45bdbf48c6cf0c6"),
		nonce:           decodeHexString(c, "885c2539046afb1401eb7a5c84dbd9c2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cb61c4f75c01b578aa233a0bae4881c0a11527c22fe7b34fb6ae62eebcfe6085"),
			decodeHexString(c, "c066fd2eb8e4aea2e7145eda0cfc8bef5eedcc367b1cb4de7eb2c2759fa75bf7"),
		},
		expected: decodeHexString(c, "782c208ed58044e78b5bbbd8772a3caf25b47d36afeb0d3493c43e01cc66a0ca2faced2ab186bc46825d989cf8ee7c95f8c0b0d2b76e6c8590e72834d4c52445aeceeb7bf5f5d9ac44a12cbd3fa7f4462f856452dc4a929182d2388aa7635b9698a912585df7f560adc5080d53b82bbd7e9e480b00d1da5bb2d480cae2ba8c67d4bf3bfd146a91d6aab39faae1600af2ce3204cabf4c1caee4cfd5e6f8db1902033f7f8d33bc6e0e5d32a320ba735d091f30867b7cb7880c2e3ce6aada79664191df360d35fe9ae7babca41485b06ab49dff528782fbe6f2b0e74996e9ce9272d1ef392be5c17cc62c74be504e6a8731dd9548b0db27e0b7db4886f537883623"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_1(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "52ebc799bc7b658e84fb2f6760d403821c2350a4fd751d407c456532b16b0987"),
		nonce:           decodeHexString(c, "fc734458c02c5317cd2e38ec1e64f37f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "50b0b7659b736a300d9938433ee8bcffccaee9761dada3462207ec11d00572cb"),
			decodeHexString(c, "711f06be74cbc8de412a7addb0855211fc0c20d2f955c5cd0d70c2834b0c1f42"),
		},
		expected: decodeHexString(c, "bd45e9f0591371a72c8d338b1f71894e7a3d9577a7b07b1a065942aa59455a0e41afc58e657debf2a8be99c2b2d3fa6f3f9852a5100cbb687811384d995539787a4dc49830f1bc7184d58f1b9f300b19733de1b6287b6a7a445dcea1f7d4fdea838ab2039ac2bd62813e4b65618af25555b18c8fb9d591e51e902e7b658eec9fe4870052b1b07fd1fcc17d5bd18e09576993ba08dee87600af7134b6facf1e53a0cd5ea027b1eaf7bba679ec4b790d7dcb875b24414a8ab647ec759e3128fe31d8e115241189d5399b6349dadefb24597e14f75e58397578a8d2b409588a630656543ba6984ce8083a7bdf0c74661baa0807d644efafb3fbeb3a98d1c09d70a7"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_2(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3d0a38151851da5410908381af03801f73e07426d149f1822d6904b6d5fcc839"),
		nonce:           decodeHexString(c, "3603d5a8171a2e1a0adc81cf82044ac0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6933feb91c17f882725f5f79eceb855d34bf82e01eb9079194b53007bf3408d7"),
			decodeHexString(c, "6c1701825040b577c9f91247a8d797ae5d3fae28e07a6540a76c92623acabff1"),
		},
		expected: decodeHexString(c, "7e4cacf28872c3c322a5f614b097d766b806762e652e0fbb697112972f0cb626a9ac2e847479519b92116f7c4dc8e1884cc4a37e8041f5e18a906c97e7c239faccfb8b41d0f6b2fb196b42991cc8b4f4c35e45963182196d7f51eaf08f7a69bbe43227e3768c13527d83aea146d0e1f77d5d1c2217cd6383f7bc2bc574078d9a20754857027885eb65b63b8d51f430f7b431314b96f7eee3966474247ce91a95b2be40b2f08dae914df6a65e01027ad9240ff416479a997135bc1762b3b30b80f7d36ec82c1c0451ead1d8773dd93324141a396290a4dc5c684db96a375fd82c2de9989e4bb2d710e63c4533e62dc673f50358b41b07afb63885447feb1660ec"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_3(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "44f4d2d9b078320725d5ab9d41648ad8b52f76e1f1160ae6a4956ae7d4459ed9"),
		nonce:           decodeHexString(c, "29dc8dc0acf8891a6b9bb651a39dd909"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0cb4e347fee636a60e1fe51fc0d8f1974c4455445ad0a0f009a386b2f23f184f"),
			decodeHexString(c, "f37028b7c6f5fb7dbce83e22b6ba38a1150f239ca495285cc14d8f68978b3f8a"),
		},
		expected: decodeHexString(c, "ab66f5b9283b3a6068b6d8b3f3286951221aa8c860a1995068ce2d0126b8576da410874b8b41fdf9e75171eedee86c9b58cfc8dbbfc4a1df6acb3532b6098439616a04a010e9151a9c41c67e5670705c00024d0509917da47d1d36e4c6a3fe64d62c49e90e4f2b4ddc7f691180bcb4824546351dc796d75a19aba6538b26ea99f3d681965935da7ac5205824503aa3d19ee0419a1046cf9f527621a748a5d5c3860227d7789346cc79a777a2b82917a7d100c8ef5afbc43620bca5d509f35dcaa7eb245534b214a478b73e2743c4e8818059a9e5ee72acdcc2ce8dd44180fd34bed41aaa587bdf7cd093c0e2e3d08793593e8fe2c291386c52ea773240329922"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_4(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "17051ddf920da86a7f9c4ed3ee7a346b3b58ce19dfa2364ca6fd5a9021931f05"),
		nonce:           decodeHexString(c, "aec5cdd0d86d6345d06623465b6c7a21"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5320cbcd949fc9534c173f36028c5ea68f921e348674472c6511df59a9cf045"),
			decodeHexString(c, "93bf72dc74518bee957273b296d756b26a699e397262f53c071475d971a73624"),
		},
		expected: decodeHexString(c, "03d2f3326a467f5c09a51ef4999b9de9631138a6b68f6f4d95bf49f7ac898c3658904764c2e2bb9146369b73f6e83706b83e59e53b7af21c53652a5c3c0cf0ee4fae56ae223d431895618a09157144a653f4c6febef566766b19fc9042292762f0324ff89cbc22bdac0ada6efa2809f8b1cc5733a42a25386a7f37bb90c1397b882fa7c17ab64f65a6b9ec063ca5ee8c1b82cc520e737e600d3b41cba59f5d5a6f5eaf6d42adffd2e84620d3276fe27159b6e01a47400288695c55073f7d6f27c314f539a4982129e3afa28a33ba0b81bf9c9a9877150ef19696b10d898d888b618fb5f7a4d9709acca57b23e355c140deab44faa97cf1267f29fac85f9dbc21"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_5(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "12d1f373ee85a3de0fd9e089177bdd6cfe4a9e96d4b455914adba312c62cdbcb"),
		nonce:           decodeHexString(c, "e00da64eefd872ffa483c3ae184c6af1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "05ba1f27821a05b87d5fa56ad1ddd330b943f62f6dd4f9a749e074db5489d2c5"),
			decodeHexString(c, "a0501b855a9acc67eb9f65cd4c5bedbe47ce7b967940798255ce86dbb9d4fd3e"),
		},
		expected: decodeHexString(c, "b8744ae9f2422e43746466c68ca9d9f43d32a1fd497defeca329697b4aece6f93609564b9afadf3605832c8705dab5eb8ff02a3006b2a7a91609aabaa4807b252a1a7e641c438bd5963b3307ac65231399edc841c3c43cfc23de8a180ca337500ea402fed377d10cc451ca85a6dd2a5d4354d0edf6191668b9ee8e2e9638b47e984fbfe0fc9e46d21e57e3029a2cefb739b0dab91a450e51aecb8c3eea5e9e0a7f699ada48406df6180d8fe1f03b0be0611bb39d91fb927547270327da75a0cf66230e35e27a1f382cc29ff283369cf5a0318ec3b5c71335f5823875b241415b40458b57149e98e2f47fdc948c08316b308c0c137057c6101cb0de490723137f"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_6(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "820cfc585965e1c605005de29785b2cdc0c4e19b738a70f353ff4e7f9774a9dc"),
		nonce:           decodeHexString(c, "c8d6b9fad0a5a6da250678fbd536e254"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0fecd9bdc519db21f071f98d36a4050d3a432919f4db8e1136e38e0018e7adbd"),
			decodeHexString(c, "57411adc70853aa1915ae42708f670fb45eb413a5d1c663abb797e0342b42242"),
		},
		expected: decodeHexString(c, "e71c2ad46f888acf5620faa02c9f37c03dc841966794f4335e378e4872766cb33de96865e7c32fdcbb2cc2c940f44cefa623e1d3a68be8d10d125afa52ba45e27fe463dc32b92ad81b9e6f5945347b53df65dff542f575a58447720f274b25a6596c3e3833a297ad4f31a0ea1032de024f1ca426d2fd410700294978ce87f1b3d8f462f31ffc365b305a93750682ef058692e5131decf7ce540823d516794be16273c375b4afec3b9516fe7b6ddf4246d371de9ca6ae8c9c811818a5f98471647d24cdc074d46f0cd93c1bf01206d8a4a56adff5f801f25bc1ac85125485be9130e48e4aec90bf98f716e77685faed8c3d4ef2fc9ad7ac3bbe7a576c89c82291"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_7(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "49a8859f1a16f4d17ca84648eb560051b7c4b3afb10d3537bfd58be0e1fb6b50"),
		nonce:           decodeHexString(c, "107510f7e7c13fb1381c968376740708"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ee96d4b5bb691b8cbcc233263bb9968584a9af81b017fedd76c29a9ea140d84"),
			decodeHexString(c, "5deecad0bb4252453db4d5dd0ba8d4c4b03a6bd3cc627bcbd77eb3a6b25d1732"),
		},
		expected: decodeHexString(c, "0f901a7323136deeaf06c9788a1489988795f0ffd00f6a636847e6f71fab27a8087e730057acf24cb407c768b4a736882c427e4c8c15e69a8483f6af89d9b7007ce17fb8481f31f0fed3c88e41d8fac36aeade3e8c6831171b2977d0109977a002c04012f62af906c1495a09f1ad63852a05a77a54f0ff1ce35f72faa5b5ebbd366fb07646fa69eb153ccff92a7a9003f953e3707b2af97b6d4b7f3a7fe6d809c4c249478a0151c3aaf3783587fdd8117b28026867452abc8ac5c2c81ff6b5733111c316a6fdc75bc3db89066a5d527c2ef6429b7f6d35a9813dd78a2fe0869459bed16f2bc29d4d0c4f7b9af5b1a2a2a0edd79d2feebe92bfe5ca46500f7315"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_8(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fcc5a24d87a92eae2414e981da7a979379945782e177c558febcbf8e10aa37b1"),
		nonce:           decodeHexString(c, "1a0031e5951a961ddbd97505c33a20c1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "35c92dcef12f587a2a40b5694e9bcadc21add32bb20802555167f154e7174b7b"),
			decodeHexString(c, "8a88955f8b72bfe8ce5a89a61a58783a0973a143cf89b3a1d6ed779dd2919e01"),
		},
		expected: decodeHexString(c, "b98e6289d3f4ab10f6492e018a4eb3596eacc4bdaa68d2befc821594794390aa4ec4c59baa7560fa069f1ee527b5d774a6e0f3f009b710bf3471302826ff1fbff226291ac779a601c9fde3068ab31e03ca9894ede2ffcd724c3df84c78c83e6d0943815ee1ba44596c6fd06de3c8c615ee5055c6e4b7a9aed1710243d71c7027e45a04f139036bed07ec527bf6df39688d380aa2eaba8828515ff88e9c1ddf81e05185a654a5a44882a721af79b2f6903ad4a7f82666313713d0bc526b7df2a36b7b417a35ff9a85518f5279ffd540dd187211ba5b723f2d85577febf200d1a17b063343757b754bdc27daaf08fee194f5a2d94033491fa09185cf75e4ed5b88"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_9(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4a96a3641b34aa30dc6abce810bbc2bc33656111408da0fc30f3886c3df48447"),
		nonce:           decodeHexString(c, "8497e189704dcc920e6e5c84eb502584"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f87cc8980bd29d83c50c57736d8351162df19122933bb14b1dda2968d74dfb7"),
			decodeHexString(c, "f91feb3fdb4acf57164b169e1307902e5e58f6fe4df614b737951e49ad617001"),
		},
		expected: decodeHexString(c, "21558bba6e1db78e86ede32f3dee1487b5a849f08e1452b3ed338e87f83bebfb5f46f86f89705622c7f4ed5a2aca3da3cd958369a3258cbbe90825ab9c06279f8c79f6a439bf0c969ceb6a423bdbeae55f29dc6664c415e2dee884b089f3486fbfef2bf52a71707665231fdd7e7ad7a9e12c9cd28123e83c882f90b527c909dd2475cdfd155da8e1bcc16dd05206c7d66add9b64f72a683fca04ccd1e2fb86d235f132c900241835d350168f740a6428299ac4b6a4f3f8ebdf298f8dc3f3dd9c1b3c3cfc990ce299a232af0b3904ee858a59d05dff6fa4eef2d65b5877acb229519290871bb09ce4234e25a0e16e255d1c32095cc6710530692c1ab4c0f21608"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_10(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e6470fd79c149f2c59053d669639f58a66e5f4554b806e0a006e46b428263850"),
		nonce:           decodeHexString(c, "c77f87f88014c409b4bd929425537e28"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cd8e2bbbeaf5be685b8c8b0b86f9eb99fcdd2017d4e39a5648ea57e9ad6280ea"),
			decodeHexString(c, "6f5230cc7edab284cbc07a320782fc7900a82e36fa20a3e8ceefc82a3ab27e21"),
		},
		expected: decodeHexString(c, "ab9178160a25b4bc6e8b54323db41e0fd016c3ab6d07b0f8108c2ca8388c35ea344b1b919a493f2cb1803ed3a1b8cda434bb5663ec8c690da24bdf40f2740ce2abe7c7a92066312986a9a9836a60c889d87ba3194477d2620409f7d7a77ef874b72145332ca145098e2b9bb56f9e65b2bffb242b4651665eaa856babd26fc6d428b1174ed4d384621791f40babda141a48e35b17f281a6e9b93157b9230c4c774da8d15e8d10a9909f205eb49794e57977b2efdd97682f6353d4afd2c14d6ffde15103f97b48340a68b867b57e00cf39dd20cad29bc7d8724a3efbd3bc5c768ceb22567e2dbd6d1b89a1f342e2d39e6836e28b61a3176938090e1927af0ce0ee"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_11(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fe903cbad5c25d8e8b8d609eb10af84fe5f59fc0c12d14ecbd2a7b42f76a6101"),
		nonce:           decodeHexString(c, "0f607f8310695d76b484ad8bb00b1266"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0706e7908e1dd6769d6e0af00654ba8ad7b528c55f54822135ce8c584ce79c5e"),
			decodeHexString(c, "57a0e7c596cd4a459ef449b35ece7f802383d678f6e30f2c5f019dd74e1ff4a9"),
		},
		expected: decodeHexString(c, "469d2ff5091b318b183fa5f78b6c3245d713e5df96d9f05169c9f3cf60d628637e1f3eed9e369af9b1c26ba6a1c221279dbd1d123c8dd910110dab7a2d3eeab995f04b3d5ba646f821971a3f81ac684336b37ec5b73bd5bdb64132d7d61c72d872f775af4ec3fe599b22380242b4bf1e64c694a061937ceb20cf4ca4ec4b6325d2367790170bec3e6c9780635ee1140d55cd1711cbf1448bb19db26f8747025826bf4df0eeca18ecda9b0062b26922e9ae6ba8e379bbda7ab00774591eead3be7cf0adab7802625aac0e438cd8e122d21ec89c8e4753f5b689718d7da631d0df7d76b78d7383cd6a17f456462190cf45932f00c1e26b29ef826f9a8cd2f043cc"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_12(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "747c41c808449dde40c5d1d62140a625c36c3f7590def00f8ce14088a81fbeb9"),
		nonce:           decodeHexString(c, "618d12d4b5c2b2f8e7487fe135bd31c6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "626783eb913b63f6adc5a4fda8841f16ee08ff559130dc7ce948ac439e0a5a15"),
			decodeHexString(c, "c89cb3dfa26989799ed6dd59205630b44a1ed55bf1c261ac28b0d31f5f90cf3b"),
		},
		expected: decodeHexString(c, "ee956b27918f1b94c876fdc5a53a5bc39599bfc101a35363c41a917023652ceb797fe9208cc277a9c864374b3a708d63e2c48d9a5e1bf07a1c11645433eea36583f58ae44291286247e0dfd8ee6e7327010b666c6e079c46bd5a73cbd31e69e9a618bb199fb905ca81a2d3d678e7c7dbab236a6de260a2260f3c244483b6310d96190a7243d4ef847b0f1b02e25d09ff55fd025181d8f3e0fa02709a984cf6bedf67578d8daf113f31cf6371dcb4e170bf6ef45b2416ea4e7f67c66879cda2279f491e677b38c0a3c9025c31139d731a16f93fd61bf4c2da4e442240da8c5575e5c3089fa72d9cb6471256955f668c7cd4a3e7f33427133cc555c196d7f79b4d"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_13(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dccb23c10b786158d2c6559266677b23c2fb844a2cff749519571c9866b76c3e"),
		nonce:           decodeHexString(c, "986dbdd32d7d5fbf70602b3c0f6de064"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4287f47eef5a9651e67f11958a210914382939a31459a3885d598d96cfa6e115"),
			decodeHexString(c, "8f60356493515f80076717b82c4b6fd753709680826c27917fb716747e45b213"),
		},
		expected: decodeHexString(c, "d59d0efd58992786f0879a26a2da0bdc077d376d459b1eaf8835f6eb958a19017c235b294d23053c5645ab897b9994bd627671f35fd039dd03eddedced1f9b7965f7040ba2677a3d6074e2d4bb8b7a7c9804e4c18d76daa08c19f0ac098bb165a52a89a82b3e18770d7c86e15f147486c7e80345b0daaa57a4affb2e30684cea9273d5f190650d9a8410fb2638bea8c72e33d0eb4c8bc36dc1a61ced57d5791d5868f164f414e5172239955c0cb50733ff5a9bb6e6ad1ec08237cab8188a797f764eb898d9390f3013ef61ab7bb8241b382513a93afa63e40a1544a3c9dd9871f772649d87c4808089467275b182c00df64ca7272b4224af0793a51ca09fdf58"),
	})
}

func (s *drbgSuite) TestHashGenerate65_SHA512_14(c *C) {
	s.testHashGenerate65_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "85bc56f0224c1340634c5c9a3375e6b8ab8c30975e94e0279862017141957217"),
		nonce:           decodeHexString(c, "5fea742395b8a7b8344fad63b0659bda"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4b69404b80b6f2fec36a7dff1b194a228761694129efa6c6b9a044f55330ee3f"),
			decodeHexString(c, "519c4cf1b30500f729e5426d76373c291e26cafceb594c10c96bdb9aef4b42fa"),
		},
		expected: decodeHexString(c, "53568141a5c09b6b02ac4ab674d341aa6300f8be93c0f36a7376a6850abfce068927510a1b98301aaa29252cfadfe5a2f241abc677e9e70fbca287c579acd276c2eec5c8b508f2b119a40164c6a12c0e0ca1d3d53595bbebe32fda2eef2b613329a614a28d3b374a7b031b49dba74b465a7db60a8dbdcc9e952ea143e9d5a3a651c1b0d6dad79341a7c3fd5816933f2579cc005f3c5655eb8d3f9d1e4562a756ecca3fc1d688c9824391ec8444c6024774a295c44c17fe592694dcf41f305f50a16e07fc28e247bb3d9dd0c52c6fde79df84c8d521606cec9a55f909691f5cfd797b69304dff5b60ac816b0d5046a47c2434127da1fbaa86d2844f5164a9dbdd"),
	})
}

func (s *drbgSuite) testHashGenerate67_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate67_SHA512_0(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "31e8d6fbdc9026b0708405c20b558fcc0a107f3fdc836fe056f020df30d9dc57"),
		nonce:           decodeHexString(c, "2b8bbab9b486abb659c4ae8ff5978e22"),
		personalization: decodeHexString(c, "949eb753762869aa5ea0ce725523595f9bc9b219735113e71feab228d0872c38"),
		additionalInput: [2][]byte{
			decodeHexString(c, "88f1180d4ef564315280a9692f107ed9c0639d79bb7040dfc3b7d58bf24ef8f5"),
			decodeHexString(c, "f4fc8a26e0ad181838f1399fe5b8a4b86670e92ab92b2c4daf3913470724d3f2"),
		},
		expected: decodeHexString(c, "10509641332a4d72a3c5936512c37cb9ab9874693902ee4c76e963675627ef86aa2e7d7029a152b800072fc53eeb6b41d12f481cde99b467dac3486836f6e146e9a79d3fb90d9b26f213ddbfac590ca083ed83fde4924395d25b645b96a6983e65fd662cae66112ebfa990f09b86b01270b7f0ef35f183eb01ffcbd7d5ec6adc4839cf3814dac858e013c6d79528ef273dd83724ccdc82b73dc63698fcf8ef0924f27b6a49d6d38f0ce261aa5a0a88779e47a413c29e1d7d20e4ab914bbabd5e6e0241cf53263a8efa321b4a632eb062b255c0ce5a0833114161dd073dd037967a1f03daf2dd7e927b801b40e62f26c0872ea100132807650232126aa8f29d70"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_1(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2da0fc2bfa2be0783bb0c2dd7715a9eb9f6d242c410c94cbc3d0e9a3fca51833"),
		nonce:           decodeHexString(c, "06cc9be12a59a27227b4c17176e120d3"),
		personalization: decodeHexString(c, "8af60799a6550e35b9716abba2ac41b4b83d7d6356b46430018f7b539cb73289"),
		additionalInput: [2][]byte{
			decodeHexString(c, "104a667e2ca3d224ba0621f3f88a8c4b3209455c70e9d290129fa5938368f8b9"),
			decodeHexString(c, "405fbb0f4395c202c2c1d2998a661b105152b9022b25f09bf9e9d72d1f098785"),
		},
		expected: decodeHexString(c, "f27ec9f8757be0de04c52bfa3065b472cb299293937b0af7717ad7183a614a093915f6301c7c470c4377b8ea07b946bbba032f056bb75a461aff3c3b7788ff650da96d60421b12b7039377d1d49ff12b30573d507827adb19d5e7b147721c8a07e5a697e69b04427e86bd250f129bb6b1e66946b7f3cbcb3af6e9ea76141d85e3819f1abe9ee1d7aa255956b6429892fbc918ca1968725f07d57983d5d1751c2281e3715ecc24a20c6f81d0affea22efb98af0aeb51e28894835a8d1de57140c6cd5e4dcfbe4d75f55ce1723b4bdd3c6f1e888c5b4eacf6adf0a1d3c2557a192fc5f5d6b315e6dbfaeea98c8a20c7372551936e93a02b835842109938a21d508"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_2(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8bd067ccdb7b20356f4b69579a0d94ae74e8fa03ec51f23c9926f6ce183640d6"),
		nonce:           decodeHexString(c, "72d8095713f90db89f79394350f230ee"),
		personalization: decodeHexString(c, "c97e413f1f6e95c35a4cde25c12c536ef79953a48e9bf2aa7a35dfdf5b810f85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "15f793339b41124cef9dc41fefcf8ac1c593ee1ad6d4a4969156b1d8eead4a7e"),
			decodeHexString(c, "30b86ca9b7d78adab135984ed7be67aa85e3abf4379756ab5f775f986ecb339f"),
		},
		expected: decodeHexString(c, "cb2f56f407197e0479a093eb4beaf92883275c70f7571477a6c3beeb71035b711a888aeaa8bb186782875dda6b05f3ad3df502b55f6b5eacf486447ba641c8688dd84727267d8ac91b04f192308567295537f12aac36aaf8f5c436a683463cb4bac86affcd653b5e1960abd94cca25064135f0c2bead0007917191cef1cf2d3207682e73714e7f7e3e1c2efae6b8d1c7fa46f0e1f75a6e8ac84659787ff0cd70d02311015c2dd926324d82cf38489ae450a01fd09a4dc411d62cde553947e30a6ddd6153fae1575e3e5222993584311b45cb091ad35484b8b75a90b6994faffec4820187b7b6ed20e1db84b0e6bc1fee1117b86b422b32787dff56b7a7923192"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_3(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0e18475cc467fa2d74121b23d255f883dc98cf089d8293c90d27b9abd46ce5b7"),
		nonce:           decodeHexString(c, "b5efdaecde8aee390772a53a242b1a04"),
		personalization: decodeHexString(c, "a6fc0bbfa739da1a63b3cd421f08796a5973b60e9a4a047dedfc5cc50370d9b5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aae86525c81ea75a989d2a4abc1e0abc2dd884d9d56c06cf57741295b2f6c8f3"),
			decodeHexString(c, "ffa8562e213fafef3c44058fa2273060ff7269335e14ae8e749e6c077912aba4"),
		},
		expected: decodeHexString(c, "6b305c9721936264c1c67fc487703eb61b226f053532527b466c2d3079652347da3b91cd829054d75bdacedf744be63526f7e49de08008fda4ea71732e60568eea31f1b4ecfcbfeb9bfe876470dfffe1ca9347862392602145c4f300ee8a38bbfc6eca65f4064ae8a8066bbbf174cda392467a1706790ec8863d2cf52ea3d8f206c4a873e412a49c1591e30196ddfc49f17df7b082f90fe7b39af699fe5b1d99e3a371d3e5b14fc64dd67c788d8220ca1f381cd6ab6c5cf139400bd9993d0526bc2fcc4be5d50f90765fe533fc5475031f526e24cf9cfba075b7ca4d2016cea733aa63910df56d21942f3ed7f2306cd668ea6df522240af8fae9d5cc659782db"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_4(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6b16be85b90e3505ea941adb6311223460d8fccff7f6a4c9aacdd65ae59e45aa"),
		nonce:           decodeHexString(c, "a8ecc0ec169130c03d5e0fac59ec2ab8"),
		personalization: decodeHexString(c, "eacca2a0e501afe855db355548811ac6252f6ae7b585d27eaa4d96b0f84e841c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9227378b4ffdf15e31abb003647624ccb297384969fce30b4e823e3e0a121f57"),
			decodeHexString(c, "d2ad216c4a649be4a4afab984e6b421025ef06c824517117060df6602b9447bb"),
		},
		expected: decodeHexString(c, "40da3a7999c6969eb06d1d632a8ccbca514ec947bae07c2436d34477348b84fb996804cc1d7ae1d2b7ebd9bd16a7516cb703581312a290b3b8e3a999381149fc4f38218471591716e25a192a72fc9888eb4b22ab377a783d9939ada6eeb1c2c8da33dbd5562ba5ff0016a5da8aa3550862930ebec3d2f8c24c3b4de0926e835101c1668ad3afa73cb937c05456aa8be3572b07ab2ef8c342c33852989a15de2a2ded0c5eb0cdfcbef5c06ffcb308f6b8e20083b45f5924fde6efc8c3169be57f3c0ba0ac72ee4be386fb8e489fc36c01187ee40292c5f58ca9f7a3673abcc22577e009b92826a59b48465d77171aabd8238bcefce704bc7890d132fb80e3dd6e"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_5(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9f942face5b5f3e682a9cf379636ff8acca12c337bf1c88d28e0b5c4cdb18975"),
		nonce:           decodeHexString(c, "ed8a2a285ae5001b0c1f9827128fddf3"),
		personalization: decodeHexString(c, "d1d855326c6d51d80e935c6b57bc1abd679404706070c6aaa7180cfc1cc2a70c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ae71cf92ad651ae3ac7879a67d348609401422d44a7d2e1e9170c3e4ff24efd"),
			decodeHexString(c, "cebe3f8785219b9a60c2640151fb43dd1c81b21630c38526016f9ef7508d87e4"),
		},
		expected: decodeHexString(c, "3bd29f037621d985e6e42de47ab6f7bb79893a7c5e532ca914afe871cd3d63313cec5e9bc8a2c5d1c5d87d7b016f7b15c4e0c843f37b0f57e3e76503f085f5ba659228b31727418c0b8e5d5cd505b140345557ae5de1bce4adcfc960a575d44363be73f568dcdf0d91c0f380f6e164cb1864a8739aa6711e376966d7d2767e926f3cf353e0b6f3fbba99f999e4ae3f8856d45a7d273db353b8edb00bab99261095d2b1cc3cdc3d25e3e1ef27505972f7f3334a6e954622169fa28a9e19217d96ab329150aa6d585d7698ffc22d581cd6cf68e11d98d259c2797a664dd12f5e8796609963ece539803e325e54a8b57f93fc547ffeb2ce7ca610391b58459e77f6"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_6(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9a08a378fb535b1a8ffc730398f4071242c6954c248282ade345a50fcee38c42"),
		nonce:           decodeHexString(c, "006d8c510f406634360bed0fdb7dc12c"),
		personalization: decodeHexString(c, "0025cb801101a8d9d4647c02a0915c6b9639722b90e7ef88aab9dba3c18d80bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99bac0346fac6b765bcc9caf8e2276fd75db65d2c182e272fd7dc66de3006482"),
			decodeHexString(c, "349bfe2d3728eaab69761b461e6bd96206dedd6540ac510ad2b65f198a1400d1"),
		},
		expected: decodeHexString(c, "0e383143abc652bd1e12e3a85c46c8acd1f97821543cfda5d9a05417def21b59821a174b58ddd1f1a8e2ada4e28d7806b43b693ea70fef21ec63fbf5cf11cfbd2075f3d242830fd708ff05e9fefeffb23c393b25ca503ac84046c7f020435c914238f18c35f7d3c293740caa7bf2eaa2a21a6028faccc13869bb734e41a515683acf08c223b9f8aaf3372369702a23eb6010b375ee7bbeac5c40c209db6369133d5026b97d4ccf588ec09a0427b8d50411bdc867f668dcdfd6b881ceb91820c24e79dac53aece4d3253c189203aa191e31fa1fdbf80ae6a8165a094b574c123bf7bdd15ff001049851a702f793871fcffb491ca38def8bdef9f1f5d48a9188ba"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_7(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7e745954ba8fe961c0093c552de15a469763640677b53628ff46a3062ca8fc92"),
		nonce:           decodeHexString(c, "a89bde60e20c10f33bc195221c184d72"),
		personalization: decodeHexString(c, "3127891b40deadefe09e9fb727fa91e1111f77133cfe306babd4dd3089043e53"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6bf082cb8861f45272f9ffba27adef92d2b210838e9a619e1ab055e2c310a558"),
			decodeHexString(c, "999adc41ddebd8cfc328212a267d111cb9bfdf4dd165dbf5dbc9ccfa1376b1f7"),
		},
		expected: decodeHexString(c, "edcc91b47943c29bdcad2718bdfb61b42fd998436b0e2608123857b21ed9ee2831b6da585b63ef872f9604385b05f6d2082c7c81c6eae7bf4238bb2b4db6168854368a17e4f62ce48d4ee8bc18ca5598c16f8b3b03d1927483ce918877e388d4c5364818d357e409f4d8eb6a6fab102d682e8477b6d523bad31c4e96ab529fc987d87bf4f78ca186dc7d3d9f60a2210b73f6e12419f847ee6987f5cbf3e69d43625a048387da06f392d861dcfb2e24cc5db300ac74350aed4e3bd93c62002602ba0798bedb1cc03a92a939534aab0242d4d624503580ebe899c6822d3ab14b3b52755d3826a05d81ad12eaf55dd4c2e660519900629418dbdee42ba85d82d129"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_8(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d209666b09eadb34238b15eb97ebee268f095ccf8de068e45187eb691aedbe25"),
		nonce:           decodeHexString(c, "24633a170a9b3b9cedfcde94dc8545f3"),
		personalization: decodeHexString(c, "298a8b306373a4c6065b9309b1c7e0f6fbe4ea23b8e0b16608e7b30c0d84ea11"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f60ca1359b5dbf63404e306e073361ecb9ff9b9396388fc7a3e7b3b3224c86e7"),
			decodeHexString(c, "49a4b2bc9afc34a77894cc2c39f5f632389a369e70cd6338845676fcd6e838ac"),
		},
		expected: decodeHexString(c, "7c40b03b7b1aea5526ea092d9129ef4ce2319864624aa70eea4207ac5703ed90cbe9e274d445e65a8ae1f8c0961db98c3a8df6b687c1771fb936a18ca764b20eadd6eb84b8c9b617b51d2a61cb6ae62d07741b5b03033da15ee8194f155227a5dd2c34c251fd4986e1c32937e6a7e040d843b2de983ae272cc25049061a6f5cd85dc04ce33b23a3af8527331a0874227f2f72a2882b55c31a3751a8dd0ee569cf254ea9d0cccb8bf3358bff46a9e370b7b21c75a96ce2e393d37fe0c2630a29d4daad9aa4479aeaf8bbbaba3dff12cbdea796827b80189d531562d89e3b13b3d5bdcad13710846d2b68b3dfee11e3143eb4b207cd03b924ce5cbfadb6111f0e3"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_9(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4be833d06b234ae76f76f4a7f5f6dca13fbf5fa96fbbdcf4413143c1dadf4aa9"),
		nonce:           decodeHexString(c, "b474266a8a849772728daa323cd39f01"),
		personalization: decodeHexString(c, "a8416550b7e8ae43e7d23ac458d3e9a6f519124dcca4af19d9cdc3da491d1df4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a2dc8a1ff7206518d04daa198291eca617badfda54bd22237f9a173e9cdf312"),
			decodeHexString(c, "7822e3112bdb3b625ccea19f509b332879658c03079f3e70423a9911427d5d57"),
		},
		expected: decodeHexString(c, "96d24630f653584ce05b24587f2d93cf6bf579abe0b6e2de96a12f706e2942b6329d5601b36b00026c8da2b4659150c4e1b47adae5b1d83cdffb841a0c5dc95c5ca7dbf92f8f6a6f2e849443bd3fe997660856556df7b7fbda85ac8fe7c367c228d7c616a3719027fc4e35819ed0e64c0a4705fbdf9990c1108805a347a2f02d9098f2710b0225bb0293aa093a6c1823959f2a6bb9334b7c84c3477a5edbf87f3b379a5655fc443bef0e71b1beb5f4ef4aeb5568b20994e8e895c40867b09eb105779bf6b2a751e14d06a7eaaceab83881ce70b69ec7785289839f72fba20e8212c61f7f9b6398c901daa6e4ac49e1567388f834798dca2406ed974ce0bbec1a"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_10(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "de3371b2318c14c018d7a956b6be9e48cc8527fbd32a00bec1332cc59254ba90"),
		nonce:           decodeHexString(c, "c9bb8570480ee0bd7ce2320280ccc8da"),
		personalization: decodeHexString(c, "01a0375aff8275bd7e03ba2ad4eb1f1e1d76fd13e328166d0e79522e4d3e3aa8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb2faef54c850df27a0d441b2cfafc980c7d041b56fc23e237d83e2cb303180a"),
			decodeHexString(c, "509182b16622938ccfb82685e78a8b38c0ac5c36874031bcbb76f9a71430d4f5"),
		},
		expected: decodeHexString(c, "cba7cd4e19320e1cd00c6a7e20bd543cfe3fe08fe6b9a47803da640ed3bcd4376ccd142bca574c3be77e444ec008476c654922ca0a4aa582fc7fc0f45b69fcf24512872b21192e89fe8fc020076b370b98de505c88a06b00aaa7ed0ec7ee478ee779d2abe95e4052ea2d9968bc16d2fb8c01c9dbb1f2ec2d6d55c133d32a229cf948a0b2f812a7859a897f00277e83cf2a394faa0b85e2003cd1f54ec3ad1f53f03cdda8b726407175f0888e7ab923248ad6d92184bc3a8971f92e6e1e09dda19f3db72ddee8f3188b6100cde7272c740c74c16ac159b62087bf00ee1319e225be2a4d2d49a41c79646eb0e3bb338398b5b459ec5dec4f75f0dcba50ffbfa19c"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_11(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3c0d31c4b26c7b82e5bbbe8a6f2c016f61cd7e9988a3f025f4cd0273d64b6c3e"),
		nonce:           decodeHexString(c, "b8faa8fda84f68331db3734c0a5c8d22"),
		personalization: decodeHexString(c, "1a7cd41cecb03bfb8d3e9b1fa50c19e77062ebd019e2d4f7f078afc64ae1fe73"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f9f4162c3866486932d8976adaed4aace7f4c7f103395bc7adba35caae20cda2"),
			decodeHexString(c, "4f33cbd20b4422a5285336d63b0ae4ff1f38176e1373702347ea39812bb9365d"),
		},
		expected: decodeHexString(c, "a6fe9127f85cdd8758c05c64896375a06e2f4198a3e98555de0cd3bbba0d834ad54defa2b6740d34151c7ff12a4fc361673dfc75e7e9296320460b7c907a8ebfb86953646188222c7834704936c3bd635c5ef7aa7a80d0f59d581292c906333c8bd35d9382fb4db237e992d4b8cb82e6acae241cb5a97e43cc2a3f877885e3cc83bc25bfc900088c746f2fc6566a74bc2966429c1ce6e2790a0116930c41be92dd2c0c579c31bb3955ecbd4d3bbe436ca939959d2def816185f2262110b8ecbd57003d6ad86cfaa6b776c74f77409a5333e57e8b416cc5f0f6c2bdc16344003f0eeb2b87a2db01a85ebf4677b87e75d69e8f6743aff5ea9ca6da4f7776afaaec"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_12(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ba63b08d942ebfe09327bf80106744393d980061e15f387dc23ab452f2b35646"),
		nonce:           decodeHexString(c, "f60b6bf40766be9d9f9bbedb6205175b"),
		personalization: decodeHexString(c, "0e87ff3741d7377f840a7b5ac45c2d146ac0cd88c7e715746ac3e6d0cd0867a2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "286593d37c6cf3c9154b256f82338cd3d72722d54eeebf945a9f152ee1243829"),
			decodeHexString(c, "437815fad750af17566c43e04403bcd5dae177111effcc4766cc5e618332f398"),
		},
		expected: decodeHexString(c, "9a438c0f075f6dadc1b68776e1c3651896110e6a03fd1d7fd95412caf21f945752de261742a6d3af8f171d34158fdace6f2f30d97d076e1de893a93e56a43efa46d5a3eeb1166dcec5936e89a911c48c3af61a82456d563eace8c0d3e7988937331219f30aaf7352f347df73eaade6c1831c20b9dbb622ac786b4a6b58ea09dc884806bed493b42477d47c8b6f06e73b070306374d506d48108ce8941368a455054e45f0409daa9f7dd2f3073ae8285615d990f905aedd9f8af0a9587136792107d4ef67683ee1be64a68ebc206c7ad0d5644e15b64af9825312a75c2ad56907930f9d957ca36044a3308e5167c8072292b010c8235c7500ee1f3283d837ce8b"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_13(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "de2d8369fa5ce79a177da7d9e8961876f39d266ada2836bd7703a7fad2874e1c"),
		nonce:           decodeHexString(c, "d81c2f1bdd28c47cf29c01e4d98a7af2"),
		personalization: decodeHexString(c, "0abc4e24e778ee25901eae2a8efc99314ae9433462cfbf2e0b9eb864c0c6e0fa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "69cab36f38ae07babf50c3b1a39df5cbdb3c89ba7e1e60c0da8cff10547cb078"),
			decodeHexString(c, "819603ce2fa8188e13a43f12d40de27d38b5653d0b91b8625d8a837ea7bdcee8"),
		},
		expected: decodeHexString(c, "49d569422a284f6d2d2d08e50d005a3be90c6b559e78637935fde60f6ab6725ef8f2b95694b91fd9073b315a30153079c2bfd26a346234e3f3ee8692df35c603411005417d2cfd1a15125a7a42e291c58481419558503e6d8f54a3464befd6d13ca91e534115d2d1cff137ab3dc281e0c28f9c090bc66ccefd6e6cb6337ff2ce7ea22410cf548a0aaf77ed3f4082dce69409e140f4653088be2909fa96ec48a1dd9f02a187883b96eaeffc50523a6467a691b5cf8c0f20d6d658402cdbee3b5bbce602f922b1319b50fe45d60c1758b9f721c919b38a32c118e55dc4e79f7bce966869b502cec92f0e6c5a514b04f87339f368ceb1ae4a870958f6aa56ce8717"),
	})
}

func (s *drbgSuite) TestHashGenerate67_SHA512_14(c *C) {
	s.testHashGenerate67_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d1922372f788d6b1285df63bb3e05d8a77b7055b3a31a3310ea51524bfbc36d3"),
		nonce:           decodeHexString(c, "247717665b4d71ef9e2855d40cb962bd"),
		personalization: decodeHexString(c, "7593c7841c5bc0d0a68a49ef0e4fd311e84d16652a8f15ef56ef10b00021f255"),
		additionalInput: [2][]byte{
			decodeHexString(c, "64278bb6b8224b93c0b5339726fb752f6d81e85b204d76376d99779ff1f86cae"),
			decodeHexString(c, "4995815c060c80e9bead55dfe823b869862bd0e5b4357afe810a53c68d4b0e7b"),
		},
		expected: decodeHexString(c, "9b4249e1e692153ecd20e968f86eb31bf9a22d3671d0ce9d3eea243bfc70890644a95d551cb9956cc3770e95c2f14ff154760cba1b24c51c41f7a961a4502aa053068751618eaaf743e0d37fd41ab4969444519c22c8fd96f9eb1be6ff3ae01a25abba84a259dad8bbc78f47dcab3ac2242e6974a56454999b4c59243102b731fc4bb4e01c92d36f232ca8cfe00fcbc0ac200c2e403d17d5d1dd3d6c2095ddd15ad58a070f18b69a5f5d3f240435d298bd48bd9be028ccaeb10997f88857a848882f51a193522bb0b979b37b5508775fe150cab8ce97c0760b7418b5bbe496562fe639540e77c1025c0e191fe000aa5d1e49bf02a5a3c6f46b40dd2c47786d45"),
	})
}

func (s *drbgSuite) testHashGenerate69_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate69_SHA512_0(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "65004ce396e18c5271a336b04fe843d35507d2d26a461792e19c57861aca8e36"),
		nonce:           decodeHexString(c, "238745ee7e7f3f4fb1b077a946791214"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0dc48dd1c82edb83d2273efa04025902e67469b1c2eaa3b69209a3d0970b7629"),
			decodeHexString(c, "a632c8a7089a05b6dbfe610e4e1dddadf539098d878017f0cb5fe8debeca0cc7"),
		},
		expected: decodeHexString(c, "b2b33bbea1cfbd663cf04869a4add52835754f52aa341d32754141ece3e396546745dfe0cf2871b3aac8b997ae3b4e04b0cdda4d9bf78c6a41819687be18c27fdbe95e170bb96e3813193a8e9bff55f75fcbf3174a74d97a529b933214b91c8512cd4645ce9f0e3164a1e15fef337a78d512e60db3c91190d96bc9ef62188102626380f130b6b1536a3450604552c46e0a5bb2fcb0c0b70a98bbe238b8fae9d74d100fe789503e53d3db7699d9ba39a0b8ccb76354e54c90753a9cc5f5ddb19bb6b388e9f4d6f01fdda589c89e08764dd735aa4d4ea31db17d5fc83755684b77142928cfc370358bbcc65cb1412b2ec9be5d52b84fb389330a68bc9cf2a03379"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_1(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4bb1834280b0f17bf106094792f29e519987c8b82517cf4c7a6ad43712ce33bf"),
		nonce:           decodeHexString(c, "a1a798d536bcfd05c6de26d790936e1a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a4f4af98af2c1452cfdf2c85a7b09325967258ebc3f97ab031575ff4148f970b"),
			decodeHexString(c, "6f37aceac37cc913addea0f52b71b1faca2445043a6446bcf1d1a7769adc6d16"),
		},
		expected: decodeHexString(c, "8b7df4d489426784b8fd50db864fc580a7637b6693510345a2901b4d7482ce272386e2e52ecdee0bd5c678c383fc16bb4685024158879e8609f1fd93c2c2d236aec05cc70dddb6a9f5472596eb1eacea173a5fca3cc62846a57899fc0c9787e7a9d70b5c0809c56de846b9e43ebc69b42376f59b5428a043650b400a438ed2bf3e1a1952d7e96a4d653da7fd5fedfa914c1fb92c7d3c41477b512cd117a29f78a1c7b2b41fbd7d7d56e58d489d5683ed6643f88b9346bf541a69f1ef1dc67069569acd9fefbc005d0b8158dc573bdfbf8dd0799ad1090b6649085d61bf0a4ade98a3a114346c5c9d357e126b90fc745e8ea707d9d69dc2e7bac3801e7ba18426"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_2(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b7871ef8cf6a585a2d61206b3d86cf6d8fec7bd1780c9f221eb5b8626a59dc5d"),
		nonce:           decodeHexString(c, "275e760275885a5e66d7ca03308a3e0c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2fb7c9f6326516189584c8b3c290a8c50c480dbab6fe37935c7d5c0a996ea68f"),
			decodeHexString(c, "60c409d342067d2b36e01b9c8d0b08d55c5b1e9da615916b5d44e8882d86254c"),
		},
		expected: decodeHexString(c, "637b4d6d51b148c81c0963317b60ed72e69507aaf7a3622c98052e2526a69170e216d6c71bca8db1b07ecc7d52f0d841522741c59e8fc51d60c3d248b2f13b631c6b4e50c72ac872d57784b19720b290b078585c294704b707f301458323cf29045cd0b38018479829b208eb80c1d4cdb12c8da3cf3b141cdf26f9da21c40a588cc70ae4a70975be60ba399abc7b719d40e36c6ae0bf62acd2ee676aa81d7006307375c9553ce1de7e0915e2ae034f0e3270cdf78fdf28c2955af4f7665caae274abf11cebd6de12be719704a4865879e7002d5dce75cdf34eabec219c5f635f05023b6f45e8e837c48d56722eeaf09926b316fed39f5e632c29ef0d32140bf5"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_3(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c5a84d5e827a17bba96a1f3c2bc1f71e234143d7deab8499d5d96d21952708c8"),
		nonce:           decodeHexString(c, "ec028c6f19e44b5139856115b125917d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2cb9280a6f5466b37af0da2b78cd6ee19645d20965b7163216401d4d59f961e"),
			decodeHexString(c, "7ecd7efe261b4676e93d92bf867ab872989185947af12f9c68cb8de432ccab56"),
		},
		expected: decodeHexString(c, "9551c9ec17d1bbeac3d6f04f2d8a8d2e7643e3339956dcf51eeb2875aeaafef0604f529cae938204f5d58df042ba9c4a0d135a09e5512f3cd9e04c8087c58b9caef0f6a46a6b0ccd1688b77134487447e0625ce4414c768527b8f89b3dfb71c3e5ca34b653c9b5e506d514789afbbb38c63c55155b3489e5dfb6e1e2d4750432510ec050b82faadb3b52727a00fbab39717dcbae41895f093d0b27e47592bb6ec287da1a4c2fe1cf8ee407545885af0e58dcc5a50e3c48a792a87e0ba347266fdab8825dcbb323a62ac602eae8a5f7bc6616f6be459c7ba928b3e311964c97f1d3a56e317bce5c37306a6b9dd1cfffea1369f948b4af9ffb5e959183fbcf2966"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_4(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d24d5c090aad7cd498c8b11869fd512c7a0e5340520c8523128202a1a04013a3"),
		nonce:           decodeHexString(c, "88a4bf3203001c04eb1b7b78519656b6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf75784d2cf9de1df3a07886fb21e6b14ef822ed38341e0a2805460c1ab0725d"),
			decodeHexString(c, "65e36f63766d717c445845f1e6d48c3f8f79c9fd991a26303398fdf404b4b429"),
		},
		expected: decodeHexString(c, "eaec99b17173d5028bdaed59c931ceea295a76172d2dc4db609368d2a76426d4ac14e4cf4960de1b449aa6fe0a6d1a682784f28388ace97c7f2bc7afda185417bd13cfc26fb9f068c58d74da0d38afb70d591e770fe7a79184ab47c8c70f4a3099752b4c48bc2d4a7598adac36f9e6c792d76b696c51a7514fd2a8d757417b8f1bf01500a0082c874c462640434e6ca3fe6fef52f338c01d6fe92ae90672c61b0c3d0e2e5b7bdf95bb87a112060f22ed4f7ce84751432d6564548ea153aef2afdfdd12bd4e92215b49e71fed404b12452dbaaeae4690a15bd14e303c6bf5b99cddc409d88d5a49621fdfe776c487a5ca3d3a9601fd8dd2e6838846a4cf5cf1a7"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_5(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9305179466eb9200f276768512ce7aab3abb38fb3e1907dc300c80a89619a17a"),
		nonce:           decodeHexString(c, "f8ec3bf1e181c40d45120aebc73e1b20"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "566d651a48b4cc08fedbb51ad7b04f05737ceeba64fb6651fd55e4bdcbaa7e58"),
			decodeHexString(c, "ce5dcda71a958623a719ab9451b1c6871e55264e97cfad09779afb919d62f9e5"),
		},
		expected: decodeHexString(c, "e8f6a6070d94dc1d38d33af76e8e9f80c0f0e1c323f2b649f0459c4dd414eafa1c10d20b45b5e7b423cb3f830ee9b9d6018af5aa46148aff30bd93b234dd7280f639c88ebbd5dd4ac27792b1f93fb83f71218d9597cc8c670912c766aee486b56750b0fbc48c496289d8626c7754e21578139430596ffa0b9cba28495adde43f26ef041765058d0b4934efdb0cf1095658c53f2dad5e6495445d7f5c4568972172f611242f67271aba9482c3bb8c8424bc2b18d1cd6f707abaa504ef3d0da9971247f4b09c082129700e91fe4730744f80708c86bfd00488d51c459cbe8475ba98a4e0352f93353b787fb7486a65607e0dab9b8b349fadbfe9c66d8302cfb1f9"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_6(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5323118856f8ced58f32533d806c07c8a93746ccf8a94654d527c12975827e31"),
		nonce:           decodeHexString(c, "d00a0aefe3b648daf24aa0db74953abb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2dee42019a3d6f3379fb8fbea31db7b776380cc3ad19f0e834512466a6e6a13"),
			decodeHexString(c, "4ca59a3bb1cb96db8b18da8c44d1374ffce065741df3283fe9d19eab6e8a83d4"),
		},
		expected: decodeHexString(c, "9b719b95bb115a0b590bd0621577eda821cd76aa4f8617cbdfcc05f9d5208eeef558a0ad6078349ca8f14527962aaf319f66c8d35b2f9087385efe07b30b0e08263aae970f9f09567579ae1fa6e981146ae47c481d503799518e8ab2ad08ebb47c67bdceb4f724570c2405d1a953f73821bfeb91bb40ba138906f09f0529dd635a35118f48c6cb47c581bdffdf6540a3695e2809f4a370bd0dedd65575498cd1a5737c5a0941dbdbe8ca28d6d60e46cbe5b21fc7712f66fe1771a51f25befc4854072062e6db75100292d5b34e3ec83b29504f769cf3b69a33b27dd77eed1822613b3d31f84a8647be629bae7538572dd6af6d3f6f6834425d34069afee97ce0"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_7(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ef27aa55ef8bcd299df83a948c4f8ffe21f9919420070c638a6da652b66e4669"),
		nonce:           decodeHexString(c, "5249def699dc3f59cabab112c0968963"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5b3a2b1e674a618b1409023b7d96a885784e5d1957f4de0118f7d18d8f80215"),
			decodeHexString(c, "6c58c210a477d269a1b2f95d496293605767ca8da5d5663271a31dd3a2f608c6"),
		},
		expected: decodeHexString(c, "d9e8c02677edfc17620fc244268f77f51caee50edec6d3cec04fab592b3609a6e93c7d43f98d67e55832337c919615d7f4004bf329295f0345ca087e0fd0a09ef8b1385aa1ca053708823e60c9ac056014eb8189819ee458d42983bcdef5954c8eefda5e65fcb8f100585ee734c1bf9c8a531397d0a798d39bb194a3cd064e1903674b1c2aaa7009326385226c9c1175ce8f6c4890d54e5b351db33a8f0895222a6ef9df1f2a539972f44534f6dde0ec7e4209a20aca0b93a9684bade19a1f787847dcf394840bb8a126f87cef5b2ab6db2846842e8da68f20ce4f6711f93cae55a7f9b5c249f807260981ec56a31b209ea2c3d434273ca5504d3ad3c9570147"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_8(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e064ea6c41b85a7f34985c41515c78ed3db807781f66bc4626243617ef57eb3a"),
		nonce:           decodeHexString(c, "59fb66314abe71ecbfe2e790168b49d8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "82f23e1bf1e454b0118a2f8a888073bcd7914bd9da765a1b1aa047ebc5ee0967"),
			decodeHexString(c, "fd2da0b38e810a533d537faa1896e549eee244880e2aca61a5771e7171897406"),
		},
		expected: decodeHexString(c, "ed8df37d9d73e402a04a317a58127354492ae5f949a3b3269b595f25990e5403e88aa5624b86132f564ee75db9e63cd7c6b53adbe58487e17ab3afe0db70ef5e36a7b338974227f8cbaabe253a1455da9f7a54adf238546fe687a60bb272a34f97368412f9dd1b2b9ec5a65be9711574be4a3ad4ec64ed6279946366359545e4e5e8698cf300d361ded6af055255c3640843f4085ffd0b1c3ada6bcef1a790eb03ec468df621f64e0d12ba9d27ff7a4949bcabcb96eff46a76d11b3279943cf63b9dddc4706e4689225b9954ab17f5a60b8d111442763a3ac39698f7869d4e20fca3096ebc2613887aaa3ecfb626aade5ee3ad4974221052c0cef0f8ef2caf40"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_9(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3b43c5876255ec8f831783e11befe2d92f18ea507cb41fabd5d41ac3f17be66b"),
		nonce:           decodeHexString(c, "53d0654ffd0a34abaf4c8a79662c82f1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee9535846d8c405908b5f232f4320644e2d9bcc8a53fe7774a92749274c7e550"),
			decodeHexString(c, "2a692a1dc9a652fd559305c9ab07c9344fd7769dca6a7cfa29190bacc78bb2d2"),
		},
		expected: decodeHexString(c, "1a9cb111016c210b9c7b95f82d2e34a3472b41f3b92063c85edbeca182800ff8df40a92d11e3a23b85d097acd073986e77f2790ef38c13babc9f04cf861c01af85492016c44fc117587b6813ab0b1f634657e1c689d1b9f375c5972bad3abb3726e574caec0e098c93c18aaf7221a6d8edc2bc3d89f44adf09d8995efa26b16b481a44b3de122ed32d5ffcbfd55cd4c840c745fbe5161aa6ebddca12ac855955ba06a46e37ec42f530a9d413e41c19043c315999131d76f25873d5686dac77d008c9546dc86bea12ee2c79fb3cee8d240dbe6a10e10a8a968be143803ec6787ad55ef79b6f06504bf368b2e296584a1ca1ea6f92338df240bde539edcb0d62a8"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_10(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5db87abb653ccac39269f9ae8cc9034bd6224141f8118277736e4f95efca5ee4"),
		nonce:           decodeHexString(c, "ca2b95330836140b72793faca3ab2424"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0391c29dc29ec9fe2c1eb383d67b23a6656cf915b3604f1f0fb624fd57a95d1a"),
			decodeHexString(c, "24fa10b718565f97d95551dc79125601da8fd9a14067e6f29b747bed5cf7a90b"),
		},
		expected: decodeHexString(c, "8d03b1085a5a69f6c3a381a635bf6fc2399c0280b531a6e64768bda5b1257aade71dfe87518256a8f3ea75629018b1d95047b29b7f3ea0f01144b9dfa30b3eb463d5738e41b7f763f9e00a9c3bf80e55aaee362953a98220e6d980b6dc162c5d9a19375105571b53e1a5e264085abdb8e726210a3b7a9ca92c8cf1fe00db067dc7b3eeb950e570b796be4d9cef7984a3794e79c88a6e20b70f9db3682badfdf62cf2404f84b4e7460ab72f59de57db4afcea16be99d9c81134f0e9b15debbede3615ffe7825ec76bc19c1ba62681ce98f46f504a445d2fc29313446b3aa5a221a0ce5a8eed30a9e0f66127edbccd752d826844f110215cb98b05c0ce54da3f86"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_11(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "66184f9c658c76916ed6dc55020d39aecbc96bd688dc6baf167bb3d5f43df21b"),
		nonce:           decodeHexString(c, "1431b714e69d44e67614d8b5048ee0ef"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b255c59043cbb66cc8b728e0ce6353df7fc68ce02db7c7b8fbed55f8945ba9cd"),
			decodeHexString(c, "f21d925824bda64017c42ff0661a67c2c19959aaab81ef24bc1a9014ac823a36"),
		},
		expected: decodeHexString(c, "4c86b7b0728754530e727168fc18af962e1c6db4586f9beeaf42996a24909f353397b27e0458f2a3af81dd5e51a636da139c89a802ba69875cca95caa491d2254a8047a85087e92ad34d9029ef2d8c62ab1ebeba4aa66a52a895987cd5812b39663e5e020974e6380dd100ca9ad68162cfc9921516e8b8e6ea2bcfe51cc90544a86cef0f64c0780c4a30635928f35e58e28628ebde6a3f3ab9cde64633afb32fcd6fbd2cc2a6f6a5435f509517f694df2e07d95b03aa977ad3ca8b477c0320a295bda792cdd7094817972ec69a5c13d72163387fa41665c1d65112e74fa51829bbef3725fcadd38a018198b7662c7c570a2665ef711a3731242ad106610d77da"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_12(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d3ca7216ef039be1fb5a30d1de5cdb047aa649da4e8a3397332a53df3886a31a"),
		nonce:           decodeHexString(c, "622a8e801a52963b468ec4b115f4beef"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "156d7675581a8384dc98f460970e79d92aeb23544f248531a3b4a25858a06f19"),
			decodeHexString(c, "6a856d92123f7df0c86041dd3b102f7fe5b8b7ebc99003fa83598254a04ea762"),
		},
		expected: decodeHexString(c, "3c041b78052f73efa2ddc80c7d10381527c8267743bf7d82d312c260cadbf3703df340f01db4ecd91985c444ad0ae73d87fc9d98f988f8e1041896991c3eb347f8bc8932e9ef785a4d002b9ea7fb03d9b6ae0e89bb829f70e6e7924aaa50256995c32b2b0551d1b6c1494167662b2c529076d6766fdba86b9924eaa2f7e5463fe09ffab3118e50c1d8bf70b65225322323bcdc427e4c62ae154981863eebab05fce8bf38242c4ba5c27ad8debcbc1b0f7b00323c8fa075f796067af0c19de875ee2a5083a3696d2e57044c658d396a69918e762cb0a672d56ce5badf8279d33575e010e5e671b773a2beb4608ad7758e4856d2305f60482fceb1736eebca23dd"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_13(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "44a57d527b5613552d7375b36f2a9e8abab4103266c1dc19926e8a98cb5b24da"),
		nonce:           decodeHexString(c, "ed00d22df412b47787849e6a72a2360d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "42f3d3865efbafedfad494be062e2eba3057c4503674d40a1ea0a8003606a21f"),
			decodeHexString(c, "2d1eb96bed9c7da9843b9d6d26aa7081e76cc2cbb0fea9c63f3d271948162918"),
		},
		expected: decodeHexString(c, "324258daf569cedda8d25fc6316c76be91e6e7a886d0866882a3a3260f7d485513fe8b54d0efbaf64c2cecbc35c68b399268df9b5de166a51b4ade63120b231050175a6c3006dc55ac1b4d49a856242155d6f091860dd74186a1978a9a966802787a5a1ae6f6258b50cb998593a9469ec631a0728b2f6cc1031ce88304d39b5393d614bb4cd18174576da66b3f8be72538e38e5d47500308ecf0fbf14994e32db460de082a25c328d11419869f2c9f3fec70e4ea675e79dbdedc9bd9ee493f16740f88ed7d56e43decddde2ce1befb96d4b11bdeeff6231a5606484c4c6f072764e23a47df225de192aecbdf1a6b3c5447212c0b35855304c54e0a9536c2c1cf"),
	})
}

func (s *drbgSuite) TestHashGenerate69_SHA512_14(c *C) {
	s.testHashGenerate69_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b0653a76c3fb3837d347c979b9b6d1434021c7ddaabc5eec85393c30d98d64fa"),
		nonce:           decodeHexString(c, "836c9e8b7fc418ec0554a0a21f48f30a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "771e91743429c40a2e3ececc9a3d73a92336c9c988c5d9dde47563b6317c6f7b"),
			decodeHexString(c, "ae1a58611aa54df3c655a1f20985552ed9e3610e92170a0de1a4573a5a1f93d7"),
		},
		expected: decodeHexString(c, "b2534bf690444513bdfecb35bd616b0de47b7cca7f8ab9c5e823b468da62855601b59c6bb75cf34fe3dbc7f795536b9619d243c0f6960895d6710130fbfda2a0bff803e856f1cf21a63e86e59be0d6da7516b697e9ff95c341913ff27c8abe10e6af1b7ad8dec9f7aab46b8d35c103f9bff3016b39ec24026a7b582f6e95261031f734e29a1b64c65639cf238381e5f7e31da624ad24290930501132c860118b6c59052aaa7cf982486219431311453a431a1cf50deaf068e2f9993c0ab851c9aec72be8f7c5c57ed03c488befe6ffc256efe6db52b7734c042b69a5ed74e2593c4788c5fa8a03a5017b927bb8f1c8262925d734c5604639a9b441187b0d95e3"),
	})
}

func (s *drbgSuite) testHashGenerate71_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate71_SHA512_0(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3a0b3706134d89aff6236423306e3d0bcaaa3bc1c33591aaef33808e67feed08"),
		nonce:           decodeHexString(c, "6b76a9b7a537dae85f7a23434c3c444e"),
		personalization: decodeHexString(c, "f1b75afb882dc42969b6deaa9ce5a4f99ae6942aea213c01eb79e4ad87fd10cc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1e74d532b1bb937ad9c7f4d40cd7ce8dd7548adb99258e4b7652bb4f540e4289"),
			decodeHexString(c, "f8fa9374086dbbe84b50651cae672219a26dc6a789d35db27bdf6dd2653f8390"),
		},
		expected: decodeHexString(c, "674404d08561a75d1dd50d47e234afa0d32b0fef15788cafb72a7747924616b8d31a3364ecfc3948e4c129801b3fb40f7c7d689f1f3c11d40cd7b6d94a58b4a8bfdb665cd55c2c2c4682c80f8fe3b292fb2cee32b5f5b1ce9a169fe61787b4a7fc19d27e08b77af6ad617532e92eb0b1671f87a793b8540a02a596e31bffa7c6ea546e35ce962a5d9d97c86ef86fb2d8c7cc7e6c70cb206cfec80c0230ef72b51884cfedccd8547445914f56c1834f3ad3b715bb1c234bdcb0482491d81adc67c020ac11ead0657e461cc53282722c38fac1f025de035e42153f5f56ab81ce34663fe4be62db94f11eff427cbcf17b43b0029b6b8b7d38916c1d4824c7f627f8"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_1(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "08ef8f495d14708affae3e4c57c21ae39d7bee3e4f9316e0daa8960a145c7d8e"),
		nonce:           decodeHexString(c, "95c23f6f3ebe662d28df27651110a733"),
		personalization: decodeHexString(c, "c81056d8c1e97de17d591a99e5c61753bbf5a75e184c36cd85e1969d491f9b9c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6739d846dee917b5cd99c48c339fde318a15acfda9d1491974baba8805cc4b26"),
			decodeHexString(c, "87d458ed9dd19f136aee879ad433aa57226f5124670738839b61d96a71efb2dc"),
		},
		expected: decodeHexString(c, "463f161eeb198ff1b548915d18f7b7a16f776aa2b968db62a3ffecd55587a2e09540f3c1f7e5c4c2726f224778aa515ef24817b40c678ce7f53aab7672e26c223d898ce8fbab86354b5a5bb1b5c78002039a6dc19125a58ffd810899aa732e2199a41f2ed585a72dfa7346c22dc67ae529ddb871b57b8efefbc2b52f4b4652f7dee1d56d6aec6592edf7a207d3b2b4ce8993194f157175f499c7c354d4c275e01e7e7c38e0398657d651b70b428b307a07bba2c0ac741bb8d36e52d8b7747464eeea73366de1344bdeb44605ec19404c2eef60c4d49ca99c17a6a5f326537597fc539fe7b9ae3171a70afcfb3798d7d608179df9a88aa47aa254d21f85c73fda"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_2(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "3c65fa29cfd8e881f5a98cb11ab4a97f7e404f52f7d5843d0dfe020fb78d9f65"),
		nonce:           decodeHexString(c, "1cef291e0ad29c5e30c226947e6fcb1d"),
		personalization: decodeHexString(c, "f9a452ec430a2541e2b6f77af9d886da1a342aa42fc31bf05e38375cb7a98baa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e72be2c8e42039bb28638f8a05ab9035640f312d07112a3eae77674f90e5d025"),
			decodeHexString(c, "cedd97d41dfd9902cf9f89bd11727685f9caa0a7fddaa5619a989034500acbba"),
		},
		expected: decodeHexString(c, "b81ee53f99665311cbfb764db209f730318253c3b2e66f93c9a318520aa8e5d7371142969b25467d392f508806664e67d2d53885dcbc5d8e019b961e3d34a991962e9b771a91fd51956f7f039c3110749429adb9635696a48a3955ad183b50c53323ca36ee2cddde5a426ea5db5a63ce0fc57f91fb0a11c468d74fec78a62bf5fcf2b4093a2c4db72e6159ca5a295261458a3c59cc8b0ef83436d8abfe10653eefa1e1eca341ebc8d874497d20149574badebf40ffb4baa7c34ba690afae7c4316603d3541e72841e19513e47e6dc11b790749e0afcad653ea437f15db10118cd79a136b1cad437fabc4ef9914376c3db6a4f264a2443717b399092bf2512767"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_3(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "37e5a04641af4da6511d1e350ef93b0f84e93d6b3c15e1ea8c266eaeab4aaded"),
		nonce:           decodeHexString(c, "ff51dde6c327b334e1ef1bc3b939dc7c"),
		personalization: decodeHexString(c, "a36e25ef460ca1db447749948846ca67163f495fe82b05f7f33a5a259a7b5325"),
		additionalInput: [2][]byte{
			decodeHexString(c, "926c37bf1ef359d6685840a6430bec86f7b65977b968dfc3179f41e938c19277"),
			decodeHexString(c, "8e6c606c94743ded5cc78a6b35524a1b45c6786c29b0e0280fa54217a65c9649"),
		},
		expected: decodeHexString(c, "36b3b417121c83f1a38a4809c851358e7cb3422e703b8b9a49afa9f838d8df8ee691a0c12c3fe1fded9838793d62c8b2d416a5ca94aba8e082533b1d1e331784638cc9acfc26733c8c9cdf8c8c028d7188b4616f5151a3ee1205c620060c2e8c2699da3e7aeea2db873598d2dc1838ab67cce4c8c5e373ab10fbdab07245edb1596c6d788b799c08ca25b91145c646610f5d9dbbbee1a1e2e9bc605a7fd457dc3afa786bba753775ad0a0a25eacb2a7080dad269526bce4d1c6c5b6fbc1ab97fa173576bd6ad1fcc24267f68e208926d508b2267581831495892df850e8d49ebcc364475f017ecef7e4dd18b1e484ee6d0ddd08a9563024e4f31147446ec9ec3"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_4(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "eb940118848eb9f6f4cb5590523b16f247d7ec7f1b697189d5ac586011f1d603"),
		nonce:           decodeHexString(c, "930143847c86887c18f86f412b2de61c"),
		personalization: decodeHexString(c, "ced1786d55cdc25e60c88aad425c2564e1a27c6f6d8b65eeea5f4c76779036db"),
		additionalInput: [2][]byte{
			decodeHexString(c, "634fe5fe9e2f8fd44afe0f9ca59be58ba3ade4cd76c021bdc93cd8f3e620729e"),
			decodeHexString(c, "40ee701a56cfd622d0cbf5059909dcfd1f29c316f653b778948efffd06023e87"),
		},
		expected: decodeHexString(c, "afa20073acbeaaa624e3adde20a3850543d6fe998214afa792753821d0929bc4f9e2db8f03b9ecac7b2103c97eda0448bd2c17529679128916f4c10113d7435c80975cde9e8a45f205ec97e1180a7f7f7e7c84b71e836be3a3914201645f55063c6f707d33aac37ad0658706b59a742604783947fd442eaf688bc5e0219134533b197302b05b087b35d4d74812bdcc780de4a9b9b2df4150667f4fdeaa0afef67a1f9d614984c1ea1ec42712575ebd10d6b3df75fca345772c8e7ce6308eee3e8b54c2b050575f713fcce6f10a846e3513b48a208674128ddc9b2d173133cce34cc363aa55048683020fda9c038b37e73f199d58f201a59aee400bb80f709499"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_5(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "51d7364e6faa505a510ce9a6ac4739428d6fccd3b7a7c841edc2333e6122fad2"),
		nonce:           decodeHexString(c, "f33f5c64f591d1786a4d1039776b7db7"),
		personalization: decodeHexString(c, "1fefc65641e9abc4b9befa284e514aa395cadf1b2f848c0fe0a11d7544305369"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0e5a98d1bf0c45c761264b660bc74e648d44b1a542bc68549e948e8ceba1dbb"),
			decodeHexString(c, "658ef0048affdd317daae554d769f4c9c529d5ab6cb11665b04cc6f409731fc6"),
		},
		expected: decodeHexString(c, "2423e225a6439240761a2179005acb6e1824367a33ef0da147fc197f5e38bc9034986e0f3f45aa0d6b1cc80f6e1746c2c8a1daddc165edb58b9604c5f13c287d6b56fe6e2675f5ef60d2d811076cece5984207e5c9026e26d43c40934f4178e64188b12e7d6fcbc37da3265bf59edfc7067b8c42dfb6dd16246d60113d1f57498ec91289cf4465895666dde042ea3d60c88d1b2a70e534e937cfe078cb196dfdaa3015a3d5f0c1c3f47f521376d4b0c48566b79bbbd619f959a24906118a819ef755ef6feafcf4a1ae6ee62baa4c402b61b73347f703ca4fbc35f83cc7698168222900676c8d7fb3c2c6bdb137b5a3b8fc5c1cf7869a55179a3a411329b0ef8c"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_6(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "58a3f397b3a5139685781f7358251ebdd22ef1f86833014f2910302b0c691b3c"),
		nonce:           decodeHexString(c, "4e620a29d315b9415300c913d9cb4e35"),
		personalization: decodeHexString(c, "f5c74d111e39cf4664a7e5c6be148dd53dcd34684db0abc9fc01bf07af705370"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0aa25c38c6a26716d2d2dc700a3358eb17dcb2168a1d7612af7027f66cf3187"),
			decodeHexString(c, "19fdf2b40f59b32964a16ce77ad48f413aa875d541d2ad6e9e8d530c0a14d430"),
		},
		expected: decodeHexString(c, "92fe033a889367df0c034fda8029c815d5f505207eff0b190fca5cca46517ee2051364621f53ab65aa3d23b7c50c50328aa97883909efd73d86207c13afef6f3ac559de12e6c7b277e8648dadee399f9b97092420c862b835744cd433243c64daa9409edbdd35988938a1ef251c4c821f399ead09709a131de03ae18a72f76b799a9bf9770b23bec3291b57cf99b5e3ad21f7b7ddbad9a90add400928a5e383e3fbe7b8cdf14665ea46fc3b199dcf1751dbeb79ad2de31287afa7105b99b1a49df41dce4d81dd6fab1d52b1f3549942b0922d16e943b180dfacb2ec9286bc413257c99c99a8f993438878b436d7f1af97380f1d5b9fc2c45d14f3d4cc05fbe10"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_7(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1362e23afb6f89456f7f2f69f8f24575aedefc274fc5fee134fb5288f8709a5b"),
		nonce:           decodeHexString(c, "a9a939ffccd4ce48c727ebf7eafe840b"),
		personalization: decodeHexString(c, "b4212e43b1e0e1c442cd62e4ec3b560ea3de20a753d710371662d522b62ce859"),
		additionalInput: [2][]byte{
			decodeHexString(c, "827c9370783c53637d964642540b2ea8efbc08b5b5bb76c72b1d288de4a3b993"),
			decodeHexString(c, "984bc571607190030fc278a5e77a872ca43094f00a18ae904a621161d764e939"),
		},
		expected: decodeHexString(c, "5f844333935828907bd210484d9414f3639a669fc7ff5938b1d5c4b1291d316c6b0a6efcc80473bb21887608ee519a0b32fab5d1b2764ee5e7627d9abdd8118545775a0d564e37ff194c7d4e1b5f1f898b287e7317d04a61faa60d58587c604f470ba77414134c798d48bbfc0f948c7c95c13f771b27c0c7f067779f312d8bfd380533cb600e8b9610e68502bae5d7e61616574d2eea0257b8b1dbb4ee998890503ada086adc843ad5558141b8f4c0ef84711a8fe27f709081dbbab825c9112a166a823585e75add664ecdcfd65c0ec1dff6b22362eb8d5e864cacf78ecb765a320f772ecb74d6c72ef3dadde0944209c0099b7935dbe5bdc030d758a3905563"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_8(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f7001dcae15ba566e36b1f344a4688251594e966232272e355ecf5686c6c6844"),
		nonce:           decodeHexString(c, "594bf38379b0c480b318330c32ddb8fb"),
		personalization: decodeHexString(c, "a2f5243e82297d29fde60051aa89a94a500b0097bd3ae8fafd54304d1341c761"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfc794fb9ea04fa24becdfdc905eaa14749dccd0e1f8d2ac26ac13406542447e"),
			decodeHexString(c, "f820c1b28cb37d06f714c24f569c206e20f251decaad18b297c1e606af6ac90e"),
		},
		expected: decodeHexString(c, "b48c01352a87d48cdd15a3d45e8b2f1f76414c8583b11d3cbb74e8f9acc495997741468fd557776f5be8c14f526ce2cb8c4436fad2e954255cc06b3471b700038acc3b2fc9a7669f1f81a3988eefa5fffe84adf28daff56a23f0ac8b28ad7353a6817ba46f646ed82a0ef76ea577c68ece2946e92d146b9369b668b675592b74e6d298817983e901da7b9c122d2e7e86dc8896203058ecdbb49cb25e11e355e1bb80a636ce1eb3bcbef77af28a1ba08731dedafbe360dd0599e3b66d50e577156934a85046ad1c2a6fb2acdf17b2c4573c45f6b9a9245726210d12d9b0f04abc2e21d37f26a555a48fadaac303869db4198da105b68357e11f1765b02528eaa3"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_9(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fe4fa2ed2fce276d03b9ffd9b6b0f8b04173b3195d14cdd4190af99ab015e234"),
		nonce:           decodeHexString(c, "e026427bdf89bffdf15c1325eeb2f292"),
		personalization: decodeHexString(c, "30734cabfb174c5969e6d2597b78cf66144a2fda03d5652bc9e12ccc59f4b1c6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b2b5c92357ee522c3c462157396d011e3663a6f4eaa209914338e0ecfaced26"),
			decodeHexString(c, "13af0126d29bc72ad64a512e43e8849d5526e5b698f02705492889797a1af2b8"),
		},
		expected: decodeHexString(c, "19e5d5fb0a9d10ee2c485f5cbd4f5199daa36d6dec9b4f9ec5026d6bbed88f19b10101dca033283250016117619040f83183f3b904ef218f566439386edc34d6ff3c408ab57d3c1b3789a5e1dc0356c37c4437329e17b19159b7b5316a52d5264c065dc2588c468d9c573b2cad9398854ccb01839eb540ad3d2f620d63a45d8186ea86beb07d8e6e1592706c34e8bf20c1796f493c9b54cd3ea8c677a2ca601bb28cdfb5232ac61cfb54c468b4ea71b4b28d10d9ee70a91311e6c82ca1d3a2e222caaa6bf3395924d9a2ca6c82c317c8b92a1d57456f8ec95bb9c6aaaf16ac8b0436e9bdab337ec3ed50608b52fb62332fd2f0fecc218290131359fb070a38aa"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_10(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "83c40c76f49ccc74f46fd4b5c9a2c3ae0cdd50c6a9db02373652e809ef5f1413"),
		nonce:           decodeHexString(c, "ff50f2c0fa12f5d776b65e748e33baa5"),
		personalization: decodeHexString(c, "9f84294805592053461f03cb2a975c7b5ac1768f5699818181da7972649e6600"),
		additionalInput: [2][]byte{
			decodeHexString(c, "659bbcccb2eb7b29453af3ec50519f9c4c6347a43fbda504cd04cc5a53985513"),
			decodeHexString(c, "39814933558bdef6313af6957fa69ab5f97d7a1343b866a81786061f1cff89cf"),
		},
		expected: decodeHexString(c, "433400b05cf98c7c69f93744a66f3e6d41e9ae7f72c9aad4f7f6b4e39ba83de9c22ebd89f54fa0fbe73839288a19185a24f3b68b42281516f14e416e8511df0cbfeab723fd55c5b26f07c7452960da9b1c7bab5236cfc0794689188c82b9150bf83072ef7b85e8842ddc3a9548d8162cd908f7126e1c96fd697f4c2ee6a53850447373a9058331b69006d72db638ee6fc9e2228492bb3455d991579eb87b198fd3ae5b4f6151b317d1155a2e5c24cf10d46688de98428f89bb713df8ce0d63544cae1c6c3b7f49022209224962d30653a95e338e130c3dea8bc6f8696cf399028513ac878c9f6cd06887f359c69dfd3ebdafd75fe6a0dd9c08c20a258ff1f10d"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_11(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "66cfe30c8c9c7191de5407f667f39963e6349caf7e7a9cd1856de291a8a06677"),
		nonce:           decodeHexString(c, "0fd8c9b7adc1fb95c2618894f7309c0f"),
		personalization: decodeHexString(c, "fc16896c106017b51bc402fe5aa26662d2226a9b459fab00e44b32ef6d95ad1b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ebc9d4ac1b48beb8644cc9e20384a2496e1931b2a39b9224a614d6504ffddbd"),
			decodeHexString(c, "01aed38466bf2cfcbc412708ac90502bd81b022dca321e441ca05c8e0151cf86"),
		},
		expected: decodeHexString(c, "ee00b9b160b918f1dd42887cc7be0979a700f89e84cfccc0349b4168c578d4a7d53cfc144911a9b900a3acf6cb74e06b52c6353331b9e8a071dd89ca6174eb75e7636fd1dbe94627e89a6101a62cfc8c19eb1e21fbf6d428c44ab1b0b8745fb2a70ef8899502c37f07a285193834f832f3053678ab819f8f791bab1c2369b879ae319f84f0fea72ff2829eaac1a1a32d2aa74c01f24a945d8df100b4a537f64b495bcb8bc12857ffa359b1added6072e07ba4c50c72c7bbd3bd14082aaa3f3a240dca0ebf9ddb3041c7dfd97e13dc39d59b95d4cc9e847786b758f03d61331cbcf98564e586526ef35d81ba64142924b78a9b07500b9279e4f2ef15afe8b9085"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_12(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b41c47f7e5fa562793637a07efece07ab8f8f6e687c707a35734841c43cd695f"),
		nonce:           decodeHexString(c, "cfeb8ca4c4f390017317c091166de472"),
		personalization: decodeHexString(c, "35b11d5c52a3ea0265e37150a3d36ebb7957dff52f7e9bf7893dac60a6176b06"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99617abba37108c7f4e3439d437cb46ce3d42918a8e7359eefdb057393ed43ae"),
			decodeHexString(c, "a5ea5eafc4f928ecf420b7235ef7002289957fe14ef47c2fc2dffd8f0da6f20a"),
		},
		expected: decodeHexString(c, "475c2cb2214206b5308a9d555c8b4f907717c79668b98be367cc84fe11369134fc03aacc7341dfe75569f6f72b167d7bf7e5b380648d8a219ac79f5d0a0b49e96f8ed94ecb2c7dbf8ea8e17e793f77e698a44d842bdb8b501a8c8706457dee4034ab234b64c8b8656115817bf574de6ee94039d55d4bbb93f93bea7d961db524ad56b635fa60faceb45d6094bcc6428cf5cf92ec86f79784ab899aae3eebf8790c7bd86b6e688fd616e345a2378dd8e29256d7b91824782629d0e638f7331005ecc11645502bd7213e3face35a5a38c8c86f9aea008131dcef71c882c9256bed724cd327d3b6d05b35222ebd6c06a52833314d3d905e7ba65b045af5c43f6660"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_13(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8dce05b8520b51970313d0e3f06028a21a5efcde248e36e274e8ee8b874182d4"),
		nonce:           decodeHexString(c, "370c40acb4479075960ca1e2d4ebee57"),
		personalization: decodeHexString(c, "c9cd41da22c36d99ac4b77c44b0692dd1b04fd8b2235b262da09d77b1261d774"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5166ddefe0db8d4e95b2fd81e07b529e102fb5cf95abe1c5e4da717630e26c46"),
			decodeHexString(c, "b2d566cb0d0e49c38201ae12bbe49b9700ab419a4cd084b0f67ebfe276e60845"),
		},
		expected: decodeHexString(c, "03296ffd55200be23ecfc44f926e2bde32cf535bd67102d8df6116e3eaa04bddd6b7139e61c8571c976c82f8db5d045bd4ad436b91174c4330a947611d65a44ad32fc6f1c62b085c6a3aa9f64751b8401df8664cdc2b99aa6048d04d58dc52724e70904118b86d718b079cffad38437530ebac791cdbe4ab748635781784f1a4f337228e33f0af928ae5613c0c525217be21ba4d9668112da88f129a63c3343d68ab43265c00c6950ba69c80a4494dda646d5e01c9ffdaa4064f55924a2639c14f865fccbe8148efd2b9e9223d6e8c53043004e4dc3da1d8a02fa7480d60ccbe8e6fd532c720f9f4517bd2a203847ccbfd3f7b6cba6316ef9c719d636d115fdc"),
	})
}

func (s *drbgSuite) TestHashGenerate71_SHA512_14(c *C) {
	s.testHashGenerate71_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9e8fcb613facffb5f2608253327dac1d943da7879e7aa3333126473291ea6494"),
		nonce:           decodeHexString(c, "a1ccbf3b0eae6d235285da6cded02909"),
		personalization: decodeHexString(c, "f5da0f5fbdc2306a08eead8a57a4baa692f5e37cbf7e711ef7a963734fba91a9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8dab17e96142c890eb16981b97364223e815130bdb0c0c284e50dd3349c0c82b"),
			decodeHexString(c, "1439e2d19a99703fc35607b5bde55331eca67b2b9a9f7587ddba0dd1fe690ab2"),
		},
		expected: decodeHexString(c, "aa088ba4682bd2285e90c7967a7b8a518e0ec45afd490d367022893e3822c09d967d06ff28748b5de3fb33b071b73c581bd893b6641a72cd5db35540b904eae19765cc121ca4dc9404530114c3369fa80d20dd63c8c09559c4be48aa26ca77b47579dc52fdf0eb2f2db84ab688b87f63097140aef65410fcd7a81c2bddb2c92f9d67b2e46647aadd9b85c9e17ff8b579cd672708282981ba54d854e7c9a1de66621845ae2d337a90025ccbdd1b0d695790b1f977b1e944bbc04d16a9a399628bfb33f98b40e13567514d8ce0b23340803718ea3da44fa84c923f2a85ba21495c2f9541cbe8cadc0b230b1b942e934eb4fe95c3754a77a09641ad730a550fc24e"),
	})
}

func (s *drbgSuite) testHashGenerate73_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate73_SHA512_0(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ce6658eec19c7f3871198fcd4bb39ccd808962969678503a64f1f0a2dd73e917"),
		nonce:           decodeHexString(c, "63eb7bedde814392544cf9929200afb8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "08f75f9f43c59b46b8f432fbe88ff8435f98aabb0427e64376a0835022dfe7ac"),
			decodeHexString(c, "d0c1ff150a241b5a40c5984dc0a38846865c7bce547fdc3f4d711970583ace9d"),
		},
		expected: decodeHexString(c, "bb9b3d88564df2ce454c06d408fa6b6819cf5b847f1569831c6d2915877dd5b2ec6fc6df6c7eb226813a2792b2c33f274324452be2fe931966880474a1d7424a39302d803c5d1c2b537ea0194436758476aad1da667b2bd17de53ff8eb79a63316a9b7a3375c1b4f96aee67fc4479b2cbbe705b4d8e8bef85c0b1351ded321db540f91dff14bd625def3346c7460e92ee310c29b2ddfe361164536be9e1a0dc0578df95c3bd39ad261f5b653a72a7576d33542fd29086bdfb8ca9a97135c9868f42197c3dc68b6a7b9b1989b0e0bac6c094cb16cc8b2985b3567ec1b385bf09a78635652d830f06c818b3ffab8d898a50a9baa3191634f245e4d0279e14df134"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_1(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ff29e97738c57d4378e7ac2106eeac3edfec70d237a4f4a0a25ed696e40a4f48"),
		nonce:           decodeHexString(c, "c40bcfdf12f53f44022d7d1af0fc7a36"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "308352e11732bb0d6daeccc0d8e833904ecd69af399e36984062318514e232b9"),
			decodeHexString(c, "044685b8235a36a6ca5324accaa111dec84b5a0ee8ab7b5d90e181fd2ee2226d"),
		},
		expected: decodeHexString(c, "463ce56c03da9698df7a73d81e4b65e4875c0a873a4650ae2dde18bce0c6e11216b25e8372f2d518d95cadd8ece67435a5ac495be999915ba33f556fe7785721bc27ed5580456fe44a8646798be94344f76a737fe67f7475f0c072e2a1fa17aeb8abf4bc490f3051e8930a911768bed2a2e44af818ee4cb87b43f58698d559cb7a4695b7d30dd51aa000b04bb32fa9d64e97d523ffd2f2778f372c7028bae0285375e2bd8d776e7e4dc96ee6ed6f95a8ce8e314479517fc6908da7c8e3124854088b7aa5e6440ebf415ad7d1b5584203ecddba360c3190e5e1970d3be323e69535ecb03d85e30e915cb4fafe8a10b28eda1eee396542afa2b2bdb9a1b16c324e"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_2(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9bd2004cd65872ef6c6a77630b11c1281de1bebc32416e6f8605d3a7ae1ba7f0"),
		nonce:           decodeHexString(c, "cec537e762ac381f6643e316ea9f234c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ad84d7fccb80113042f708a9660a3866c4caa5436f35a42f699f648a9050191"),
			decodeHexString(c, "a6865e03384aee4251ebb79ab878c0656bf1e5d96991b1703b9ff6d8da151f53"),
		},
		expected: decodeHexString(c, "b1a2fadf88d4409ddfdd7de34f6cf275df2f063fbbaf36b52507a27e94f6378bca267ce616e83783a4bb503d341a6677d6b76ace231d70f2f8f6890861fde4e13960ef392a0f9fd6a248bb366ba80a0607d8bd2c8a0ba8f507271a24b20a3dc4e96ca5168f02dc6e7c6c6ae82d2ea13614fb65869ce8d0e93bfb03fd2b43bf72ecaa524144b3a7827488f8c00de1ba45cf8992c6315742d9749ec16f89310932b182ea4526b0ddcf45c7258cb4e473d51bc0576d1c48487d2db822b2730590c8d8a9dc9f55b19f455f2bd422fc25ceed04c1a4910db260e1bea23e8e3721833ac23974134e2211928d777f1e2f8f6867b6870b1dd8a90b3c7dfb3313c0982f69"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_3(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a3e55acdd8a6c386cd462c49cd1f58fae95462fc2cf721a5aa0299793cd59ff8"),
		nonce:           decodeHexString(c, "ba858eb3d4a691588b133c724aee62e3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c9d80d64061c857ea1d20ef1c2794885e03325e404ab6bd7ec3e8b5866567a6"),
			decodeHexString(c, "2b6f74d6e20d0d6d68acff4c3bd188eeff4bf0c710f5366e68a35e23eaef4450"),
		},
		expected: decodeHexString(c, "36dd36fbc96d728e218b89740a32ddbe7ecdcf0480ad06cef54f3c56f054c32e58c4f8f0389235501820bfcddafb9ba13188074876abc5b3ef521f3164353c073b241e8bbcbeef5872512300f766fefab0d0f55fd740731d5bda4854feb27ac834e0657ab94458e01b88d6291e97fa1324f62ac0450b07306dc134e639f6eb53290766c37087d999a22b74865c6b56ac9d81a5e29afd59e68a46b620d621af700be523fd5f2dbe789797371370521cd4d6b5b0b8d642af968d89ab6f94ce11b5b403e71b5c243a6ce875c056ee9254a53a55d5e3b597d57c4829fcc6f40c6264e82549e462876eebe4288a701afa31e7b0defda64d39dbe777592b399a689904"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_4(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "2d1e5fedc9f6e3e9219900a5fe7db1625c12fbd2fe630f6d722bfeb38c22a9e1"),
		nonce:           decodeHexString(c, "18213f57dec5d7118e29c86849f7ec5d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "07eaa9c0376a479a6b304b7e83f7f0c653b576d80ee0d71be99488d0150dd6a5"),
			decodeHexString(c, "52b1937488673c6304e24ae6b877e6f1be228a827a9b2db7368472c153baa6c9"),
		},
		expected: decodeHexString(c, "04d011cb111bdf15c40defa89370f076f9e21ed4073c82e1704a43ff009a4478e8549e96ae9358f68e6c6e7e49c3c79ce738a3ccfb55520b6f6ac24de29411a5c232a6bc001e495bc80b986d2b701ca601c7edb29c06be2a46635d4cc97f999762919c221145ae987e14908d62af35c14040630610f2e0041412a2dad1883308664f1daa039a5a7b3393a4e69b85db74a6ad0f7439edc3414de797f05d4cb45ab765788527a5404aaeb88cca750666ccddc7eb85eebb206a1031d6c7eb058455874e0722205263462510880e8d3540394c35a7e1f8efc99d80e2772740c327db22ae8e84d07f7ad56dc33747767516c3ba804466bc860d6b466084651a462c41"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_5(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5ad5354b55207a48bc7eb2564cfed6089c3f7a89851e8200146e84005cd3f85e"),
		nonce:           decodeHexString(c, "b40ebc660b795ad35c9981202d1e62d5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4bb01a98bd3a20abbc9f9b348fc0bd9eedda7708419d28d41fd1382516d0a4f"),
			decodeHexString(c, "f8ef214e1702b0006fe65df9addf6bbb1d3ddf73ae6605ac30d885a1af32b7d4"),
		},
		expected: decodeHexString(c, "f8813fd53bba71c562c5443991644b64c0647eb1c13278cfd6afce46d1361cb46d7ea5108a6a39c90c698b3a159859ad8e93c07b4c8962ec20b429cd943ae977099e9009b3ba2a1fe9dd2a03db94a62c4d35c0030b6db24dde3462ef975fe689f07f1b8ee503d826ea0c97655dc7c1a3821806d8050b47e5ff516864209b383fa1b96f9e621a04f8288606ca6229a78776e52bc27436fc4180bcc6b7529de43151ceb8dd1e47b91188f669f7a7df3b5dce14641dfcf90e4223c9521fcbd6db92eff80f45162fd209bfbe8d26db68a54e4b9fe01a87f5de3ddf3174d2f7fa892746308d2e470aeac026908af531eb6aa33aa3e608a5a2b7f17bc12a91ad809057"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_6(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "98345771d2b2478cf7e8f29bc819aaf44b162405390951d1b2c1400759b1393b"),
		nonce:           decodeHexString(c, "e95e5fa513290b0cbfc6c2103ef6701c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5227291236a97f27ca7c70b8a888d5429b331acae8fb0b062e306f168305f10d"),
			decodeHexString(c, "b9c1eff4efaf8681d92eb1f609b150ea30c5bb062b2a6de2c68fa992b38d338e"),
		},
		expected: decodeHexString(c, "0bdd142c6a5e3e2f7c7ce72ae8bc0b1e73a33cca21d0fc4798f668ea7994a26daf473e563cd2a67c2b47ad4ef855fc6995d5375bff84fa8976a51b98a6e9257b412d5191aa6934776cc1a5e34c983620c1750203813030784b4564378fa46dad7f19926a840523762012d713841336702091400cccf80b80e77b10b017ee4b183b6f464b76072b838654e3af56c8d9b382bae9c577ccf71b93fd77f14b3245662ee0e6538e5ce67475988d2ea5035878a715db8245ac9f332be2a8429ad414423f1d7cc030e21762ed905d93572764d86e5fd85f32330aaebb4b7d7a6e0bf8eec7c8fdd6f1adf192555a36b0b3fbf03112172991bf9eb9ce4d3d4b5eef4c1b62"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_7(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c295e93470b0fc6980acb2a0793167eba4569f4923cdf606c066439d97f0964c"),
		nonce:           decodeHexString(c, "6b891e1e72e28eaef95c737bb9221379"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b44fc5845a252c16f661fda42722eee8e488ac5e2fa9fd9a368ea9455f426e4c"),
			decodeHexString(c, "402633fc22b7df8611928685bb7e8b76362484dc3da9dc55a7f7c34f173e784f"),
		},
		expected: decodeHexString(c, "3e86cf6e5df58441b7b26ab084f1e9a574180bf0e54131dc55f5a819fba4a6b4b6e9172ecdcd05342ecb709774f6bf9f0c7bb95430abe72f976157b73ec716830e1df472709364861349b19202fa865d46ae26004e990bf8f2c6e76034e595e03aab7fdce6c86eeae10572a838a97e6e43cb6b87d32a32d259f11d7a10c0948cbbdccd38cd0c27c15585883adea5c9c140513b55accafd24f1f55c1d06461e28efffa8f2a0f7366e0bf8825a67ea619046aa4e1bd56fccb8e150070da979c49206748b27530b9f3d8f1c31888c4d4a0ad752635b42dc2f911a0ca89936738cf9761806138678b1390547cea5ec73e61ef0a36d8477ee5323176dbcaa352f22df"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_8(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7f7677a910fc28c0550ffd8dfdfaffedcf0676efa4536f715f5ecb6b3db371fa"),
		nonce:           decodeHexString(c, "bd1dbbfdb160e914514d0bca5e90d5da"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c2cde242f8cc3d03d4b58b264d8beb985b480e7442969c205fc7d667fd42b4c6"),
			decodeHexString(c, "faf740d0d61f8fa31557f385ae1aa011e8ce9e7f08e93a913b828192b04a50a3"),
		},
		expected: decodeHexString(c, "09a7e2731a28f7e9a6a87a9c911c64b15b9f500bbc0094411aff0d63ef71716c60eb0b9c67115634e5032030a35511051457cfef0ae1c45855a3dbcfd0e77fece846f65e43f1216e9275e9d1c33b7758ad7edbcd50735a33d3603fd5c24e914196b3eeb4347e6896f5fe47472960e71e8af2ff0e1491779dd202d2677b40bba84da88e51980824cebafcb9bf768107e4731a45d21220e7b8c9a419d5c688bd9893c1bd7798780ade2b4c557010162499b119b5934b8d1b4ec32aa1e1b7c14def8b90b322070c6fa765ce43fe97bc642093504948b9d538a8b048760fa5bcdfa37fd50c3fda3030971c1fbad7f8bc5d0ebb2321aafa4a4619b8de5d1b8b8a3302"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_9(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6eb8e3e6943ca3171fe562384ea45a4e4142646e291079b7e9070d0f4132a1e0"),
		nonce:           decodeHexString(c, "2334d60b3bf0aa66c6f238cd2377d5f3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e75b95efcd8ae16b4b4c77f1953fe2610142d4b9aac5c33403f37410b0b99d0d"),
			decodeHexString(c, "b2f8c41469e89e87bb6b6f108faa5a491258221dcd50090e2a75c8c0c3867cf7"),
		},
		expected: decodeHexString(c, "617a6d9f85809cacb216947a16da57aa7ed8ce2138487ecbb16eeaf568e4ad90308a323a90e9af2aba3345770bfdc31c306320d92390aaa8253a4212bf39d8228d379bebf4441f7b46526bc9c5f065740c6358f48b73765d3a9237a2bfa58d6cae11f907b48a2ad4873d6816e60282728238ccc8ad9c114dffac10721570989b45f7501e18c4a2154a4bf31227dc854ca03a0add8ebc64949458ae8e67661afa01c782a3af8446a002a5a01dfe5ebefcc3a0bac807012496cee79111099692079b53f32239adedc3aac0395bfe2a5845f03c837802bc0c221517198637be893c164d2179f987061f6af68a5dcfe7a10c66d65f108374a493095adbf59af7cd98"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_10(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "75627693d9adb284fb756f6a98f50941f09ccbc9c4e1a4ae3720638fd69c6dd4"),
		nonce:           decodeHexString(c, "d911a61721a1956114b1d932a9d8a77a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "230eefecb10d43277ee4712843bb2d06aacd6a5fdf19edbfbe3ee407736884e8"),
			decodeHexString(c, "53d1d8df1bf778e331c5119648fa9b40450bf05c3dc294739e208808a3e2ee00"),
		},
		expected: decodeHexString(c, "66056c70705032729c87d4b78f7810028f583033c08532941e3903e5c40c35070d717c4eab02af86cc9090e76ea56ab01784e92f9e87e33f471f744a97e9290349d9e2b54192da5a065359492c4973d3ba679a3c9c890a42173150aedbf6a9c476b82fba53a628ba938369ac3c00905bcc7ecb00206bcc6b75d0c1f972f202c835b4ed2da8090d89977c997cb5d3d3c7c07588ae7a927b3dedcff2307fbf79b224a95fe27d3c0475480820e52df5e8e580ba5c558a4914137264ee2dc36b6deeda7c31cbe26a12222cf7820bbe7b090af56853bc23ad5fd741b934735b01e6b4fdc60081d6a1c72559fad11066affd29c8b51aae1570629aa7a42649c86ec481"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_11(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "5e819b5e81917ac851ec948402470ae7e72b28dd86b3d9376f0c105e65950deb"),
		nonce:           decodeHexString(c, "b245b92c74dcc67ad92b6b1e9b57610a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "efb4b21d5ef42e0c0016d165eb8e3da3d39cd906da05e39b988c1b7be2decd98"),
			decodeHexString(c, "92e7324f8a72bea5fc1ab36d362af82247ada40320acd5c634334b1126ecbf8d"),
		},
		expected: decodeHexString(c, "c4a872ac1ef01d981a9ca6b16e0983a7e9ff4b333f3af6b3fd114b827aa2a530d48e4ee80a0de15d577c68d2e2105e05b4c59e3c51507d40a334318666c09a54153f2b82b997d956168225633e21549b1b855ae29d3583fa977e2e748827592ccfc6d1baadacce5eea5641e1fb867bb964bc9c6b8c595cbe01f3936075e46afdf011586205a8984de5e92644f0aa64c93009cafe55ebec17b3480aa03ea855c4e2fdfb7f2d5ccb618f41b76d7d18ac474b8dae2ceba0060963b4ca5c5009472de540acce000020d81822fb448962086f09f574e57fbb7745f0cd89d19518a07d6b470cc0703ff56703f132a0dfdd56ccf7c9e1df5a6b51b0a7faf3fd624a0e22"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_12(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "a7eefd038a4d362258cfb9f9aaf7120faf42b621fcdeca647660420230a785b7"),
		nonce:           decodeHexString(c, "4748586f617e22de6e599890da84224e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "441fa009ba911da02fb2e746eab4565c5f9a5e25287a2c02f089b7e837de1a8d"),
			decodeHexString(c, "2d8d6ccb723e8db36b85fa0ddadba3cc7862eb719780342d925a2940b065c2bd"),
		},
		expected: decodeHexString(c, "4c5562026542121f82e9b0b03ad082ed7387b9ceb54cc13da3948be25f45161a59be97620b6d6692bdc93a5679bfa5614d5aa5d79e635c12cbad1366b59be166d7c70f1c99078e55dcbc538d73abb78ac5cf85a5499951a8e1663641a4a7f26367268a1436936e77a720d81ceebf4ca8d1016c1c85c51c08fc25dd0ab85f884e8a553cfd042e02403fa6b5300504885522cf1f5512854bd08ae606735a987c8d824c16608b5d500c6a513da57694173fae346aa4b6e483473e28faf6568bb9802818098a7d03b10bec298674509b85daf504b89d2d09579130188617461e729beb2296ada9c42c18f8b5fe85ff53de4176da51d578bc8de74c7b89b36dadc834"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_13(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "256aa1a9904ca011410252a16816bcfda72bf9c981cf8c2fb60fd6547a1f0aa7"),
		nonce:           decodeHexString(c, "ddbedd613bea76951bcd03228f1959c5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee6803f2202480f5b72a628cdb67b43a1ead8399d2ec1967b4011f0c88cffefc"),
			decodeHexString(c, "945462dc7e91507a5f8776d2eaa109d1f432cad59edf4da8181a8a7072077b2f"),
		},
		expected: decodeHexString(c, "e3ac2c7128a91af3fd5a0db99b75fbb04597d05b651ae5ff2016b8ce098de54cacc9d7a571749af17dde954ae276c09b719a5b3284ae1d281a2c5b520fc67d32207058d6ca140a4d5fe0522298c71ab2a03d1e50ee0af3990fd5963b7115313b85aa9ec4763cbaf6b75665e5f4aaf4d69e1219f45eb7922d57ce809814656763a152a53ebf1de1806f6e37e15bf35e8aaaa300d6545f595da4f0b108ac97a7ab261f1be4967031b80e27129f22561b2314d3ff72fe0d00e562d5edcf661a0354d08a7deb900a90edada2c9aa5a7aa25ef9c5b7d2cd28b80fbe10284284737026fdee531016fd5b9edfad43fb334b68ea7940c75238264e36ac66c3e7b31cfd53"),
	})
}

func (s *drbgSuite) TestHashGenerate73_SHA512_14(c *C) {
	s.testHashGenerate73_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "869e764d3c4d3a7f0e99e9099619884489a15159a0fbe5e2a2f46cb262e4b262"),
		nonce:           decodeHexString(c, "0b99e432471f12ca1f549499ab24050b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "97f8c1e98fd25289be846d80f667341a095dfbabd610c691ad6b2b901c59de78"),
			decodeHexString(c, "136912d2805ab8ffcb4e7d6a81e37e14b7f7bb65dd0241d56f11d7c72dd5de1d"),
		},
		expected: decodeHexString(c, "2e1f4954107f3654f51024f032518ba91512c9d8005265ff35248487b8c87d8862b8caaae27898a22f9ba7a0297fc071ceb6a1612bb99c0f15210a11f5a0725158832996f15106a7c43a216f90501c0dfb36933be940a875d4f6b0e5c29edb01614a26cb3ff7b906762fd6435eb7cec8c88f5fd7c4d76fcb018c08987108117c95d4d35c1c59efc06358c7abe7a73012ae4440b2ec86c3664e5549b8b0a30d6c8538d6e5151f9c17f9ce026556508b8b3d926e4364839bb526a94c7d8abf4c1241cd844bc6227a01d024affaedd4701129fb0f9b5ae853c7085ca13ec78ffa3476ddb1c1e71942c351c3ce9a855ccfa4c3c7f92b59d5b67e8eab16b699b7ed5b"),
	})
}

func (s *drbgSuite) testHashGenerate75_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate75_SHA512_0(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "adc9f3637c769fbd1b96486dfc11e6f411c4019479bca1da72b84ed3357800a3"),
		nonce:           decodeHexString(c, "ead88984f93f6cca5429f15f3c463522"),
		personalization: decodeHexString(c, "b979f764ce2238cf8bc7ca065c7b237969ca0c1315dd04cfb0e8c76596cde541"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70ea3cedecde3ad71313fb69d08a7eae49c57fd95cccf8ad01df06b77a34457c"),
			decodeHexString(c, "3acb8005cc40184b2eed70bdd7a9e467dc71da1b366ba68544ca54301ff821f0"),
		},
		expected: decodeHexString(c, "8ef8a9f36469d47e00763e2994e81f57d633d67b272d6eb04ce7caa8e80d23708454cf281f31df602e743fc6a37f47808a2fbba2e29a78bb7670d8d518585d1015d7efda9eb362d8f115301133dad020faf736107ebc3c951a0faeaeb2cbde54888744e5aebbd57789889ee91d6118aab00eec15936500dc2df48a45ef789bc681eafcd894ab817bd7efb0035f16db03ee6db8f0d48a89a3274d042350d4580fd74c8eff34fd29675ad3dbc4f12f0d375aa2d8a59e94d345204d4c2074e77565e24a28f432406c21db21de4fdef675f85c7e11620025c891f4a712b84585a69805adfc60f9c58dc239ea397f39e375ad40b945dafd7f360ff69602b634e01237"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_1(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8bf9fcb308633bd96047d26e74996a371b84877f8cc2693fe6d35a2d58635728"),
		nonce:           decodeHexString(c, "0c34c1320bb44b52940580151d6b66df"),
		personalization: decodeHexString(c, "40bec9875b7600817f2747fbc7e57b602243d54b3f904ad43a11300e8bf8db68"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8035ed0545b4d13a9568df1729a0bddb79351166cc783623d709d8e988e16a54"),
			decodeHexString(c, "e6f28695f5eea4846b473b89d361ccbe61b9aca654c05ff4e3033fcbb7827bc5"),
		},
		expected: decodeHexString(c, "4671530a87d9dbd1da101fcc974b336ffefd7bcd7958b88f34c1910abdac0a255430289d39e3d3fcca865d4376c598e140cc820177a5a25dd4a4ec3b8742a4183c397d4818b3fd7599be4c3826b1d2087963dd21e99537a97946557c6a76ae6be47dd3af20b41d600219484b55fafde0f3a24166df136fbeb1554e2cce2d03179b3d10411f6367faa95dbab36465ee05f6c1be90b1177f4d9d8f99a72a1905251419aa0a6027697c14719970fba8f8029f2c87492dc4d1247c4d8c2ddcf7c0e9adbda2a6cbcafa3a829f1ab33bbbd2fcfe13b330b6e00f4758548a48cd58d255224275b82daf678c936ad5bebaad7a382a19c463b616a9e7e8253e286eed97bd"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_2(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7a162b16d30474891713d040a2c687ddf2fac963bc66c7d4a9af587a36037e78"),
		nonce:           decodeHexString(c, "14cced220a1fa5eb84d055c425d62b2b"),
		personalization: decodeHexString(c, "e684d7c4118cfcf7efaef2de71b4a1267ff675dc0e17a0d1a1f46d6fc52c2ae9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0f761b08204e3b71f10c0d3c97f4ce19354bbb931881f230497ef7c8067feb3"),
			decodeHexString(c, "bcf31047a99f3377e807cd4a9341ecaebfbf68fe5afec30b02cf4f77511b64f7"),
		},
		expected: decodeHexString(c, "780d58db9ac60f70b6e3dc067ac6840e98cc21b24f048c2168219acbfbac6377a0f039cd59f76691e2c08988b52ab2d5056cd927bfa4d7e1749034a170ba9ce658a2beec30aad312404afb4e70fc22fd575f0548bdc76790d483c249595be4f95faad9f820517f2dd7fa2fcb9e1d08e3692e6f4435fd6c21f113640e45efba137efd62ad6b8e5caec1df450951c2b05bcf00e2f1827519c7ca3ff9db787a5885e5ea08f45bd90496301ce9243c5ef83184845e549f985a1bba557605db679740e6d909b80ad2faf642fa9ea6a0ff228f4df80eb2be1189c460f09cc4a62da2b82015cc7e3c864ec69f4c9e395babf7286fa587f6fcc9897d4d32aab050c5d3d4"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_3(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7d5fa01c2eaaeb3c6cbb18f835ba3f298090a18ae60f41bab419e4797a222656"),
		nonce:           decodeHexString(c, "7c0acd7387200420af4f7f5485e06b89"),
		personalization: decodeHexString(c, "508bc1e1ed5aef30009011750c2f3610559bb6da419f0977c839fb38aae5aa95"),
		additionalInput: [2][]byte{
			decodeHexString(c, "097495adcf5b32861d065ba96bef0d6c413ea223f8252e6135d0d729701fd439"),
			decodeHexString(c, "7de9b9af78bff2e2c097046fbbe873f7cb59b33d5fd6f46ae4c4862bacbcddc3"),
		},
		expected: decodeHexString(c, "aadb53fdf415fe6dceb1ccdaf4755a107b4dc54dcf2be35e366b8ab1bd4205879e3e2fdc58932acb3c94e2aaf4a2b4b8f8b1c4dc96ee73807fab85445573a1a7d74a4963b9858fa995e73f2985f860a227855914dd3c1f5f4408cfb4cff6f91ed36c8f07cd8bf87f6904056caf744f5d6169b1c75189f8f8c4175f9b2e922b90ad977b9b9be4ef71644d8ce44e24eca989ab52d457f1f49565e0eea684e4d92987473b0605a6e540b38b96de509306279731f8153aac68abdc5e5a3f48ef877b48f36e9f70414697869eae7a6bad58ca4ec0042bbd32260f4d84664a17a7eba3d1397d91bd55a18c22dc7f123ba201512e0533c01dfecdc5abe0e753a0034f60"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_4(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1c9aea7199b3b982e0ad74b973364367d980a2ea7cf8d52f3c24e24e814e6b9c"),
		nonce:           decodeHexString(c, "dbf67885a34bc3ef74d7341a35f46718"),
		personalization: decodeHexString(c, "cfd9bc3b05c96255f8f04390236fe09a6aa41bcbe5257ea6b3d0994e8ecae5f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d97743c28758f9a9e76c17cff74981a82fab10c26d18cc56c4f49942ba4e04ed"),
			decodeHexString(c, "3eebff61a6fdc3c79b7e3017f5067ebbf737e5375845ee70b97beab2f6cd7c81"),
		},
		expected: decodeHexString(c, "86f241afbfb90fc6f5014d518b6bac9938d1cbabd5a53278d29d9f0a65b768663e6149b4f4ec9a1f702b7db271dc844d0b1af32f707f8f98fe69a2c58e61d5c77719a7082f0281abb3aaf8bd498aeed29547dd5475a0564f46bbb480365edfbe61cfeb9f4305c488d249752ecd687007db51fe61153648ac48e45ab70b707ff4152ef56c095f000cbdbca632863ee91d36fba7b2a42f82819003b205d4f443d812610e322669560b1f4214777f483ccd1256b6e93ec5c658c2027a4b96a380d3b969f79c1d6bb90d40a71ae43f934a1946f136fe9a8233213f0803ffe5340636cc5a5a9d20d654bd8fc09c10ea09956e36ccf6c630ddceefbf8216a26e71ce57"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_5(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6178fdc27e7ca595e9ec586bdc976db694cefceb7f42943d2ab1dc6347c89b18"),
		nonce:           decodeHexString(c, "328313c7f131fff1040768946ab1a6e3"),
		personalization: decodeHexString(c, "2b7b70a80a8b8a7206d3d0fd8855a41878a4e109c7a4769c5216a6f5b6460750"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbf13a53a448ab282160650054a66161fb9df6a88f63295059c96320f2b25812"),
			decodeHexString(c, "9bb3bd1a28aa4c453c5ed113799b6dd08e671fb9c75428f042358515d1c212c0"),
		},
		expected: decodeHexString(c, "1c8301f16b3800c53b1902070b40a5b2bbeb20c4a695b4f58e3f6e6b5deab9f6e3e6c699e51d4af5697e5044aeaddd8cdd4c47f6069801bd16d795e52ff8fe26df3136e0ae0eee57b10478965bbe654d4cd576f4813a350994f3e69c1f0257544f07e4f2f8332e05960edbcb77740f790ed88d722e8fc53abcb461dee973b60d6b109d40fc52881d860f251ea406ddb7153b00b268345cc0d1b1e5041597fa1df92fa72397e4dd3203dba88a41bfbb46fd537e164e1d68dd77951bafdf2b92c44e1105f30a11cacdb986c5cd82974d55a4eff89b021a23d0a8adf001921456f4bf2bcd8d3533f44cc679dbdfb1a04e6b0c588700c97ed72149142dd301ff0b28"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_6(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "9890952dc9e590c3f943e2345074a5583b220d03f000db3003225568930a9c56"),
		nonce:           decodeHexString(c, "1b7b8672bed5fc6489b7dd7d7881f399"),
		personalization: decodeHexString(c, "26a572534ea88c1b2ab6ba8fbf22cac200715351861201f74e43a27d3a742065"),
		additionalInput: [2][]byte{
			decodeHexString(c, "12e70f853aae568d7d06deb8d9d751db12ba7a0832ffa4e10a43de5e79c91d4e"),
			decodeHexString(c, "016617fbde7e0bfeff10576508984c6448b3d1f7b4ec1eb5dfd8923d21e3c833"),
		},
		expected: decodeHexString(c, "b1b52bce27470ee1884e6795ed462d6f53b016fc43687fe7fd2ef113f806ca91a7d5f8d4c6289e3fd162aaffcb3ca8466e8b599128ae8a96bf825fbd582543e325bf1fb5a9a4bb8a6c67bb8724f8f0c41b3eb93576e78bd6c2d2006e942baac1a5ba6c4c872d24d6ea06738306b5297420274e564f05f19a49498728f728bcb1511e181707fad77a5df95f17251d3d5e78203edfa3782a3bb39fa96a5922b62799da862292f834ecba913987f516891e567166c040c22c1424b7a76022bd65cb0776eac68c1125b3bdd52761ca0bc92a9f93304ac4bc90aea9a339e8e91bc83008867a48dcaa715f42ef0d0d2a83002ea39f36029ed7f63e9c6a406d5dc980b1"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_7(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "26db7d60f4d79b892611dfcb52730c91172d63c0e47ef763460e47bd9d193125"),
		nonce:           decodeHexString(c, "cff01edd427fe442935b2f7b24b5229c"),
		personalization: decodeHexString(c, "c34f4c0d32467a88fe701d48283458bf9d34c5d10a4bf3b32f73676ee8b8ceb4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "024a1d0cd380c595c916ea4f56bc59c93c33539d38e072d1535e703f1e80b9b4"),
			decodeHexString(c, "f11180f424b38340193136ce9a1ab7e6a64d3b49626189cd346ccde6e6cbaccf"),
		},
		expected: decodeHexString(c, "cb17590345e5479b0bb5b52d1f3650d027f993484c6c154b5686eade3772fb4f1891c19c4f990ac3324eafb122819ce22645e21e2fd8f3da54dfa605da7d0082d0f48b8887c5abc59e0b9321a9aac9a6e4e762a43abd7a3ab5d480db22d58708c343df2cd2058523b423eb52e6e8ea3e916c9c87eaebe7ed92892ee0a851f10f262354119514c9f23ced124be8cbafc629897b2aef5eec8bd370d0bf928d2b40e702a2a38def64287617928f21a1a3c54de63f7705ae837e2d983649fad1fbf8bde83a9f1750c66d8225891bac94139758a22e748fdd1463ca539e0f0b12ac7704bb425def93f0af786fc10fa5964ebdff589bd1e6daeca3e681c3fcfe83dd4a"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_8(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "46d9e13128472cf2224663487f41232925ac1e6c53ea1592966a29cf37a10af0"),
		nonce:           decodeHexString(c, "42da6f186ca7bc9f745120aa635f66ad"),
		personalization: decodeHexString(c, "de13cc3b418cb8149a2f4349605d2cafd2ad321756363e854ea7a1e3b45817c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eff70e7b84b1d09d4854d9e4fe56693c130198ca6c5684b99883ffe51c73bd85"),
			decodeHexString(c, "f92328045cbc9635c011d3740b4c97a948ee12d07600790ade4469cff3ce9ba0"),
		},
		expected: decodeHexString(c, "4113258781cbca60aa66606271ecd9e4410ce9829c4c0c1ba1a40d62f6ceb14b294390805856c8966328f5a06dc3c00196f5ff8909114f1b6e05829516728a2d2cb96a93311c488f62578b25edb0654f3f57504861e998cdd60e77fe82b07b288aaeb65a2f35a658754e028cbfb147985f1bb89cda645d7d6f8b38f8190f49da45eb9f70044bd140b18fcbd7d02e2886ccc843d820fe6a77645497b97724427198b1444dee7cf99d8d3a9151eb419fb7231faa3bc361a87b1c7d5f09d54eb2cba39dd06dcc7a2415593b980395b7f8d552190e0a1993e06223666573d3d6dd16a0e591da1329130425d0b8de294635fa038c61817fe94ce15cbd7199219c023d"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_9(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "1acc3422d89abf02ac5c8df5b89299f6db378fd232d5433c490db306e5aa6d4c"),
		nonce:           decodeHexString(c, "e02fba6df060b4d64b8ee9428f49331a"),
		personalization: decodeHexString(c, "67fd27d89eb8d3f9d4ba2dce6554579ebf5965f52876824f42e17f846b00c615"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ecf7a642a70119c0920b06934e6bde4f55c9c3e1f6370a95df33ed408d135f1f"),
			decodeHexString(c, "86d1324006f562e330b94489e3567dffcbb6f331b95ab608bc8d2f3efe1ab52d"),
		},
		expected: decodeHexString(c, "e431486499a7bc5360d5f2c475ca5b24e4776b4354b388222940f781b18dd5b1e3fb4929ce704fbe8d7b71c608f5a02e19ad7dd6e2f4d25f2c262b745733b4223394a34f66553ca9731f3c1b2ad31393acfae2b13c6192265d2968504ec0aea69a689121d5d7a137fdcc651cc46def9b651b5b330810fa070079845bb442a5e998cc886a36703bf74df94cc107b031dd33df85ef2fa5a3cdf0051f32208c703a0b5e377dd49cd1c0edb6f153988f740b344254e54bfce3d3222617aba7424eeef105732b8124e1ba40777757d7670b60868c7a3a5e61ba9579cb3af4556357780a5ab883eb2623893ddf8a8681729f321f07eb7454f6f2226c84e32bec6215ba"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_10(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0fee6b365bb3fe32212491527b6acf06ef4a6e0ad44da2d606bea5d92fd1584e"),
		nonce:           decodeHexString(c, "0fc2ab565b599ed269d71fec6fdbc878"),
		personalization: decodeHexString(c, "303cd364a259f6396597be4fbb6b4cf3ff1c3cffd07c8fab452dd4f7e055df0e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8ff9bf93e680824243115c29613a41789ac1a8b55f1103dfd6f43edbdbbbc227"),
			decodeHexString(c, "37244d52b35197aaaaa7a6790ad3d009b661a67e07249f75ae00f4c3dcc22edd"),
		},
		expected: decodeHexString(c, "788cc299a32b71b90c735d00862e9b3bb46b5fffd2108eec93bdf4868ca554b298741fa6ab07c1c829eadffabd0224c0b11c43f745a347913612edbfe40e8180e1e95a89a3ae097450d2a708c59d36a2b145ee48f66c24d9c6e1098b48a3ec68cd2810c8a54ea07d7c281c3b4273f70a020a1ccdf79b07fe6c01cc4f2637f3b6c2f998a38950fa6edff818d448dc0b80075051a78a80237a5ec2c509d6c227eb36f91a3457ca8b62feee2211ee394808061ec920f332d685dcd3bda8633d27e0105d5dcb186ba9fb5da53bc6dc7634bbda0e3dc415353be9e6efb5063bb3b93771513315ca0e4d72ef047f21b26426adf5d9915e0534d1b22f230c5442264ec5"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_11(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8b3bb4f24f21ab90c62aa39b0ad2f2ec95ba11c60ff7ea42d51a5a51c1d76ba2"),
		nonce:           decodeHexString(c, "f9b14adec03b96ac277216b44c349125"),
		personalization: decodeHexString(c, "4889fb580373fab64f3ccdb16ae090ff64bfaf57e6c67158b49c7c504fb6c70c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3305f70dc430edf2460ec326c797aa16e14ce2a4407f504b2af8a02b2262692"),
			decodeHexString(c, "028efc38a43e4a9ca921a052b88259621d13ca436602c23349f0ad97e22b6426"),
		},
		expected: decodeHexString(c, "0cb259fb3f3fff8727c6184dd781fd653a8f39912fcd689e1cb13f616f5413850d5eb9013025d45f6f959ca87bc5a426a43c43283e1c81558597ad68526e6d4808c64755dcf22e8aec3f23b70c2bc908f6af38c1efb02bb77de6755460eac0fffdef3d8a93cc804198b68f87ec97918d6fa599f2a926de619cd728852696abd9bbd7d33858614e8e36d74fa3260027f428fb1941339b01e9d9f9545df13c128d044f98ec042de11af74bee70f35bd3e8ff7f13a5d59e25390b9ab76c83e78b36dca199f319d0b06e902194dbabff1da93f3dfcc3b4c0a673e4196881cb32181c9ad1600e20fe4d087c8beca7f6b66be3008f37b8cf3c79a8ecca557ad6c3e49e"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_12(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e85fada7870dd47d268b2c4f425fe62e73b5ca13bf73f357863e69747ac92e75"),
		nonce:           decodeHexString(c, "ee92435d8a4284725305b0d5c668ae2d"),
		personalization: decodeHexString(c, "09dd8b6fdad45aa8cd42605534560c6d690420110af119e9ec1a4c32b9b228a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1f1d272c662e8a46c2f6ce293a073a8bb281dc15247c22eed706690201c4ad99"),
			decodeHexString(c, "d334abc673f4b5c6311f5ee4c039efb92c61781c8b47b19e134af0fe821f7a78"),
		},
		expected: decodeHexString(c, "5138e5b94c0046cd8498be8e3caea8a006f6a26fe56818be5a0587d3b2bc97a4a4beddecb86f5f731a30ab5fada8d245808a1b704b696b4759d7483451980ba4972629acf370c99dbf864e7b6ab0253dce6f42e290f806fdb6321f26b5fe042f72ed54734773f45e548bb7859ac9faefd3eb27fb6040aa8fe192e23efb1c80f78cac1e4a7731a338f44080137902c64cf4cd78dc862f7a6c1d241cd92ae384f31b149e59dbd73a5c2326bd341a38583e853eb5242f4174d27f517dc816e136b80d51af56b28933767db8cefa0638cc3f5d52e5a86bca1418a278ef5539877432d2cd5deeed24b5e60b9295ef04a698aa9f151528e3064d0a19838902b480ee7a"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_13(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f4d2ce30279264e30e503e12cd4a3860012b318eb3fbd2d35d052e7df79efd33"),
		nonce:           decodeHexString(c, "dabf5ddb6960e828f2773512eb8c13bd"),
		personalization: decodeHexString(c, "0150441b3517417945f69f04c1aad32fe00579d8ece73694955c692158e0d6c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a5aebe3030cd6e618c1f854857fb3da477754f6950886a03a8f579594ae400c"),
			decodeHexString(c, "387ab3af6c1df1f6218407c6c84d1ead4de220955fd57d9dfdf2e11b6b9100a2"),
		},
		expected: decodeHexString(c, "38457da4da7b5487732a4424dd2f81ce7e62b35c4915224771764e5b6ff657d02e31f0a0984415b46fc014b858d946d42c05e33a7f4ed245126acb4f9a26ed68acb409c463ef453e6f1d2afed572c425ed63668989cbf28409d735e3e317eb7c8958493e292e5a11c67f3be64d28a9f89539411564951beb965220400c8547330932de78294192c6f208be9a6136c83b8a9699310889cc3b6894d23b966ff6e7b0466c841c6ba8728ebfdd1d59883e0511f1d49ad4e2db2e573acf558eb9cdb38bd8cb7a6b5bb5704a1db4faa524aed0cbc9f426bbf1b602f8a46237ae6e0eaecf2ac2fa8638c4f0cca2500efd9f06d14cbafac5b396838a4203f284f47bc808"),
	})
}

func (s *drbgSuite) TestHashGenerate75_SHA512_14(c *C) {
	s.testHashGenerate75_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "7f900aeb8edc449047bd7421789f1354c5aca3d660fc7a0b7cebb99153c38b15"),
		nonce:           decodeHexString(c, "0ec35740b4ccaf128f692ee0222df247"),
		personalization: decodeHexString(c, "5414f7bab101d1ba72184a6596625823b9bcee8ad29cfa26753c21710cefefb1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "91e14e178a033e26e6f6a0b0f3890fa46f83731a14cf31445c51a92166965f67"),
			decodeHexString(c, "20299371a1de6f994260d1c59c1d3f731d8f70fea6e9389b3ede54d47594414d"),
		},
		expected: decodeHexString(c, "1b4efcce136b40bdc792d1607d4ab4fadc10d5e2b22eacca6f412d3aa1c60320bf825778e7ff8296db9ea360e068350f90d7d4947dc9a2e2a4074653458784059ceebf2a97db0e4a29f7c6107783fa3683b6846b8c8ce7161082405643bb84d602c6c36ca79b2b6562417f0d15f46a4fbdc445d50935f49eedf01bb131d104385369fdf88d91518618134a37c5bf73140400cced73795910ad0d2a89db2d79355ecedbcdabf135219d2afd7ac28cd7e45c6fd4e913ce5d464fd6de6e4c62b76ff86c28b0ab27a3c2622cacec075c790a7ff2f57f99ccb89c590a1dfb5a1862200c9cdf97f94eef18ddc85cf9830be662cec1885a629a6603add9396fb26341d9"),
	})
}

func (s *drbgSuite) testHashGenerate77_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate77_SHA512_0(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fc5e63b0dc2d941dcb44c0aea465f55a0b472715f4a4de42fc9bd59b1a9e747b"),
		nonce:           decodeHexString(c, "923737a338790a844fd71127f4ca7c89"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "51f1587b438bf6153ffc13485171b1f246de4f32493d1928896334608671aba6"),
			decodeHexString(c, "2ebe000fac78c1ebc66a109ab7f8a5427671193204c52ca1b9361cc282cf1e03"),
		},
		expected: decodeHexString(c, "43e78c0a68edf406725fda0fa7bf6ef41a9d13792a8f3e0d68bff7e113e1ad2106aed5473445b7c5aa3bad570b7060b5ab9375af46ce5b2abeac2ebb3bcd6fb483136a47741a5f6b25b41e22589fd5405dc28be782d0e35abd3caf5ed57f57f2d081f1d320dbb0dde378d8e6cdc964fd4c4d8ed0e954cbeabc0c50861d6e5da784282a5e5734a6df860312b13ba0b89ca93ff31c4c25f3aa89a08a0f2d90da6cddd45ee9b9899e39a0443cfc5d1c2715a40d4cfbd10b9e0cd007e45fd36111688655c62de7de5a115dba4c4f503026bf24fab22f471870a99b4747b180bc19425ef3f9009715e79d1a65d986e17f0e913570cbe9dbe9068633b817ac7ab12496"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_1(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6a413d4a578cb306798e443b5d39f2bffed09023e7cc424ffd3c64d339cee088"),
		nonce:           decodeHexString(c, "5303d062ec8ff198c7296079896aaa38"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fce9105459531647cf4768b77f5354a53557efe6f3175c578f63d3ed2d40aec8"),
			decodeHexString(c, "046df2492fd9c7bb89e0c3e2c54d2ac94e235c8273b8d54c8de1ed16c178d635"),
		},
		expected: decodeHexString(c, "475134752ca9a837509bcecb9bf575231d1b7945fdf3bfec6ebe87ed26779a040fc3b85d3d3e0584940f92ff3f79fe24fd26d222cd951c4b76022e6e82eecf78099759f9546113d8d52cb53d0361658c9ac3f53d124a3158e0d3647e911ee749a22723c6627d06f38335ea3cd35a9eef8e53f03f048575db8b6661216f978aee3df5c98ba04adc1a65ce0b6516c9d90382fdf489a07a28a38bf6dfdc13d750ad474a1f2dddc04f7465b88d420c6a6a0bc76499a57a1b5f4662a83278e73475a07c3de37ddc7648600ade8dfab40d0e40cb7e3014d22ad920050b7546075043ff09f945ee5b5ed84692c0f68829cad5cad3811539edd6a5d7210bf7adc1d5339c"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_2(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "299ffdeb87210a9e1baf88b1af27e65ad981c216059d86085d4953ab8b3810c1"),
		nonce:           decodeHexString(c, "7f9f5c3306b7353aac83a2817e6c106f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4484175233a7cc7567ce4c63410e216ad6f3b37f280d9f01b5de9a98890cd50e"),
			decodeHexString(c, "0a2a2e87749f5b655a70f0022b03ff07b7f2932de1238d4c0d6fd5ba274cef98"),
		},
		expected: decodeHexString(c, "f868ecbd2192993f5a45b730ba2b0b36fdbbc0d3ef948b03c1bfff5f604ddcdfb4a218fbd10f317bf15f49c836e45f8e57c771a6536619dfa160ffa1f3522f228b1aff6e5b570d4dace125c76cf5539a3d7a95296f33b0d6387fde055dbbd1d7a0858184076f0c545f29c5779f272befe23d3dd7f7daaabdf1036c076227598129f48a73dfa46c668c6eb7b4ac4b968cd24b12e1d18245177d1215d8925aad60a13c51855d6f1bced0e60e92eb3a17145dbdd1127d1b73c876ef58723408799c93b5b3896def5036f205a0f19e0721b7cf57b997599dc7ed35d288cb5910c964df82e0841ca42f1681138b829e29b1c82ccb2580260a7cfc354ed5b98ee45e50"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_3(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "67c2cbb5f27cbcc410abdff68ac6ac8d306361889416ef8fcc6d9bcde0896ac1"),
		nonce:           decodeHexString(c, "4da3edaf07d4cd9a95c2cd54a074fcb5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "86152e556ec04c92c5bdb40bd7ac8726561637ee8f2956c515ed3d5bf9484a28"),
			decodeHexString(c, "f7110dbaf70769d6aae8badf7f8c423c6940db38ce88a4ff59fc90c948246c72"),
		},
		expected: decodeHexString(c, "9d1e03ba9f9196158500dfe62303c32dc0f26afaba9d9e840e01d70b598811ea32fbdc7085d1718420493b93a57a79d987fb3810dd9def9799b0e3b068418b02f95cb4fa8671dd9ad3bf55bc690669a02d315b9e4d004026df6b38a7281170da427d863d281ef32bad89465748a6c17ba3e125d5b10a1f3d7c8979c255f413b42c7ff4de9164d7fd7944634e52005dbd74f415c15cb990ea2cda447647dd6cd44ee7151e9782381500a7468c21d67809871a5d3bfab1617cea9cba443b828a6ac30b697f9aea0f99c0e32cd5f5c36a2573ddcf8fbb0b1ebc8e28f321303b1e1ee2edb0286d7096969fe9c1af9cfe300beacbc91b4b1bbed634aa7920ed2425cb"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_4(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d39e4a4bd47facfa52fd06c264d3aa17699bfe5bfcf44ee42a4b6faf1639bb77"),
		nonce:           decodeHexString(c, "591d0f0dd46830694eb9d402f6c28503"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "412ff1a13377455970bff12cafecbad13cbe6d08953fe8d4cbd582a185815d79"),
			decodeHexString(c, "65795a6b1167476b0d4461adf135f86458204f694444bbbebf583b7689df047a"),
		},
		expected: decodeHexString(c, "291b542d51f5cbfa3f7e781e6805745384cd9b1585da99c80aacfb216395d2439984b316f520b8dda86fd0e480726266506beb19271935015d66694350e412e7678e16e1e91ecc1bbb99b3b0c86d05113c987621b41950199bb5084e36c83a6c50ade9edf31a7dcb1f3901adf22569429bfc045d56fc53a776fb9d4024b5a1c040685471c2c58b3036641f1b6b3713886c426ffd348e5cd0efe00909c3d4b44f0c968f029bd64036609e34ff538787bf913cb466d6bf22f0c3f505aa92dc6582a8b6cae76ad151ddf9a59c065257f691cebb5fa329e22cbf55d9f92d489ab2db0096cc6741fc3fbf372620219c89370fe230d439c2c5386f6ee02c2669238bd3"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_5(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "17aefbaa9c04039f05d0204f7351f7e6df8d5f86102c31eb68d810ef105b3a4a"),
		nonce:           decodeHexString(c, "166991006dadd7703d7c8901635dac75"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "87fdf4e12ce8366ebb634fc5887f41d4897ee39e1f32b42528fee0ae75c35d4e"),
			decodeHexString(c, "b18605e0ddfe0f718d6be6756233dfaa8b1c22aa292617ffb4db04b9435db406"),
		},
		expected: decodeHexString(c, "63d96eaeadee2532502854f052c95e066c09cb1c3c76bbbf8b709e15b0f292020b1d3973de95479af5236602179f3315836a9ed6598ce85008dd6bb593912b8d357b48f3096a2d72986690ee86ece53520272b25ba31238d569352740a1141cad49759cc655bc6066c2d61fba56ce85f68db764b374188de7e2de77b02e82f39ce618426d30534985c8fbb6460035a30de96cf88a97f4891c3a33ecc26e962709370c9c1724371a9d689a41f5e54470a99e7b1af9484ed21d5c9032d30d1b4f2feb1a063fe7aa09fc45c706f8d67af70666b2fe8c33b4c2c84bf850b0553f565fa312245fe45465c553da6c47160592bbc18213719542bc7052e4fdeca27fa29"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_6(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "04122b8273763101a8a0fc46b8fb78cf7a576f6058c54329b0b1c11f3748df63"),
		nonce:           decodeHexString(c, "674e51f28432b6e376c8e88c4efcb72d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4cd6a1b760358116b74eea410bc78f8fd66d01120fc73011a78584105b00974d"),
			decodeHexString(c, "1d67e0ca340837fbcb841677174a22adf63f65c4b81af3e5167f02204735b58e"),
		},
		expected: decodeHexString(c, "b86548c55f4ae8f7911a63579b90caf5c9ad23b67fcfcf2cc82a4abf4ad3f4a9525be26047469ffb7d9e4683af04e104d31755ab59e0991fc70238f6e3f56ee394f0345f576e3ec7ada2a6ac3d34e2f988db6e9987566609890b9b11e07adddd46b35343ebb55fa03524d1a1d86bcffcaf04caa70df2e864cbcc5b9ba090cf71263a0f77dcc34c3b0ac0bd5ff36e17c919498138a4d6ea2c7955d09152accc92369a7add7707c11e17b50843052553a8df04939923eebe64e9da686ffa7776c9e803c38a277dac48e4d82624c21491ea6fcc46bf9505ccb28868765154f19c7f890efa19cd829d1a852cd8b48df81b52f069ccb452751d36f555fd8ea3e4f47a"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_7(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6eb7781b14003275072627f2d7ebf7f772b0b8d77bfae088b12f08005364542d"),
		nonce:           decodeHexString(c, "1f739a58f7c3875b3b954ea69327fd57"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8cbb38dfdb35ca7ad26878bb3175ddb4d3dc5cca629a1005250314c7743e0173"),
			decodeHexString(c, "c1a93b677374270fe68191ce935446effff7560cc8afa2616282486d1c0258de"),
		},
		expected: decodeHexString(c, "0669f0f7d9b6453132e7c35241c95ce1c4702f67df6501a426b1ab42d52bcf7350f23d1e3667841c955a711932aa70bf968d347b810655f59947f25fe0af0bc482b4fc9770d1a98daf0114c2757d4da69ce53ff91ed2b643fc4b2c55816247c052366a6a738cdd8b285a10c49afe5b3728a850069959c379a97728c8cfdb5a76de8831d786b238d9973bfc477d3301e483a5ebc77e8655ca19bfd51aed0de8096794aca033a2b227ac7e62b3b96593dc5993f309236e273712fe4fc78067ed932d3e687f183d445267b40c852bd7f0c18f61bfa5c318129ce7dcf469cbcbe85c7372943824ffd6b1a46feeb65341b57c2c06e6e7c8d12dabbebcd296b8b8b902"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_8(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "dd4eddad48a638eccd1a1948a9710893b1967854d541231f3899ca5f212c554f"),
		nonce:           decodeHexString(c, "126eb1e72c177d87e798cf8684e3644d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bf683dd25ab6081f04d45a39d12ff74a3e584e89a4ee5d55d368c02fdaf13376"),
			decodeHexString(c, "b91c5e5c57c42891e10aa49be7fbf33901a43328fd818f0ffec700bdb182ece9"),
		},
		expected: decodeHexString(c, "e3f55e3222ae34a5ae63c25a5ea4e0dbfa7c8582610ac62af6934bf5a1a207ae635230a192cd958f2d2350c127b785cf61a67daf33a0d96304d445c65cad05c4f0b5737f3a62ed8cc5a791aa6b5e576b4582a9f8681a4f7d1cf169fcfa1d2526f2b225a13e0d56c2c8acbfece4e3352981f3e21f262b840dd4a24e1649e4e7299d23af11a9452fc703c3cd3a5b48c98efa0ad059c37ef95d1f2577dea4828da22371b7b40ade001d7ef8e2097ecaf9df2075bc52946ed5bb155fe6bec59667e59628b84f3878a7e00ac36f54450faadcdfcc9c0c300dccca5c3c6ae894970a13b135013daab0ca9f40dfc5e08560829b5fd0c11486bf7f4afa3afe1da8cdf02a"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_9(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "844158976f567eb43f4bc38de289ad523dad828095d0d3881496619e75f52e15"),
		nonce:           decodeHexString(c, "5862f8c0079328ce2a1453b37de4c650"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "94ba2076313891f1eff8d85dba77a5f0639ed46694d0ed3dc27bc9819e2b51aa"),
			decodeHexString(c, "72f02328f1ebdc08d5eb7c64ea4a2d1697275359342f1d3b1734c7c339521a62"),
		},
		expected: decodeHexString(c, "78e08b7a1e130690e4f3854cc21c2542368f5b8f68c833ae94f15dffce6e46bbc0dc9babb948f4e2ed3fdb41154a0ed289d1c44c7b5b70b87ac9f2af579e1a59b415e7444ffc4d5b4d5837963769bf9b186c3d46e512c42c1eaf17b39c0d755bd28081a0342c6cba303ce2fc2240bb9943224a80a5f11c77d876387c8e2385d527109e4d7e69c7fad30c904c27bd89ac85277f8c65f81b3d30806faf98b8ec6745cec07ef14de726a49c4606d9ee48a8572ba41daa7b1146c436895fc35964132c40c6aac34be49446418275b7fc72f50226a2e36fa70c0d6597566d26d58c753eac896ad6f2917ccef273d085d0abda36fa84ad73e69ff0ee91db78ceeab989"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_10(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "fc55392bc807482650d2a37bd7ca04ad610e9acd27fb63ec72d9959e527abb69"),
		nonce:           decodeHexString(c, "e71aa61209611477c5da3211c9069f3d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "19751887241263f7c5eb4f5328aa397dbdedc8e0116348fff6fd0d6b86a9661a"),
			decodeHexString(c, "aef61b491bc598aefec94e48a7ae4a69f982f7841d0e0161d7125a40d74c75cf"),
		},
		expected: decodeHexString(c, "4f10364d29c47e743c06949056891ec355f5739d151ef675849fa970cd0dd6eaa29813e834eb92193c479a0ae1ad8ab53484f9819daf1b818157c19a7fe4b284f063772515a3498c55a49e0e98de0518814f38e8b5923a704b30eb29958270bfdc639ffe5d94b1a7ce925adb984e93ca0f6d4b2883f15984374d43d2d51813bfc83f51c34743866e9171ddb72eb17ff2701c61c9b036fbecbab75e9cfdf3c4ed193b6f10f3c6241777ae5d265303d34f0b41f24395cd3dcd44461375818140789b4ce42ebeafdccf818aab895b8efd2edeecda1aa8aa18a3ab3d8da90176a7240ae4c664cf7a7cd91db54d293b9241227177b42a4535393894573ac67842e4fe"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_11(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f1567681fe1cfe63fdcd93675420a28040cea5a8ab5d9865b5c34fcd1cafa9d3"),
		nonce:           decodeHexString(c, "5e914c8121d6f13c8f663814f5ff39c4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4eea4d4ae99d5afde3bc134634e9ad3adbd05108e0dabdb3131c4f806c2eb3dd"),
			decodeHexString(c, "38d6238af84944d244234f7f2f9d8e6e0e934c913502df091f033d0a1f542da3"),
		},
		expected: decodeHexString(c, "3ec2b61ed468b6134e9919c70a3da52c533bd4880287db7826701f17789519a2ca8c91f606640e6ea8cfe38e88a618757f100a301cca9de18ff25b472caafed8176865cae64ce64a510fb82681b59b2b19d24db72a76ad3c33969a4426149be70f65f1f6bed66da7f5607bd5d07f023ebe6ccc598f9f3197ed43dbb7d40b2daa72df33acd5c3be0e8d4f7b91e0ed615a6c0bdc2a10128b756ef6d7216b96f1e7a7c9806fa6b654c23ca804420ee3522775eced6d9546863300344773f6442a391cfe58f392e94f35a7257ff493947f217a30b93d8300d5de891af979a7a738bd100e3a59b8a530a52851d74f713117ebc2210b330e390a01f4d3f030444e101a"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_12(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "e9123e980cee2a56632640f33879698cf6aabd564c249a8d4d028d88c7547553"),
		nonce:           decodeHexString(c, "7ddd1e779f2c36cf5953d397c0639e07"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2d3d24b67c8457f3504fb9f07f997906ae1bcd64e4665cfdf71ab7ede4ee4f7a"),
			decodeHexString(c, "0caf0f8ad4c6eaad237f9fdaa565c1581cf8043b82f092e97858a2e9cab1eb09"),
		},
		expected: decodeHexString(c, "4208f1f35b13c16369313c3b10da2420b439b6b6644fc55b2181b7ca249235c1d4dfd8d70bdf70e4a46d3a3bbd073a7053aed72d4de0579f3cf69409d70023fd9a1eb807f549318a3a8429fb1110da76f0d28ff2e13b7e6e1dcbee63819386ebf65854af2ecf0968ca405c6a9649fe8ed6e2b27e53a7a06f8af48cbfa87065c91c37f1aeab92f726df192e222a7f6df3c6dd4259c9c08b578772ca9ff4519e804ea73327fb43f524688c9145d2992e795fa3292541ebe9876730ccd8ac153e5943265a0e2650eafc19a69e2cfaf45bd4f330ee36a5835b577623fe3d160ce1266019c315c9f52add1fc0cac870e4ef63e23140d133f278f9bab5ece59a5942f1"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_13(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "62203c7bf8c4e9ba4442d6bc682092c3f321e2bf956b5d687579769d79efdc3d"),
		nonce:           decodeHexString(c, "42aa4989597df15216d59ec78394661d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "da8f27657156b4a0b9a6bba89e6142933006480d8bfba9f9d9a67ca890c0ee8a"),
			decodeHexString(c, "2993169ff4ab448d9eee82ff0b02c18f5eaf3d222497a07d888daa8ff8ef0037"),
		},
		expected: decodeHexString(c, "5f7feadbbe5ffd8813edd6de55d72d46ae817c17aa606ce97ca4e04e5a20c875a255500c6170dca69c81cdb31180c376f37e774ea9d4eaa8012c73e820ba258a2cb99aab21887b6522c713603e7835f1219314eff8aaa158d774f0447b59795c202d4929107d6b5da827a2889bfba8810b33fae693b82de682c0be19454b58da072bc785fcbf9e68fc46f45c5ad794324a92b5b8636edc9ac9e3e51777b6944ca61b00a2f50f263db65e900fbec52d6d736d00db4caf055fd30ba68054b68ef600191985483069e69f301d0dc2ffcc60acd82b5c0273a6fdd1908f53ea19aea642200e5169d2b91364bb2ed66326178ab3a17f15e1b87558d48305ea1cafe120"),
	})
}

func (s *drbgSuite) TestHashGenerate77_SHA512_14(c *C) {
	s.testHashGenerate77_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "4756ee6155b4bbba6a3ca94c3c88d15e6bda5205e46ddae32e83051743c91bb6"),
		nonce:           decodeHexString(c, "ae1e2f15e559e6da9fd33f60e76bb572"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "def9d8f7b18023b69c6cd4121c0adbc2a89b3ca37333d4523261d5eb20595d01"),
			decodeHexString(c, "06051dec796525094018b436605bd2ddd66359a2836a5996e8262bb7763fadc0"),
		},
		expected: decodeHexString(c, "29e8184e37a5c26670bdc95c842c602ed8b0cf102ca144133e8cc841e1dc32fd038a72c26b8be8a568db60a4cfbd52b0d8b74cdf180a4931d6dd19a255104db105b3366d75e8f6afd0e5fab4dc14f6deac82e7703eb6a61f22b79bdad8ac7fab95a58a71f80fa510542615c305f7cbf84790060f17e7d78ab5d4b0ca34fad47133a0627b803c1caee3b97fe47626a8590672e2211f39cbe1b79d1999fb772b884122c8e50c59fdd3de13a53e805f40f8aa35501571a4c4cce79a8f738e60a43a11afdbed94e26f474ba5cd6ff5cdaf00d0fb84109aeb3510f1ea576c70ae78cdd0415a0521f3ff4083f9160011dcd6e2802cfbbbdfe9c4a3b114dd47b3a6cddb"),
	})
}

func (s *drbgSuite) testHashGenerate79_SHA512(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerate79_SHA512_0(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "c019421dd76ebe61dc590819ab0385af04786718e1ec13c20995ae183ddb4938"),
		nonce:           decodeHexString(c, "3ceb9453616e12561ea0cbbd3da6e342"),
		personalization: decodeHexString(c, "5907582bf298edc00bc62952e1cf64c9d2d31ab704886ce075f5b7b8fdee0478"),
		additionalInput: [2][]byte{
			decodeHexString(c, "27c88dcd607e7de8afbb5fc3e810d75e0a88a81909d4007113d1f59d209f9494"),
			decodeHexString(c, "9988b422743304739966101678f5b80cbcdabc14daa7da3a1ff798906ac293ec"),
		},
		expected: decodeHexString(c, "6cda9aedc71a4c483f8f006f7f2342af7395115a4c162a75e8b54fa4226bf6f129ddacf93c5e86785434f660f82bfb3eff116a2a691e1f14603c605dbbe9a14a7e3bf725089f200ae91ef1ceb542bdfeefe8a7d9b746e7d0960eb745f40e11c5c51ec29bd5d6a5ebe676ac86bc07431128f24221273856a281ae21a8f520aa8177288a34d15b1a58a47c72af7477bcbcdea92a547d3235d01ca99a8ea9805624f39083be75e654a552fd8e6615c086caa131909f2f49423179acbcd315d0a16657079ee144e01ff75540654feddf37ad1cc5b070d7058e7f250c5b17d9f47d8941663e8addd50419699ef338b3deb1092ef76a8dd463d9b88c57a9db48415b7a"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_1(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "98ed3a2e252fc138174a1d2a46b0b7c8875f3647e23dca839ccd2133665416bb"),
		nonce:           decodeHexString(c, "c33412ba47d024528eefc17f04fd91ee"),
		personalization: decodeHexString(c, "ef9e0566b3ad06c9613c348214e6b2d4827762a7202460de73a82b4b80d1483e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "899a036346379a9fba5462aea59b8a54fff21301f3f634f5c5b9e0be8fc478dc"),
			decodeHexString(c, "6d3223234953dde90edb7bcc08cad81f2584c1897efd4f377ac5acb6295525fd"),
		},
		expected: decodeHexString(c, "4214c86c463d77307109d60303af4471441567b80caf4046b8e208aebbf11243ee735e8586358b2d9dfb3a98b5bf823a73e225fc0e6c3278aaca9d1c3fbbdab6270952eec081e3b05fac74dfc70cfddba3f96593b713f8060d2c26ad4c1be581e9f987fab3c1b986fafd57121adbb22aed6df8de1c52641b12651b7fb261536d6c894e9d9c31af2dffbe572e5a130879610c070c0f265d9a9ad63959bcd7853206e85c2c32e4141a9f89769763b9d81ae2f100779e9625aa6ecbd89d0f1e2c5d966678cb00858a0be5f9b9403da82da294754ba8ab32d78519d1356efe97fa93bc32e2767f954f51b73c85f566213585228aab6b418ea2dfcb31968b1892e300"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_2(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "417efe68345a8661c31a32172e6514e8aef20501d110681b6d42abc37da7e538"),
		nonce:           decodeHexString(c, "1409cf37a4a9202cd9b181b7795072f0"),
		personalization: decodeHexString(c, "76ab1ad7507af9dfb5457024dac2e26e9aeede5fd974f51379dd1fedca1de0bf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9439dfaa867bc4bb259ea4735ceb6071566b7646eeeed4106f4ea8e44d013c3a"),
			decodeHexString(c, "50a6c2c4fa03904663a42a8cbd275f0fca0b931577f52cb49e395e705ec769ba"),
		},
		expected: decodeHexString(c, "a6f53d9182e4217f4bea6d940d35c9997af5cd5b8ecad8b6a5191b624ace37645b6fcf449647c258026fb4ea9f0c0c41f887c99200446558187a5f6c42a14b4483f8adbc62a5a5d0dbeb5555dc9eb7c57badecdfb72b28e70afcc45a2cbb56efedfaf5a95e9abafdf9a4e4efdae7f4162b9d3d92af08bb92e4e41e6f97d7ac0f3acacd68dc2afb1ef9ba379cf5d8e7b66f33f0ed3fb0e831384d447e5bf69d7cbfb0c788ffabf5400ebd5124e910c9da4edfba298b481ed044f61e629c5df428620d82ebe3d9ec68444ddca6be7a6a4d576792929c9395321a2dcd3dd2ea950039fe26809c14d7191d4fb0de9eaafbc0bd3bda9b8d6c18b464685b2339304d3c"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_3(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0d2b9992666d72637da22e7da373763e6f75f42bea5e8603b881d6b6f16f74c7"),
		nonce:           decodeHexString(c, "1e294f3623513ddb233181946d2faaa6"),
		personalization: decodeHexString(c, "4f309b8cec06fa3e22a884a11b8f8e2eb0933236782249dec7901e499e32e674"),
		additionalInput: [2][]byte{
			decodeHexString(c, "da447d8c99cc4515812100efbd301b2a5e8a8dc6aa9a3390b3d2d9a870d99ddf"),
			decodeHexString(c, "0feb97c7df13585e3c6f8fc5c56a7a6c28786a22d950d37688de52be51c9cd93"),
		},
		expected: decodeHexString(c, "02a27559a3db82206385a701785c6b171f60c5955213b3bb32947512f22af52a5abdaff6991e0d61d2cf7aebdd80e58a4df3584a6fe5fa2180bea156f3b6fe3a669d8c801d0773eb72776c89c7a763f46c35dc7f926d0391d0d8c3bc93935d96f86190fbbf00ab7eb0dd528aae8d68eb5ed8f908260b15dc0071990623964a379fafb69c6beeb470e279293d229e815cfc812a20e5cfb1dfa6507ef524702d47817ad1c31e923404104b676393c42d7f901bc7083f6fca932d6938ef16ce3e89c3731523b111b6fddbd74c45071e307a0f52a0065c9949190565a4132bb4bc3e39a2efda15dbd0da6d8522c1a67b3ef6684941f7a02a3c11a5de15db0a8cbd10"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_4(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "70657b0fa0580af281788522ec04d2a6980d1181177e89d9e00cc7d66ef37fbd"),
		nonce:           decodeHexString(c, "8c0df7bb0cdc4999ce71e0ec2c7b87d1"),
		personalization: decodeHexString(c, "96ca21e9b6c03712e5f112b2312a4a36a2e3904279568da9f0697e698c9e60c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0737beddfe4e507b0d5bb352a07f8321e6c6a472cd8b389a1e77c01024bc58b7"),
			decodeHexString(c, "14ca247927ad6026dfc40f4a456a03b2c1b204c3922a974e3db5225d4950915c"),
		},
		expected: decodeHexString(c, "eb8d934496dad16628f56ad87b5a6ca2ad66ec927594f5da74b75b2224361d94f8af30ab750d2bf07120735df04d2ae5a16d24c810ed22fc01e7bd5cd2f69159f232d7ebb611df6a6c4189d75099d2c79b462cc6725c1747dccc7be197d8928400bb802e3fd5dd04e8e5737cac7cc2c4e1ebe477941d586c28dcfc5bf5789d81b4e678bed28723e36b45ab226ba98fd351a734fede3b9e963cdfef80c4d6b27e5997d0300238a6729d10616fa8bc411228a01bc1a512702c2d1e4143521c9105c0e08dcb55e64f790cc52c8fc167db2ccf3ad2430373b5dae868dff163ec5a4d564f5c33349183b973b4551f9aa102c532dc750d45236c7feccfcbfaae589fd7"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_5(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "f22fc6df383c42fe997aed905b7742217f58df9e898f7229a37caeab708a25bb"),
		nonce:           decodeHexString(c, "3b9d182d4afff9a41166e5e995332a37"),
		personalization: decodeHexString(c, "3d6db5e8adee495849e7d36af18818e6dc0d8140ed516d424bc8f1d348e105bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3a8ca1fdd98d6c941bb4cf04f119abd38d194efa428146432765550ce87b5a7e"),
			decodeHexString(c, "239edfb349a3384bf4d80ae9a1e07973d4e4c0f884147608094768b2702bcfeb"),
		},
		expected: decodeHexString(c, "565b7c314d03c39e929f7526ebbcb8b70e143fd60efffa77dd4475fc60339a16eba8a4b93e840ff3a45bf09360d0c6aa3fe56c38ebdb8f65c38e3c8b1fe853178d8d5276cb3088496f991be7a2f2ef8c09d3ee0fb1f5b86b3dd7fafb2b244900064e68a48e5f1fd3093f8f1e63417fa970353c8f8d4b9129a55ac4c6b395385b6a74e1356556c27366a58b44e11a030063609b93b5517e12daabd6ebfc78e7044986f92b1da40990f060c206f4ee1b4e76d0ac619d16955e39be3b01b79f1602546b833a76582e0fb4a7704147d8763da3d02945342bec5c10eb85967a9069649be151452fab34f3c75610d0c679d1afa9b5856e772e448483c4c9740cb6a292"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_6(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "17d0c905f1f330287316e22eb85b1e0001cdd21f88592af248d2cfb12086c00e"),
		nonce:           decodeHexString(c, "2257cc7a1f5b8cb85fdc76ffdeda8667"),
		personalization: decodeHexString(c, "d46cc814d7587e15297dc10ccd565775577aa4ec23fe7a61c736600edee11bb2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4be737628fc81e811e53110db183dee46c3b5402c733e45da9d8736faac143a1"),
			decodeHexString(c, "5824fece34f2c6d85315c11104cc26f23fde2380cf6b07ad6085a12d64fe3860"),
		},
		expected: decodeHexString(c, "f9b25d5f4dc7a09165fcbc3b0be5a9e70347cac1a87c7105ce0b1e0cb59d4651ea8386e8424efa6c9c173f9cfdd5595f5ca84a16dda33562cfbe85f26016468381da01d9d019094cc8aa108e1ba907f14a934c19fcfa9e811b16c4e07e403ec18b2d686cf9f68674c7fa598266a317fa54e0ac0df11c1686e94d440cefbed98c95a3b4f3036d1c1b6d43f855cb86c75e20b6c9eac3ec9017d78e2b753627f4f965b4ac8152df6af1af3aff883529f6725a2cf23cbda3fa9b8fedbe38981c75923381b58d3d19409816c489c729da39bf8fec43436b8c256118283e1241b6201d46f823713ca5f35dcf140c3baa0f7ebe8e32807c1ef9b9e59ff1258820f5ba45"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_7(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "0612f3cf8d441b0fd34d34a5fe1e0b122ee91137e18cc6e7164a3dce286b39a8"),
		nonce:           decodeHexString(c, "c235456348e9992185ceca978af477fc"),
		personalization: decodeHexString(c, "a23cf118b190327dcce97500bd46dc6c48e0af8a93c6f204a6d56d26cd80ff9a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3339994707bd198e382beadfb144ed7cdd9a034df9722f8d8e18d96ebc061f8"),
			decodeHexString(c, "28b4d1ac3334fb398e407b3fed12a43cb1a89403fdd188e194a2a48da074651f"),
		},
		expected: decodeHexString(c, "f42869964dd52db8e1d470a2c7d54ff3d03abdf39b26b6b715adaa1d8d5fb5b985d03aa44f23fe5e608475091e42adbed861f2e0ee153e56ccf0a51c744658a436c128f44075cc74f3f8ca5c716f89a4e20f424b7d7095285bfafaed89ae6c18e2f0f78af76525bbefd942a49b08e03fae2344701aa1574aa08c1b5a8764d7c47fa1b9e8d66756780f1006bef8e92ae8a678393e4ae028426896eff7c7b10ea9c426409481e7d2df3e0352d4bd066c88c17ade7d2ca1b73a7605425e14f3c697fe01f6c2d5e9304f53d9d1054ecd26d1c5bd8697c4bfeaf1a57c0d3792f926eef76da38a4e5969e5cf29815be920460cb8454bb168811ed38cf7a1503376be1b"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_8(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "d9ccbf184c6579aadc9333f2112767daf22b10ffc25145dc00e243ef45c31f11"),
		nonce:           decodeHexString(c, "232d0075a9a6ab16e8bc506f27a0813c"),
		personalization: decodeHexString(c, "c7dc766edc0c8a1b91f29da8bb0428a5c178ed885af5eb1ebfe7143f1fb2c3e6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32b043f0f2f36ecab1e8dd14851955ec10ab1074b84bb401ecb6cbef718c3e28"),
			decodeHexString(c, "f0341066b42b23a6a98bb341cd7f736ee8d3f51d95795857607b55d3426a1655"),
		},
		expected: decodeHexString(c, "8a9ccc445878ab44c766fc84fc19f77d7b512c09cee269c9079352d8a40dbf9bd9c37839aa946e7179532b74df2f8ff62ffe3c93053ddbc5d66a97e97e9bdbcc993af2a5f92cf3c11f10ed8b01e219c89c063f19c8879ae0bd4f35eda9cfce673e6f5f4a4226bb4daafecc2b38c045c954a2d6e27b30a30f9f5810e6f8ee8026a52e89062f1cc47399f44785106f541fcbc059f90f8f41c78ab8bceee776b5446bbce0bb24e2c396814303b3174e40c8af60d23aabce1e541d1087ec8750023c8518d81d12e57da5da198233d783911dd826b45d64ceab2d41143c54318c01c2ed52d25f4abc11dc681d15543213fa9d78e3a35ffed598f6a494f9b89f6d9d24"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_9(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "6828d746558f104a2b74d4a90d45236bc52e0b776856cb4ef578165c57bf7000"),
		nonce:           decodeHexString(c, "58c798292768a3feea28bfa7e7e373be"),
		personalization: decodeHexString(c, "4306f114141a671c01f5dbe7ac99267898ee44e30045414259c354d7e7511eb8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef9b4871ad9b5f378eb34538557d7f0424ef0541354d1cd549c56af59879e842"),
			decodeHexString(c, "f3cdd8e4987d9263e9701dcb51f43227fdd0316a78bd90e7b60acd349aa08132"),
		},
		expected: decodeHexString(c, "f2873c2ff351579cee1ed36247680b57c542c7d9eb969f8d0d537386ec362d9fcab1b54de5c429013a858bfad66c09920a37e15ce7b3402117e1a307e8014e9f9d9db65e59c87869fb9d915b85277f2bfbd59d178e02e9b8a76133e707ca2f82d4dd6d0f18fd97569190c0ce4b5449b215e36da63d4e0652e5a4ee615f5f42d8ceb0eaf4ae983a1b676d5b553da40514a4f0e4d5d4a2a7e48c34de944e0e960abc81cda5d2bae6d25213086f7895a2f1bdbe436ed55956d9965667a96fa1e3c7c63a6b0d6eae05a918c11b80d91241fa19f85ea0b88416a74190e5b60b32e4f1ea1d8a9af016e255c15df02c4263860fa77910d28e673d2339bc12eb7c154590"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_10(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "326633f5c9927130e63a1722f4ecfbded95ad71e7a6ae93669d3170cfca8a72c"),
		nonce:           decodeHexString(c, "b074eee47fe64fba2adf509f50ffd773"),
		personalization: decodeHexString(c, "29eb795e9c01ceb5470e874dcb7261f55b5a9e5b08a3a86031d335da464fd951"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1c55dab111d49b09628f3e7a9a4794b881045df4145aac551ae69dc1c66ebc14"),
			decodeHexString(c, "6b5dc65a69884036426d49ff6aa0230307b650beef241a1271b23b075ad2a70e"),
		},
		expected: decodeHexString(c, "470e25bf2d87e7f8e7a4b2984e19923c1fbc97030818d9bee4115f14851542e0664b0e81990be32706f728ad09b22d2ddf90bb462c161d1c2fa0b6fa751c9c7a510a3f6118d781fdcec82a00be705934d86c87b336747f0a37203e337c0e4f308ad3e30bf13f26925590cd3b153300c2b7e6c99903d0d971fef71ef2f11ac0d3e546d095b71df2a4e033ccabef4704de9edeaadf51df55a7c73bb29cd6ac575314c8a073ab1f3cbf1055e99a86d2b006c4a23438302401917a753e45a5ab327487004402e110edbe6855369574d132307a5dad24f88aab37caaf9d1aa81a298a55fce6cc439d6c940861223800a3aa86fbc601abd53c6afac3bf3743434f926c"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_11(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "700edb601ee2a466d6d434afe14567fd99dd2be30107da851cff244b13423799"),
		nonce:           decodeHexString(c, "e08da5f8f8aee5c37cbebbc0df72a723"),
		personalization: decodeHexString(c, "7b6e7d823f84221158525547a5d8abc64ad2e71b672f569c51bb2d3720ecf5aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "30edc33ed40927abd62f108ade73734ea72034183ffd7a69c2f09e1389a1f10b"),
			decodeHexString(c, "a2d137d1dcde4410833f746aae52d2da161aea1812ae722d46a3a977c2e2d844"),
		},
		expected: decodeHexString(c, "930fc28408876ed64e03948eaf1b8159ab04445a1e1793625350577ca92cf75671a55df0517b6eb965d0f0e88a43863ede7f443d102d3b691ea42146a044ca06cf7a12b3ce0e82975dad6c1e94e7493d97a1d609d07a43179f56d7d741ca023a4d0de8d5ffc14901fc1a3bb0dd5e0532c0b021e07f7c886566387dd67d669026900e3213733b78b36c2076cb56cfa130eb0a5dfb1d6ba89e4ff0ab535a9bbb75f72fccbe2934d12588a589362eaa048e8963565250d4c16bf84b83a45a3ced2d27c01d01b24ba0608cd21cc00209c6df5f3053e14eb024d1bd30ea69b2a36e692bdc354fb4e095f90adb9b5e6dc0bff6017dbb7d00690ecf00cedfc3198e74a4"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_12(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "ee2803b0e9106e30ad1911d830475a5c622b54a9e4fbbf5235ae59ef5b55feca"),
		nonce:           decodeHexString(c, "f44352de645fbf7688dc47a99955a9ae"),
		personalization: decodeHexString(c, "cf1e33dfff0f3babbcbafdc30c95ee4804ab81ef402ef55a92bd47f07a774bb9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "04835b5b5bc1a933e743993414db67e8960f16efcda8ca7b614ad831d049e13e"),
			decodeHexString(c, "7b23a049ee3ef38f6c4d03a7a04ee239b57037a9d4589152e068816b8a2d4b2e"),
		},
		expected: decodeHexString(c, "407d89cc346d33c10238c2327213178e20ef9ac6508ee61881896d2c6bf176326e3850368ef53427e0c950042c2e17f9ce4b2b3fbf529f4ca71440f43522bd029fc08fc23f534e3446b098384bb4d0882b25f4ac8e8757c1f1ddc9a8f2991f69a4e8eea4fbab70929283deaef3c53e32a2655b24ee209fd4afd4f558f40efe6affff2e88d0981e155ab0d78e5170b11e4fa84d0772ece236d064e79b977c91899e053b80b26a9417175d308e8135b9171043536318ef2b58ca60203d729972b469b41acaabb1d4179c50c8a9e3eb934bfbec4834eeda418abaef23907f1267b686df17f179b8ca52aa1b2e424cf5ef862fb08ba30c76e082681c81489acb5f35"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_13(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "8845a9a3f7d7fe95ce6f6648a7fe143e216c6f922ba8725de32743d4996dcbcc"),
		nonce:           decodeHexString(c, "6b5b4a986babde808118d29f0437c610"),
		personalization: decodeHexString(c, "7ed80aa920d147c542e42b605aab9c7b92a3c65ece17bc72a4680df6e16cf86b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a7deab3a6c01539fced6110fe3579bdc19cc9594e587b89a5cfdd358c5793852"),
			decodeHexString(c, "a946a020b4b3d2fc452eac9df0a646b34778e2b3f455121a67d6c47ce947632e"),
		},
		expected: decodeHexString(c, "fa85f06074bce30e122de1d723ca36fb2759e619777b4b555933adbe5e31d9190355d831426f640362dc797180ef9d95727d37c03f499a2d97bbe56c23ad3be8d1f022c0aa40f7be92c0f3853a9607ecf1721e24d1f944ff437cd300b6c36954a0b0edc270383215ee61039dfbc5bee9f0f31cce5597126a5296e06342a9b95f44bc83501e3c91dbb572b42f120991903e5e2bc7d970ce25f3a8e55e554d82242eba3305706d26e54c5095948240ac3806a9a24c7420097d0902ccf362a433c0a5f87a838f025c67e110edc569157216f455f51dc87622cbffc9cfd4f925c967bc0f70144319f555070823dec3b1a34b310c79ced174af4f08f12eefb51f9627"),
	})
}

func (s *drbgSuite) TestHashGenerate79_SHA512_14(c *C) {
	s.testHashGenerate79_SHA512(c, &testData{
		entropyInput:    decodeHexString(c, "b148b317a268628f04c9a87a0ac5f91498b8020f4e4835720c1a3cc07b050fa2"),
		nonce:           decodeHexString(c, "2f35e5b622aeefe75605c2274ec8c696"),
		personalization: decodeHexString(c, "fc527a2f16b53c513f94855b35cea6090c303dcc642e98ed5f323aba0f35fa27"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2cc9f137fcd8c2d526d70093fe11f90a0a36bc9764a4c5609072e181a2494516"),
			decodeHexString(c, "e40361245b91880e308fb777c28bbfaea5982e45fecb7757bb1c9de2df9dc612"),
		},
		expected: decodeHexString(c, "66ad048b4d2d003223c64dd9827cc22ed3ec8fcb61209d199619177592e9b89226be30b1930bdd749f30ed09da52abaa2e599afaf91903e7a2b59ffb8fd470e6604485a27c200d375feff621118595a7a3057b7e31eadc0687b1008c3cb2c7435a5704b1a1a6a3487d60fd14793c31486af765ce2ce182de88112445dd5ff11b256cfda07018b95f97edbab4e4c39ca097c42f9dce80cd3f32677f3c224a86b315d02e377dca8f3785e9748ffdbe3fcaa3b0c6bf001b63b57426836358e9b315c6718e0b74fb82b9bf3df700a641ab9411d1b9fba42309a84bef67a14204f3160ed16a5497fe211aa1f5d3ae4b858b6d445f1d094543d0107ce04ef1d1ba33ab"),
	})
}

func (s *drbgSuite) testHashGenerate81_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_0(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b55e3470142e762ff71ab8fc6b89a0215549a6795f89e748"),
		nonce:           decodeHexString(c, "e933397c8f8c79625e841866"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "631fc318e5253b9209c0ab0407cf4cd9fe3e860e90b8572b"),
			decodeHexString(c, "cdc57096d1496ab33535f3bbde4e4986b362c8fabed73e99"),
		},
		expected: decodeHexString(c, "02a22fe1f67b1924249b5bef0ce52878e69e90184d3a1a85d82cb99eaf59d9289b3238bf7522ac8b0ff2b7bcfe154dddc30d0a89976a97af2338f6faf67ca4c5d289ea631a9fb407a951b64fcb7e9fb18663fe7ed41a78b4f99b53b84c403caf2adff130807ee7d9794fcec29f5e2754"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_1(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "bc9814e09d2e06ea98d6c0862ccf77e72fa53f3f18024990"),
		nonce:           decodeHexString(c, "2e50de236077b8b05ef4a18f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8eb7fb4022d2967ccc71ab7dc1b3df165e9bfb281d49afeb"),
			decodeHexString(c, "756a83929b4ca38ad8df0547a6ca35ee491f2b4eb0c73e86"),
		},
		expected: decodeHexString(c, "8c42c74c4514ee3db2138c667b542044cb1f1eb3953214396788882381bca385063f8094ce0a63b72b6d3f5e6fe0cf3c15700bbba97c118320ff914f874aaa99616111e44156041a233547d5641ab0b179e525ddd34c4559206c0720262217fe00f8a463d5bf578b10b232f4c1be81e1"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_2(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9d9edb3e9095c40e9d9e366d4c91191d4140ccd51f9bf1b2"),
		nonce:           decodeHexString(c, "4e641bdca5709c4feb796651"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "492d9261f80bcc25cb136d1a64c1d5926e22b7833ab05b51"),
			decodeHexString(c, "67f33cdb597cd3a4f0e4e6c3a089d2ed7cea0fdf62939413"),
		},
		expected: decodeHexString(c, "61b483ec28add6398f831c1974d758dc6f2302ccc902cf60b3c78c31f9b299c26b267ec6d62434d57fef382db20603b2587ee2e3ec8f198945a973e1f5549fabbd17490f85f3a6e12e91c1c5a7e2d445a75f06864d845e09ae7dec761d55ff04050e839e6e99df065cc63959c3406aee"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_3(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "42618edd49528c5112fe084d5d18caeb497e7b0e80f8a2af"),
		nonce:           decodeHexString(c, "5eef8fe50058d324e9ffbbfb"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "227e3bac9a8cb304ece74d082c8c917fe6182402172bb257"),
			decodeHexString(c, "9f2e9590288b9eeb9c8d947004ba552ca848e77973d46edf"),
		},
		expected: decodeHexString(c, "1187ddbada9c20d2d03cb3f934300640db0dac05ce7e374921ded35a6cbc32c3f561ae5d86d68fa2b0d3c17aa5c4c1fc6b4290ecb287f8b7f0b8f7dffb02b3004931c50afdaa6e2d74c0493c8a8a9404be2b3bc8162026a969366e9d9c00b11c733a848fb307a4865b079bc536a6ec41"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_4(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "54f4c766566187862b8afbcbcc5d93d6de222ec42b4549c1"),
		nonce:           decodeHexString(c, "7928cb7432fb030624f36592"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "24ca482d7d8c041cfc0a86dd76300b3086b24e7b42d3c3ec"),
			decodeHexString(c, "d89729f3b5c2a3f7ee7e338e7c419c435bfcb1165258fe8c"),
		},
		expected: decodeHexString(c, "6728aa895b04ccb81506c2fc499878fd99868731997b3c6511dc14cd8dac8354159d9dfaf84e3397978e8d70a8c0bb4ac1d8c552f1efd6412bba7630dc9321ca0c59f6ff8c8016bb60737fbf09e380aad086486ed781288af3c405f77fa6f5ef36787532b6f2562a5a713575902c30de"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_5(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "71a54f95b42285685135182f24ef5825cb428270b2891611"),
		nonce:           decodeHexString(c, "ef52023107e1f8a156ece40f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "eba552b12d50fe79d6e3d626b6ac081569560936139dd2e2"),
			decodeHexString(c, "94b2fd736cef340fc301dfb4e38d2566bc3abf615f5658b7"),
		},
		expected: decodeHexString(c, "b5e8c92a1fa4c514088a69b6713b5403d4e8ef3de251e34fdc480e1df8b518a66d8dd0aaaa883836bb1dd9fdeec4fa39fb90ed3b24aa0d2629cddd0d496a3dfa8361861ceeb1f94971e0b69b618016f5272bb5aa9b782520852f4c0429df844d582e88563b2dc7bdcdf84c34920875a0"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_6(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e73656be01a680ca8df3fbd5a49048fcfc132f3a6140f3a0"),
		nonce:           decodeHexString(c, "4bef14e0e7f9017d287bbe29"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e6b052eee311c8489af2ace4f288ccb9d94f521f39efd058"),
			decodeHexString(c, "2d6676f23d37b3175600c17096de8f13a56b87c8a9521433"),
		},
		expected: decodeHexString(c, "a108278523eb0fb1658b88e71e79045fc939e06093c6045c6adad51794ba36ed450b766a30ed7f94badff13c4ed6e309f0bc4cca9d8a3e889d814737a0e7538c97e537775b211f6b8697b99900e6d4ccbba0c95859203c068812a6047d2bb8cfd5c5fbc594f1dc1fc6b9d3aed56116c8"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_7(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "fd1b1b4716558c3f2feccd9f8b7218f856df024d93cfce91"),
		nonce:           decodeHexString(c, "272092313b6d263b457696cc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d70f911e9f2dcca2c486ec262fc6f951b332dc5f887a67c"),
			decodeHexString(c, "02aec2b3625743c943a4403ef38165503c71cde08f92d622"),
		},
		expected: decodeHexString(c, "91aea12037d2053d0a400c16ef315c56cfa8c1a0fb23e930b0ea394ca79d408d260001def0f28706deae206f22f0cfb2420f82156c583506898c40eea7a2ea982adc3507283bfc144d4c8f98bf599cad0d865870fa22c20d754bf15cee54f005f0f99e90aabd0ff32e20ca41ec62d966"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_8(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8e78c43c92dc84a8d09237c1918f4235ebb5b505087f77a4"),
		nonce:           decodeHexString(c, "1560cd40c4e4fc3a3f43f844"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "acd7dcaef11a82b3ac1ed2c90c6fe2be152ac658e6007233"),
			decodeHexString(c, "6122757537de9332f3b11ecfe79540b0b7d70c299023b51f"),
		},
		expected: decodeHexString(c, "0b33705c872cf1ed03fb593c6c619386e1a0def84e3530fba3381c57acb8e1a9121ad4a9bd440e0ad5b3b65a178faf7d4f61c07013a433bf58177bc90cfb79d6c39ef05395cc504605cd756a4c4685975ce9467c387c8393d97c38c6542df9acbfa72b190fa3de3c72df8676ed02ca5c"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_9(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "84b437cc8142231114ea6a48a25dbcea6f225595c9493572"),
		nonce:           decodeHexString(c, "dc914e4fd5a050cd2140cb1b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f102c1f4039f488b87e54e58630ebf74225774bf09a24e3e"),
			decodeHexString(c, "32e86479c34048921de1fa65745736ab235907693f16070e"),
		},
		expected: decodeHexString(c, "1a77469f769034a462a604c695a806daba0764ecc121e4f3af6cab63eac9a4baca1bd4d01459f91ed5e83450a60e209dfc87f00b755f82c7122e766b96ed834f73d9ee03eb3236b7900a309b23ee19e1fd848b354c90dc78cd801b2ff9dcf08e204b51c879e211602e1cc0bf1aabd565"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_10(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0a95b55c4e044a4fff1e446cac4517d150fb5f0ca4985f5a"),
		nonce:           decodeHexString(c, "8c216bdd76cb93e2ec8919f3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dc2cba72c596062c8d5f633d9c4a0022292e7e72521de379"),
			decodeHexString(c, "aceff54c3683d1afac85b7110b71434110ac45bb3d42bc01"),
		},
		expected: decodeHexString(c, "ed09fb81d6a685a4b2999a18601aa6aa1818fd87efc768ef9eee05ab74f5db6e2f06bc051e9761960e3d6d48803fb70657fbce16640b963db614889c9d37dceb625d5ddfc3c5e23a5897a26c0c868053399bddedccdd6c77b12e245c5e48501d0c5c01cd4e81971e05e55042a1c94508"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_11(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9ba456c2abf79c4eef4dede5142cdf58125601ff19d94ee9"),
		nonce:           decodeHexString(c, "cb2c3d3ad6b21a06daa1f34c"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8b4e394185a98dba41c2705dc3cde92d24fd01610e31e0fa"),
			decodeHexString(c, "f369c32e59d29c553ccb3a787a8842cb2562a3707e08af0d"),
		},
		expected: decodeHexString(c, "0105878f5a465186ef059664470d62c333fa7aa3fe989d0f566f8cbbec0d4ca826d3c705c6237eb4d19559bd50df9c05de653c6b00af0be19acdd28429afb34709a86b67d6bd4ca63f293a41afa0acfba9d9af5536b84abda813adba8415e4e976e8feaa2859fbb24976e745a2650885"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_12(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5854c32b8e6f88aa3e976f1b4eb1f94096ff30302d8bdc60"),
		nonce:           decodeHexString(c, "5cd9268b9f3d7c64c7787e06"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d5c9ed503f84c9946cb8f3df3c5205145d4ae6151a7db8fa"),
			decodeHexString(c, "2e5791e204f65f9ea242843805da376ec67db17442a5d55a"),
		},
		expected: decodeHexString(c, "65dae33b88a5fb3d0ea7f87df6b5f4ea8bfe41ee384d6708483bb0d28ab96539a5b2b031221cf5277616672772c993582a08c728d82d521fc126b5c12cc45e77f2613fcd7992b2e88d8e656d0920a23213568a91e400b52b1d992f9e1b6bd34120c2919882d9fd8b8e328c9e85a14d80"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_13(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9e57e91ebc17ef7c42d954f8f6582176390e092e929d89f1"),
		nonce:           decodeHexString(c, "e2931e8389dfc7ea35d32d60"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f8fde3f8cd18ec59bcff6b84a4974f1f021496f63289d92"),
			decodeHexString(c, "fcf8852764ba91a78cdb36de3e3a73e4b726bbc4665e208b"),
		},
		expected: decodeHexString(c, "8902f1c4ac2db8d9d7db8aa089bb991acbb791845c4bb89d5fe994c75818a2a86360e251480fda2fef8584e935814a2c2de90d6cc421a8199b688b7209344aa1e5eb61a8b14a712dbd3fa4a63a09d3da7ec72507aa1297947a74f1e28e4fb5628ae848fbb05c096634d59f1498fbd8a6"),
	})
}

func (s *drbgSuite) TestHashGenerate81_SHA512_224_14(c *C) {
	s.testHashGenerate81_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a02d9c0659ec1472f6a1e47df04cd12b8e8eb9a1e877686f"),
		nonce:           decodeHexString(c, "81ad7db03a1305fe7992796a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "450a2109e7d83a3ab2e628ab35af4dce8ce7205de7c5f365"),
			decodeHexString(c, "60d0ce5e11413c321535d849da56c3d9bf6222a3d2cf77e9"),
		},
		expected: decodeHexString(c, "27397574a1ad91ef6f332c954c0d5802cb9c90926ab05c116586995bd795a2f1b4706487da86282e33d0b44dcb7a58c8c4a2874ed4646a1e963b7d26b62e0a5e0a5bb60ec6e07ea6b7b7fe1194c3ca4371736e595707ca7fb56bc924089e66b137c47f9dde74b5de3687aebc2f5c2a39"),
	})
}

func (s *drbgSuite) testHashGenerate83_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_0(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "70ea93c46d246261c8366308c94287b93389c605bdb2c5fa"),
		nonce:           decodeHexString(c, "d5d72ffa9a6a5f38e93161f5"),
		personalization: decodeHexString(c, "765da1cef5942bba3bd579a2db5bc213a501742de91d3d3c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3160991497bd6c5316bace61d657f37e1c6d103a81913203"),
			decodeHexString(c, "81d443646e46fa55f989aca376096483ec90362a2c90eabd"),
		},
		expected: decodeHexString(c, "ed197b67f433ccfc6edcd35202d923f3843291ab8b061843bee6af02e3e29d6fc923b12da4810254ac8057a85a976488f805f7c3e46f7964a7aee89e77fca18f9c98d3fc0f4fb2a64d187f2e822f0e380d5e4acd2add9e261564f2822b8880c1c0ef196d8eeeaeb56fddd46467fc751b"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_1(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "191722a32fe5636431da95d41bb792208bbba46d715d8be8"),
		nonce:           decodeHexString(c, "97c0bd36f3358421f22801d7"),
		personalization: decodeHexString(c, "ce647b5b3aee4ec33c7583e22479856648a1fbc1bcf86289"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0332e1a8f84ed7015365c26563638d2bb4c47161a6deae02"),
			decodeHexString(c, "bbc790be9694ff64fcf5b10dbed5bc6b03060917f7020a0c"),
		},
		expected: decodeHexString(c, "1960ae5703637c23d052b73d389e25f1490423bace59c8e0416cf39fabd2370ab973c8dc379a20577c8348be0d98d55031a896a38eeb94a01aa253b9f0d7b91b00bb411615380ae19a3e662de599e49f195994a63e78fdc5f6e38cc8152a847a4224e6da14c576a585bd719cd284b417"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_2(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c31060b4557ee77406e4072d35725d82bd47158271975bf0"),
		nonce:           decodeHexString(c, "9f96a7c91a4e08382147ede4"),
		personalization: decodeHexString(c, "9cac48c65deb8f4ac3e45dcbeb5e096b296b341ae0ab8818"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db7841b95c43a7aa16960dd1d5d2bb29bed28e5e96a24d88"),
			decodeHexString(c, "e4c6e328bff28c3b7c65167fc46cd9460dac1286f4d4f712"),
		},
		expected: decodeHexString(c, "a9ec99ece87762e3548c23d98157bfb424e32519bb01752e3e520b226462dfb8d848c4784c97e5e227b4ee63fed4805ceb0ab75e1c31c41b0d012cdd8047da548f8a2977cb31f031929ce55f70b2b3d6cd6df5f3662bf5c9a76d82111dd8b22122386fcc7bf9f72f39e5417cd16616dd"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_3(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "429b62cffa82e27ab7802278a499a2a50c8f1c9575766538"),
		nonce:           decodeHexString(c, "da3569ad5a22189668b51f12"),
		personalization: decodeHexString(c, "bc56e97493efa939c391971758c3f01264a9385d7b6a070d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea52392b9a6b5504d689a9ae8ce1cea907248eeb3c2c9291"),
			decodeHexString(c, "c7f1935eab7fc756ab2b35b5d60bf1efe5ffaaea76f587b7"),
		},
		expected: decodeHexString(c, "c5dbae5d9c88bf1546be5794abb88b7612519a7449fd9e62cdd408f108ec48a716b6f8a4cc2d1d08afb538fb47693af8086b1e4ff3221e8d92810677e768ad4698d21acf0d3a1c06370a4e14387b5d19284d71cbce056a0949b0ad36a4539aa600732628eac8e4bdf19a9e6cd8c9a5f5"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_4(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9ae60697d0fa8af9f2fc4bff94d1db77a9dd509bf5c59055"),
		nonce:           decodeHexString(c, "cd33fdd2a73139107fd25dd2"),
		personalization: decodeHexString(c, "91b0dab516cefeb8dee71d2247873ee53e8d6ac37c1e0a83"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d6db98bece27d9a0e5141904ec872789dd9cfb10ac8d6e4"),
			decodeHexString(c, "1e15c4628514275e94f889d7e2509e71b09d0e0cb0a50719"),
		},
		expected: decodeHexString(c, "7d508737e0fc573616d71fc98f1ed389850f85c9720af22294fb51426202191e5cc54c801f32924689abbbae69b9e422570518e3a1b1c50205de3484644ee5ea5a1eacac33f54361af89332bbcaee6440dc844f0b40e8e6f964e66b838e9a2d56cd1cf1a878308b731224e5bb986231c"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_5(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d28aa86734ea726aad6b5d983ea99d3ec486ea11f7c0eb6e"),
		nonce:           decodeHexString(c, "aff80a364132cff620fc917c"),
		personalization: decodeHexString(c, "f395b1330bfdc1a65e6079bd283e4d64174be8787cda3968"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e473b3d157ad7101a8c613e4d05eb96f8a1a1062a04eaacb"),
			decodeHexString(c, "e6a9ad3e8f7d5e3949bc199aa245244d77417caaaecedc05"),
		},
		expected: decodeHexString(c, "1b927787032769b1abef2ce19fe862b6193b21178f35e38840d9c0198be37f9be0b72be101eed761c276014781360c3f35336c1bfffa1db7b500b2c7201ba951f96ea38dd6397b8dd7203ad0439ee6df23ae2bf5d42c7788226807fda66584c61db861504033dae3a2af10fd3c0d5a15"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_6(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "85f68033e8fd65070307984d6941679d6bea191b11238210"),
		nonce:           decodeHexString(c, "027ca24431bffc575db4cb77"),
		personalization: decodeHexString(c, "2a51ce42f382d9bb2f42ea29769c636cdba77a62abecbbba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99a33f4f604bd8a4ef6a3373edc466e0346b25797a1310e5"),
			decodeHexString(c, "31c7ed8358cfd9bd388e6d5d401fcce34692b9f5103f3c77"),
		},
		expected: decodeHexString(c, "e14a1d7d2ed32f90d4229bc168a3603ca7d56e8ba222095f5982d23d59be4947fe153219ce8251f30a902cf4bbbe4a5ae6f401fd4009b7f4e4610485269e12dcd11f5eeb0f8e15bab9b39fe8776eb7156528b866fea9b4a0e2e3fd9a90cc3d93d0ca07696916b158ffc7951d60b80bb6"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_7(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1d19e11ca043905694f44f964b108684adaa80326028b95a"),
		nonce:           decodeHexString(c, "61d40e4d62dde85aca9f390f"),
		personalization: decodeHexString(c, "534e16cbbc4f3804315fe18f1165fffc3e4a818475639d23"),
		additionalInput: [2][]byte{
			decodeHexString(c, "40c2b580ac1df81aefd1df8f9a89e3a392eff777b4ea6707"),
			decodeHexString(c, "9d060cb1bc45dc68fe167deb75a882c2b4c247af95c781a6"),
		},
		expected: decodeHexString(c, "f4fd01a277ab29a820cef853b278a4f79a3442e633ad3a748061e1020b70310ad4f4f77b2d44244453bfd69ffe9799971dd03fd3fa23317b577d1f484a733ab9b13fcd135d20da2717c800a4e150d530a9862d1adb058ed91c7f7ff86597929c60376739880868ac7d53c3d06cfdc421"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_8(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c5ffeee448e760f02ab0ed79f142695ca1ad9c52bfe9434a"),
		nonce:           decodeHexString(c, "0057a62335383d523d0c901e"),
		personalization: decodeHexString(c, "edef123de50121b701673f8f41cb62aab17f0f9bb1248f10"),
		additionalInput: [2][]byte{
			decodeHexString(c, "71b6ad9e6203c9e4cd68850c86d86fb00a53f149f8cc1ab9"),
			decodeHexString(c, "bd7419b89d6e5455efde4599efd622d9bef12e69f87f38a7"),
		},
		expected: decodeHexString(c, "5a04175330c7e7d1d610c7f10e08c7e031ab513f5d707a601d0cd580d144f99dfbea8ff634d574b4dc057d1a0926a5ee4178a2d8be59900072664a6d3d6a1b057236fc7220a5c1b980d49f35d9a9b49dae12f8e8cbad22983b9bbf82f89e5f07e369d001b25477fa22926b8834a6f286"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_9(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "53190559e83f41773411e75053fcd3fe632b80d28f3bbecc"),
		nonce:           decodeHexString(c, "32656f46682074f5d349b92a"),
		personalization: decodeHexString(c, "fb65ef291b630d306131d4e3df3af71d727b1172d44c9ee3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8dca31c7299602bdecee106818c1c41d07f1dbb3c2c8252d"),
			decodeHexString(c, "1cd0d5e5ff4e4a25fe0627e096b8c2c9ea06cdb8f451e84a"),
		},
		expected: decodeHexString(c, "9628958deb7c95bb63bb1cfe6f6104bb816dec6e476c7993abb8d7e0cb15cbcb9e8299454390c4ba72307cb96ae08fd2c2062ae28ee835fba1a53a6eee531e480a434c10ee884675b6a4a58adeaf5ae75a95e49d161f42a3678c0c0c459cbf314edf329171b6822206c01d02e79f02d2"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_10(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "105663368ca3d3ca4d6676fb2972fb42aff40eae8929752b"),
		nonce:           decodeHexString(c, "5b333239203454e5fd35f3d3"),
		personalization: decodeHexString(c, "78fe1843c8575d8563be46579ce035416d196d2411d6f58a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ef05bc2a19c3185e6592933d413c4c34028227e29145996"),
			decodeHexString(c, "30a4d8734c9f48f7167e5a1fd877e2e210387aa515c2df80"),
		},
		expected: decodeHexString(c, "aab80ce4cc4f6425e87fe17b4b8c3e35419bb989586e98f20c2bf3ab9e83b57e0d734ec712cd84b3ab7135213a0d1f2300aca106aab4f3ab26947ebf642d871233abc5c4c7a2f241fb1d96d7844ddf446088d1d315d838855cefd8e0f83530ce9509df84f4398a432325cebff1669c62"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_11(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c12c51aefa27b6a528211ec51c82f753d38d01b70a9bad13"),
		nonce:           decodeHexString(c, "1d809d62f75dbe9d816475ce"),
		personalization: decodeHexString(c, "7536c910f6c8bfa3d1d51b67a4a767c21bdbc08911e893b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74454e36fd57dc587415c49772b64e36eb0f918eb902fd65"),
			decodeHexString(c, "1162e2e5d4609e1f2e79e54d69a2d6da9dd0ac691bda88a7"),
		},
		expected: decodeHexString(c, "5385e6d950593f9f2b4d93291fabe0e4b519188e201cc9eb57c57e7cfe7604a0e263a2fd73d4359190f301f12eb28fa4960c68bd2532ee33e7800a5e791de0709524d971a92ec90df341606001a99af60b1ffe70e190b9d1c1b196503bb69735e0a8955e62b5a9c99f9841b1fc141d25"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_12(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e1e8808d4a54b0d257b6d83d920f41fb2eb874ae92a7081b"),
		nonce:           decodeHexString(c, "0363fb9ca9a667dc4a63a39f"),
		personalization: decodeHexString(c, "ceb33739b5891006369bb9db99e8e509cf52e35b919457d7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ea06da460285d80380adf45243c5d1e0605b25ddc320701"),
			decodeHexString(c, "846abb105ad3bc773a6b385ee575c17ef515420602d6082a"),
		},
		expected: decodeHexString(c, "cf3d9b4b66c83a7901c4c35cf8d9d5c525962f6da3d793c2faca59fb9c79711bad8ebdedcb64e5148d6acf1e5b384f051b193358efa743bcc2754f10d99053e6cbe34b2cddad7e8e287c603869cfab6ed4df28b26a0a00f70877d094393eb721000566c61dccb15eb58d2dd65f0b5fc4"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_13(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "31f74101e7fed5cda30b13d34dda43093a06b8f04ca0eae4"),
		nonce:           decodeHexString(c, "eb00477a3f425f588875d7dd"),
		personalization: decodeHexString(c, "66bf7e650e2abd76195336c95e5c373814fa23c1abded5ac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8c7711e465da516f63edd7c6dc0043b3cbb80f22e15d69a"),
			decodeHexString(c, "da09a438f8e5bac4105b168a956497c1eb920225f2148d2e"),
		},
		expected: decodeHexString(c, "586a0dd5f9096abbae7a0ac9f022f3ff3f7db5e68a498d2acbd777f5b2cbbcf5284afe2b16c46f7f5b14fae14f8d6fcb10c3ad99544b5de31b031217ad21054914ef93772bbc7561ff92f4b680e0404845c7aab07a80c59ab1e23fa386f323b584937c930808fc67f978d43980348f1c"),
	})
}

func (s *drbgSuite) TestHashGenerate83_SHA512_224_14(c *C) {
	s.testHashGenerate83_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "adc23efdfbdb1e6282bf5d744d73e4b401de9f0ce5734ed0"),
		nonce:           decodeHexString(c, "78950e481e8ff5c8916fbaf4"),
		personalization: decodeHexString(c, "85c36732053af8a4aa04fd6d71b5c8d5092cd4529e2a8507"),
		additionalInput: [2][]byte{
			decodeHexString(c, "81356bf7d3122bd65b5d96d2ca68875e1d77b36edb8e92b3"),
			decodeHexString(c, "1f185d4aeca1d95ba4c8e7867df64296525e00db7da61e88"),
		},
		expected: decodeHexString(c, "8032e92efc35ace508d8a10f36a6e7110cd0b087cf853409e83dbc554633380e9793b7657a23a931e34347fe0ba34c2abdef6a8505e44da62fee97a9543b9e6dd6538726ec2cc6f6d19382562a4a438a2b0756fa66b48628af292e2f53e49edfae3ccc48a95f24c940a90d1abfdd6d0b"),
	})
}

func (s *drbgSuite) testHashGenerate85_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_0(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "53aff72a034b35c9531b01cd4bd533269a2c437abcdb13d9"),
		nonce:           decodeHexString(c, "d9f1ccaf486d8fbb1649e18e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0d787528a4864d75d114683ba9f79245ed481d18dd0ab0f"),
			decodeHexString(c, "6ef8c44727dc9195da01bd49406790305d4f4c45fece6d89"),
		},
		expected: decodeHexString(c, "e8ac2faa97f487544341a6457425fc9da03b79d1cb377cc7f66416d28e50540f7c7f359e3c876ef41b16a3dd77e6d73d8572a9f3587317b1c07be701d81537f69973031f18906600edcbab8328a1c5568f8407a961b989fdca0be2dcda4f7f9bc4789f5f56ba281fe0f5508590992255"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_1(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d5fd2f7f2ac76b1056094154705da15af9bf1275616d6858"),
		nonce:           decodeHexString(c, "0a1958e7a3a2ec7d34452da6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "04bc6079cf2c42e8edf207e80680b03030f268d3ab2ed8c2"),
			decodeHexString(c, "921b413ae8d44cfb52c889af877bd35e5ceb246dcea6fb96"),
		},
		expected: decodeHexString(c, "929a3c7f936e87f4ca391c9325bb86b57389527f4245dc43f465691a3e80024063a3bc0386115852742594e6fd1ce035af8e90003df34f5b7fe0b7e1559362d3ea84a6fceaf3d51fb40d3c2252ac5c7ad4cac34a32722293f5a2fb65580c542a9f0f55b77b672336887dd4007851ce5c"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_2(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "841009350a7a85f7de5af9382c29c71224f4370c6ca12745"),
		nonce:           decodeHexString(c, "3d0ee6172e91d14f1cfecec8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a1023dcc66ec0594d9b43e4e87b9cc47bd975af98cd1468a"),
			decodeHexString(c, "d0f024c039633808250ea0d455b7a9e2e62b5e65ef887d43"),
		},
		expected: decodeHexString(c, "8376d1a22e76a7087114805bae931bea61f3c66aa74cb1e4bd35b4b4332e9557d1e5f90914d2949ecba8b258e8474d9846e93e454d2706ac33a3526d7083790664aef0634441de14911de9b447bf778ef72800d423031635f8a198fc155818515af38a221246be78a9ed136129e33f39"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_3(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "edb82f2ff7eaa5807bef88b7ae2ad9e3d7c316747c2c6bc8"),
		nonce:           decodeHexString(c, "8f917ef6a0b7a6a76d27a1f8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "bf7f035bc39309d8c73463ea3cdf14b0a08d43c87eb8d198"),
			decodeHexString(c, "d7b41d97587c820727730f3ec91f1c54171609f991ee85f1"),
		},
		expected: decodeHexString(c, "58a04c67cf6c79e7b8de492d35b8179c0fc45c86b9fd639ee053bc8eb7231bbffcadcc742b990f63f5edb8deb1ee7ca2095bf83291daec0e0f82df4ec58650401ab92f1e779119b4696a8c82c5da18ccd657c8cd60c07811a283653d72a92506fc85405efef0ce84cb4f7009b8776fe9"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_4(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "12c52451cbf115747fdd5a45ba3f864157a6d144f21adbce"),
		nonce:           decodeHexString(c, "0ed023b13f02e2d572d7b164"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "aae7a7b00082b983d0b7b8293787c3f58a951478cfab2441"),
			decodeHexString(c, "168e6f4887bbf5291596a93593f58e0f8973cf737ab1884d"),
		},
		expected: decodeHexString(c, "e259fc5921dde6398987e92366cdf059b3659d7f3f7dcbea3e4bcd482d2e70c0ffb15990f382cdc6364d31c4105386d0f259e2f7a5727df7c89217549f3d3c38410de246757d5f672665373872146fadcf93d65d8079d8f6ea49fbc1403e0fb2e6037fd1047526ee28ddfe940d630bbe"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_5(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3a426d53895b3e46d97787dfe79ac48d3addf64b088d6c52"),
		nonce:           decodeHexString(c, "43a45ded0084ee3b2cf5914a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "df4f52d86893939d83c1fde14d90b4e85c4a68a2dddf5ad2"),
			decodeHexString(c, "4205c5a9fc403572c4446670ef4ac7f5fb9938910fd0b33c"),
		},
		expected: decodeHexString(c, "406fb613800bfa05ff713d736106958c1126be3d9c48f9cbdb9ddb73c7353242a6fae9979ab3dffa96648c05f8abf3ab784405ed263e0558631897bba78ad1566dd43085a20ba23e1b8f329a9121afbaf8e2f830d1c4069f44ff125277453bb4694e0bb2c01e7a3fd2ac4441c5241ab3"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_6(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3c759443c83813a7deb06cfff7fc0814128d416f455f4df7"),
		nonce:           decodeHexString(c, "a73af062f4ea0140d693e716"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "94309b66c8eb3b700852db9e1170a158604e5e043c5cb47c"),
			decodeHexString(c, "b4105cb2af73ca583e88fb3eabc35209a0a06452aed4cace"),
		},
		expected: decodeHexString(c, "508d4d7a1ffdd032b40e526c93a93b1a5e965e4890767a0e495412b005dbf0e86685208a327905bf4610c6094ab7257a32e14b5bda9cc15c6333d404bc5e2fd9f554ad7a7c4cdb861b2b951dd28f02343b9ce6abec6a66681b4c064390041455ba514e1eacdb5edeed95b99672588101"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_7(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "494f4c733131ebe8493c783883577136c9990616b0caf069"),
		nonce:           decodeHexString(c, "ef61c7230fd74072b85dd3c4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c2488f2d5052c367364e925367d7ee42e5b7773c4db05d2e"),
			decodeHexString(c, "79713c9faedb3ee6eb0fecf0876ee4ecd84691e00b96faec"),
		},
		expected: decodeHexString(c, "4100051ac949d3a1cc5d45e9894df6bb2cff88bf647379fd7065bd8f50a8ad4aa3a084971349d7e2141081036ed8d5bbf043fd87308b53cf94407644b7a7508ca46064f71f56405be76072edf2475b6dfa805de80af43ef91932d62b45ededcf2b82a17d226137af9c2970869ce906d8"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_8(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "60c687bb49a3d1854d5798fe7cfde286e081e3fd09648ecc"),
		nonce:           decodeHexString(c, "583324cb7ecfb8f82c5eb67a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6aa6d3ec08ae9a035937ce3d1be94abd5c473a3cc5bbd8c"),
			decodeHexString(c, "ec5f9cf09e2b403bb1fc26ea87630347b5e4ae5709018bac"),
		},
		expected: decodeHexString(c, "02b5d69c58848f5d144062fd9714e1166a133ca28440e9a80778602d1f7c35885970755847916b57c316072cbbc61ba90f5e063d048731b331b790b2045f4a9a447c1af818e3e7f156feb4c6e93c17e489b03358584ff83e84a6e9eaf5ec8213f06b209615edd9fdf9d773d2c2b194a8"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_9(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "aac14133237444a1f625d438d4927ac2c616e5c7613ca8e8"),
		nonce:           decodeHexString(c, "c7c662e78fbf37071ca15f4b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "aa125ccba1798b5d0d426d7508260da20c4bee5e0665aaef"),
			decodeHexString(c, "473a728188c0655169dd024995a3db21b0b2f262c28bed2c"),
		},
		expected: decodeHexString(c, "d4f21a5754eda602c4fc20426adef10c49352b9bcbcce6f69da506be951cc582ed8ade9ede8ffdd4aca311134e2fa45c00692c9ed20661514ba867e9e5206e2585ed11c0d779d85a1d2dc9f1795b25116bf6593086135e4ebc1d9ad7bab414d4100a93bd299d83b19e5bdc9830f30a87"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_10(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0a1f74c0db59187d3f20184ad5e7ccba77505351895436ca"),
		nonce:           decodeHexString(c, "89916fc0502667e5f06d039a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f68260e1422eed3d09307b30204d92d44c5f84ee0ec15cf2"),
			decodeHexString(c, "555a5725d5435f5cdd4941c5b8d840f357613b17f123cff5"),
		},
		expected: decodeHexString(c, "0dad9bfcad83cf8189b0212a888870a8a4cd4302e5913eb27b451513dac8c5e007b4ba9ee148c60945fd5262f6964ef8caa3168c25b2c61a7ed8b4e38a88b610c266d5958bd105f43f0650dd4848a15446e294f325a4c7bf7ca77f51bd910d24566e5411982cfbc7a544ed03a6a641c8"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_11(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "96646048d50c5596e5ad91a8fa13d3e3e9ae4ee59a274a9d"),
		nonce:           decodeHexString(c, "b114f953802390254efe4664"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e2d11ade8e55b8e3542687b5711497f78c79057eb0fbc29f"),
			decodeHexString(c, "ff94fea1dbfba2c2138f4930332bf03b12a952eabd0d9f6a"),
		},
		expected: decodeHexString(c, "adce9b6066b742c5eb294a66cee2c51c8335641a1ec849e36f721d96b8bd5cecb0a40dd11f3b2636bc5e89943967fe75c2c9ad77f068df8064f208a1da6d7066d7f539ea6548ad57f7306f4ab58d844ddde62a866c3ca58b6e78262d6e45909a9b6276dca45c773e468fe5500132a7a0"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_12(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "6bb582adbfdddafb38d1115a2eac2ffe3745ce63f93b4efa"),
		nonce:           decodeHexString(c, "4bca4f918bd3fd8cb78825b9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "788b95a42ba57cc011479ea079f7b818cb42e2a3693dccfc"),
			decodeHexString(c, "9e24b638b83586ce95338ac995ba8527086cad0205df5121"),
		},
		expected: decodeHexString(c, "e51693526744def29254b7fefa3287efe752538f25026b821375cefe55fe3f6f8c70543cc97078a096e3393060bb41205335e74d7d5f686497d4d0ef2e2709700b4cad5148d2919d42d84d611197c4dc4e2368c4f0e45e61c375efa356127dfa5860d071e46e7daf79bf380150c10dae"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_13(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c48499ec94cc528fd842074b3b34b624a6886b1266a01cc7"),
		nonce:           decodeHexString(c, "8cec818ef3bdee8dad4eb056"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e54c01d8dde55280f2665ad6b075436a61a8ca9b88b5a831"),
			decodeHexString(c, "e5bd1ed7e505346795622b52c2595405e59a84deef50d61a"),
		},
		expected: decodeHexString(c, "b76a9ecf3caea53d06e9bf24391075f3d2ad1187bd2a23dff4f642490511055b5e77749bbc886d85de330f554abdc35adb51c1de5fdfb1322939ea0ed85739c0e22c063e155e029d3549894b3427fcf3e263fb616f788434a09235a1fabe64d8f59f5a382e1c3c3222f3e5accf25faa4"),
	})
}

func (s *drbgSuite) TestHashGenerate85_SHA512_224_14(c *C) {
	s.testHashGenerate85_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "131273679f11ab131bd40675b8f53dafc9416c3acc09bcc6"),
		nonce:           decodeHexString(c, "aecfeb199abb733d2bfdac2a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "13998df6bfa51c2708775384f01cfe8f4755b6fe4b3c2fd8"),
			decodeHexString(c, "8d25383b6d04285fb699c644bfc9b7fc72de41c733f35b27"),
		},
		expected: decodeHexString(c, "3f408ca372917703ecb3449ea55de7a969a5ba184eee8f30fb19b99ae827c66b13f29d4d3a0236aefdaca63c28bb71595d3dc1fc20f1e7ba1b1c9bdb7c2122bd8e443b00b5339508c315ebbfc9bc3c7bebaaf83312325bae696a576b3c92931eef6b4eab6bd90c140295f47994ec6e34"),
	})
}

func (s *drbgSuite) testHashGenerate87_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_0(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "dd613a088187ea115d9419db1f3e36c9334c0388359bce67"),
		nonce:           decodeHexString(c, "2a31352007a20166a6acc648"),
		personalization: decodeHexString(c, "f93e011aa0a74e2bf5145eeba9fc551535736efc8e602c25"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9c2da85e0eb2ce03bac0b51b2d686770ee4491c15e76c14c"),
			decodeHexString(c, "fc4a5a59f46e417c857ffc6b34fba2a51254cbe41d66ae24"),
		},
		expected: decodeHexString(c, "d79a79f9ea5604399ea5151c2a61d33b69c35afebb67f246a371aeaea8f1e75763cde1907a5ca30c439d60b71b72429a66fc10d3c853e4552dc501ffadee6733e1c8d61efa1843c5e16cd832cf4b3d5bc04bef18d845a014ae2982fb26dce6bd24b455184d9bb1ac8ac324590b1a0c51"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_1(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d7e9f3d8f13b03a092b760d7fa1916bb7aff5d5a47fd2248"),
		nonce:           decodeHexString(c, "8ae94b692bd0746727d051b3"),
		personalization: decodeHexString(c, "185da67e83276a817a807a65632d3fca2d0a36e8ad8ddad1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec4dd4a3a64da4175142b9564fa0a6ea1818f815c8a84916"),
			decodeHexString(c, "0d46aa655247fe22428b0914e2d69a4981e2ac55fc7130d4"),
		},
		expected: decodeHexString(c, "8d897f548aaf86e277df2e0bce8a6944d399874b208c649a5a31c73057087a804feed87ea76ef670eeb27e57c37a08bebac9c957a3a853a420f4011f3f11d8c7fd061563d33ea1a0cd2c7a3c720a3a39a353dea3180d862300c44c481e948710d89c98138f3852dbbca23e4139cbba9d"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_2(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "97335ca16552fc5ba58b79d9a9c63a81ff338843856bee32"),
		nonce:           decodeHexString(c, "bec64bef3f272cab252e838d"),
		personalization: decodeHexString(c, "62376851b9d15496bfb8496cc886440b0afdfcad746ab9a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "69fe8ac686efd13aecdaac4d1fa5e7c01da41f3066d4b668"),
			decodeHexString(c, "5702049e811acd52d96d9191a4d03c31f3e5f28df5464ad2"),
		},
		expected: decodeHexString(c, "acb21b4829a7387a4994e3eee1ed7fd51a027866b76a48c21e09551e68951b98c25681fcef1b2753a539e07f82039db4c29656a213e95e9531ea67dd8f20da549f71a91fd2872c6efa1ce10f99e4b33b2b9c4149b95e1d9b9ffd4c9bdfd8c91aff0fcb02537b2928d91d29ce53a8c738"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_3(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "68f9d6bf1c3fc81a6a1a8a6802cf351fb0db7979845680a1"),
		nonce:           decodeHexString(c, "321e220398be80e0f358b85e"),
		personalization: decodeHexString(c, "6a142b88d0a53529fdd8dea74170185726c1efb6dfd3e73a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f3e761fdc1defc199e7fa3f3ea595459ba7f36823fe5cbe6"),
			decodeHexString(c, "c7debb6fc65d592816a6f42f1e3914f8fa35d4bfe55271ea"),
		},
		expected: decodeHexString(c, "9cd7c36c9364589549af7fe78a0732d6aa36bea12228fff2e528f5e5f9418599032eab2b67054f417834045a656358fe9774009adda5ed3b6c6cd299e151851cdb630c4a4834940f3fa4f29784dc99f7ef0f1e071fd8476af5f01d9cae7735ede2128db5c16df1a0b816aa10cd6dc83c"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_4(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ba06a17e6afa8d4e9884f63cbfbc64d163f2f579ca7ed598"),
		nonce:           decodeHexString(c, "21aa776100c0ddaee24634c5"),
		personalization: decodeHexString(c, "0749561f59c8ce7bb970d1773a9a8c6e554177ce0194ebc6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b60c89ae622970d651c8473d6ad42c9a6015defc56a0db3a"),
			decodeHexString(c, "607ec2c21022555dc67903849342674676c56608556cced3"),
		},
		expected: decodeHexString(c, "3c44f1fd7d507f9662619c4ffc419b48a9bfa55a533b605d88d3bfc91c208c460dc2bd3c63ff30ea8807fc2817114e77cf7fe09f5a8c70182fe29cf41a76113f7229ef074d204c3cef444f63b3ac1af85cac9e09e9d92c78940074d39309cc45d1bf9a35a3a7b85f3e17897b3a4d6beb"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_5(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8f27b7ee2a618fdebbeb58f516729a481f978b3d420821f5"),
		nonce:           decodeHexString(c, "fd9d4f0a75107c64c7864f03"),
		personalization: decodeHexString(c, "06e854809260f623db93eeca50cc46d89547d29536dfc77d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "98f108299f590d9ff866d97239517fcdbe2ea171505c07e5"),
			decodeHexString(c, "3e3d83ee0f24036983bab3e7c4aa1c4070e17e1fcbefdd13"),
		},
		expected: decodeHexString(c, "d6e693a33e9f56106af0e5ff07348eb25ea7b0c41c40e0c0aa3e9382f1352e51b0c10e5756e455a24fb81af96fc58683f843c17aebe1376a65a16802807ea4f14bd8791fc182a93143fdc52d416f49d4578eda36a4e95646910ed18b906d00c7a135118183c828357c19a17a0812f8c0"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_6(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4e668aaa6d1bdb94742401c43bba27ca169fcac91162c03a"),
		nonce:           decodeHexString(c, "16f96f2e75d712725137bf8a"),
		personalization: decodeHexString(c, "37944296e9607d7af30c34d99eb4f851c4690c53e3e25fa6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a53d387cf1369c0d6f276c0d6e23b747658aa7e3c476a798"),
			decodeHexString(c, "fabd93aae74f8f8d84009644028e72bb2c97dc1064adbc59"),
		},
		expected: decodeHexString(c, "1e1eb9d443a5aa4d86706099dd1d23f562aa6bc5307922c711aecaffeadd14f36f85738cdfb749b55b700b2b4a2a399fdf59b33faf1b0f6142cf7abf375f49412ab92a619848b761f691bb51dd95cc64c7e6fa104ae4fbb63ab0fd2a38e3c5cefbd39455df4cd5883a057ae4ded25061"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_7(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "da9ac3575de73b7ba307fb8884004e4eafbfe2569f6d6cb0"),
		nonce:           decodeHexString(c, "d25c0101ead9c54ba8863549"),
		personalization: decodeHexString(c, "cfe05c5b187d62367ba3a7de834317c109e0b6da0da4aa68"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c655e7fb546efa9180b590cd6e51e8ae351c6c3d537bfd5d"),
			decodeHexString(c, "676d6b386e495263bf970a7d63686e936b3115fcb6446056"),
		},
		expected: decodeHexString(c, "2db72f96223b7b35963f1beff6ebdd3b08165e8701f8a8b55a7add13601761764b6a3a361a569e589c628875e5ed489448ff22ee02807997609e8fc0b97a35901fbf4fe7b2a7499589c632e93f9a7bdc854c6e269e66090eb3764854457c3e3ea9af902896ad5a5284fa63015a0161de"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_8(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "74cf7ac52ddd96410e0ba39f455bdacef239dbaf88fb4758"),
		nonce:           decodeHexString(c, "ed4e1cd8b9323d32e688d3a6"),
		personalization: decodeHexString(c, "8ee3733c61ea0ad3ecab12cff88c4af119325a9d8b15fdd8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f717b045e0061b0455ceddb624ad0bee50fb2501c69aafc8"),
			decodeHexString(c, "21657e2d42a4fce1fce1aeda2f57844a32fd3bcc30ac7d84"),
		},
		expected: decodeHexString(c, "0b0ceaac8868b359cf8c74c6fb3a4daf59dbd68552ef4531141a2a833cb2fdc9771576fa2dff8ec3ee49e1b687b19875a36bbbb66973cb075348c4f2daeb58a04012c08e7061e91e140118e7620b008087b400d4ca7171bce410ddd4426f6514af7fb604234d39890aee4e34475ce31c"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_9(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b1d73ec30299e5d754da31a37ed73f2dbe492847b796563e"),
		nonce:           decodeHexString(c, "e118b64a81f6817d5f3cff8b"),
		personalization: decodeHexString(c, "319636c5b2edbf1ffb0f28ea5c1fc483e0c3ca8802801ee0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "99d9fa824de3625643cd95002017626fdd0c2a29249b3fcc"),
			decodeHexString(c, "cb339d0f6d3e830eb316342d9f16027292c0be539d3afae9"),
		},
		expected: decodeHexString(c, "a3298689fb722453aa2d6e25a01e8e048a2339b3a08442ad02c611accdb7c813e0251e01b35e4a72c86cc51c6c064cc4d13c50cc428bc4172cb4649b51c69773da699821fc2883a80763cd96561b5cb99c2219479bc459c54e651c4f22c6df87408e3722cbe01494249818816c38549e"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_10(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "07115199075865a61c101375d4373f61f2f137fba7030860"),
		nonce:           decodeHexString(c, "4ab8ed6ced5d0896e5aa4e6c"),
		personalization: decodeHexString(c, "ada2703b079e1525b203767e8ecb0f12bbb81530b5f83c45"),
		additionalInput: [2][]byte{
			decodeHexString(c, "92938d2ca56ddc997913ba669dd2a68f1150e971f994489e"),
			decodeHexString(c, "9ab4e1a982b0fd473e9f5c44667b650e192f954461701843"),
		},
		expected: decodeHexString(c, "36bd15e37cebc2a684bf1d9f971b700e34444d0e8e9c80b3a0d2c9aa320ce42c5bff316a2df6ccc32a5fc2a7cb00f8a6a5c7d3fa36dff53724c2d1a075fb7a71b66400f005e8f682b83421191c93a31e826e75e3629401ff95c4439eb846558d9a0087f5c47b2b8ebfc36d9f7535f342"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_11(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "1e7cc92e0aef60ce8a8f40c0bfc7bbf57c03a051ce0ec3e7"),
		nonce:           decodeHexString(c, "06be5dd7818edbbb0514c409"),
		personalization: decodeHexString(c, "f8c1bf41d4109726a85865b3d4dfa4dcf729c2c634f18fa8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ae2e5773982ef9f95eca6dd9bf8ec4208d8b4c595aa4538"),
			decodeHexString(c, "a137005a49d9fe3bd2d67dbadd4604aa19ef49dd4cc52664"),
		},
		expected: decodeHexString(c, "4de76555a538b58f0dcdf6c56b6482976c692c7a8f1ced393bb5789a1cc57318887a70e0f581616052090c041e3cbbddd08065de1e1cfd548acb89b678e9e06302a5c3edc0873e69d7431e850d0fb84ba081259b1e98d6190581cc71131101594732c1f2b625746c9d4cadaa22f3d13d"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_12(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "fc2083c98cb0b14e83d7a0d5394590351e11e195339ced76"),
		nonce:           decodeHexString(c, "efc6f146a738fccf37386f91"),
		personalization: decodeHexString(c, "dd0cfd5954feff1f95ee3bc54df0a55652374965eb2cb72a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e841f20642062e7d486fa8bca1712720195278c9b3d69d20"),
			decodeHexString(c, "0c6f9ae62c170c87a7dad1107ffeb0ec7a15953188b3aa73"),
		},
		expected: decodeHexString(c, "151b8ef3c9cb616db975e9833862279f31585842bc0725f91b0d2ea96ab1587e520a6c9bc339974cff523255c68a05fee093773a9857a5f3923c002c2eb30a860c2129272baf62ac4e37befb6dc98810fb1c2ea1fb572a5ef37efac78306edc8ac8133353a6986edb99704a1baa84458"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_13(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ab0cbc1b4b9cae4d8036746ce9f44660022afae8ab1ca1e1"),
		nonce:           decodeHexString(c, "4dde1ab0dedbc4b0b77d6f9d"),
		personalization: decodeHexString(c, "32d8f6c25be41d2bd09417e8f3ba6792868033945b9d7650"),
		additionalInput: [2][]byte{
			decodeHexString(c, "92f399671e0c5db89310d880545366bc356197c99e2aff72"),
			decodeHexString(c, "f1f822581045ca7dfe2ef9c054b602a91e164253064ee82e"),
		},
		expected: decodeHexString(c, "e87757e04b704eca996703afa63fab787833df6131615a6de7ef9c325edccc52da099ac00082e83fde400753bc759fcd71e91f308e1e58f8b0d3c942b2f51acce15e631f1ab16793b67a32948fff4656959ac1fde49f92cb673185c3c469ad017574066fd689e2fcd202b438a858e35a"),
	})
}

func (s *drbgSuite) TestHashGenerate87_SHA512_224_14(c *C) {
	s.testHashGenerate87_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "aa9365f9c94d1454e34358290b219785c7f1bf114d7d728a"),
		nonce:           decodeHexString(c, "bb3e73c7142054351a7510af"),
		personalization: decodeHexString(c, "054b4a59f963a0a6487a059ffc646cd8380bdb04847114e8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2bc060710fe3d92760adc274b878de0df82804e840cd098d"),
			decodeHexString(c, "de879de9c03efe5a68a12da7a06003ffbbea0a9c53f5e0bb"),
		},
		expected: decodeHexString(c, "4968c67d2f830b591531d620b6c40de4e9a15dc97c70b8b059023033bea376953cc5fb415d823d55d5b02b17c2ac60a1c8ee7473d25e94888fae15c6a7770b75565fe505a117c734d0c7d0386cff907a893da3a83d45f51bec9d95670374524b4f59e45a04c88d1756ed854fa9f65693"),
	})
}

func (s *drbgSuite) testHashGenerate89_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_0(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "430139af14830cebc8535fabe057ef9ec0a3b7cb47106c79"),
		nonce:           decodeHexString(c, "c6f2576782dff27296a2a296"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b319a1e8553eedeb9b0d5d80f849347b9c7284891bed80c0"),
			decodeHexString(c, "5228537d742c8258ba5ce48ad6e64abd5a1a14dd112acb90"),
		},
		expected: decodeHexString(c, "56aab8ad28bed8464370f88758392a62b38f855251a84c2da53de74cb9f8e10587dcd06f947ea43e7c6b74245a09b36e6fcab5ddf128f86725b761537dee9fd5c3275ecc82a0fd9560f241a3c090d9ce51fdea471d2b25eaf721cc28571c727e6f113deab9f8dc07a947597a99ca5810"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_1(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "49382c010e9a8860c6c69fff10769772bc477eec81a93e18"),
		nonce:           decodeHexString(c, "8ff285a0a9f2e09e98a5adba"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "746b3ef3eb4e349d29edf3b7760b7c9c21b9d866603e646d"),
			decodeHexString(c, "9b101e1c311bcab2846bdf3b210a8f1dd1d9fe6d5f8a0533"),
		},
		expected: decodeHexString(c, "933e7f90201ac2f3ebdae180cf263cfaf3f60fcdd444be2b72c802c70661abcb2e11a5e7ff7eaf148d5431ed9c653ebe7b74f1dec611b1fa13b0dc07fc7922f082e2671e72bafd7720c9f12897fcd97b238ccd3e172206c444f0846e1205e103752b986bad3e0f203a28b90842db151c"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_2(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "fa92d942dadb58fa5782c5c7dc7eac7fae284374a34499ac"),
		nonce:           decodeHexString(c, "8961a2dbf2bc76f2051e8e68"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "853a4a89574b7495259bdcdb0b2fe2e675549ba9a4dcce89"),
			decodeHexString(c, "15a7a2fe401781ee9690f54931b7fbf0fbe4219dd0a44eaf"),
		},
		expected: decodeHexString(c, "b81dfc35331a50fcf057c003f9fef898018497d76a45b2b0526f8c95c84654aac9c3d5fe54ab04cf9395f411ddc329605dda3b3c1218861124862ec2936d4e66b4d2695aae77d1e3d9d2e47fe3b8d69869755f5f71890d0b2d4bdec23b280af78664ef764951e2309ba52a408678933a"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_3(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "880306ff24a048b5c3b6b3d55718f17095de78a63fb676c1"),
		nonce:           decodeHexString(c, "a9202a0873a99eee6f89bc49"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3221d29928aaaa39e7b1ad9d0843c8b8d4ece6a8c34beeb"),
			decodeHexString(c, "c724b25df7eb92b160e119060fc4fd2fc95f603c0e395413"),
		},
		expected: decodeHexString(c, "d7150810c935509a5264731f9c5f573ae471ad9b9cebf758dc1cf4b3cf46a3a456345bf7e7a3a6ab190ecc8c9f52739217a0954e3e903b5c940bc874dbdaed2d71d635faf57a265a26c79fd345de3e941d5edbfc0aa0f60a942e78870eb2168d489c9453da3b297866af7384a6f102e9"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_4(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f8d93d2bab63073e9896a6fd0e2954614a62f8afdcd54577"),
		nonce:           decodeHexString(c, "00dd57b62fd0b4668f64313e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec775671f95aa03f2ae104b9bcfd2f2a5428c05d6d4e48ab"),
			decodeHexString(c, "2bd5c7e40a9a6e0c5c5b56b1da1f49aaf629278d5983fb4c"),
		},
		expected: decodeHexString(c, "48b6447769f6303dd3da7574e3286d9812a862a971b67667661727445d66b67741c185ba78e3af2a628e0ab56715d2416c0bad1f7410532146a3cddf413fc3de300dc2907844a70084d6c5b826e3fe1558e386571625d52208f089a7504d38525f71dffdebf6e170f88dc2ab454f8fa9"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_5(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "c5345b4937d9f864b2eaa4224889d5eca16949aa17de73b0"),
		nonce:           decodeHexString(c, "61021a8feee8ca0b43830f70"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b44e417cc1414189ebf39a43acb03e17985ac4708019f8e"),
			decodeHexString(c, "055d7a8fc1be9dde91593d35b4cd879b8e10c9a5c384cca5"),
		},
		expected: decodeHexString(c, "1432351d0101bed2d4f9ac25d5177e7c68a9a4cbebfdb18e6737e5088fabe22527f1588d6b912fd8eccc0036180c024d9c41da28d19f1629cd51ba1a7eb17831b0b044117c42406b3ba1200edf09be8a6d2f60170ec910cd59103daf711527457b8cc1137e6f42b5805d5361303a0594"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_6(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "587d0620ac0b9567030f746673bccdaa3bb5cdac5daa8921"),
		nonce:           decodeHexString(c, "7e7f089b27b994b4e719d411"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ad7a7efcba76a864320b2e90b4092add56973cff3ec79119"),
			decodeHexString(c, "b1aef916929de5478592cecb1c7667b48c3e96ab444bc362"),
		},
		expected: decodeHexString(c, "d44045ae17277e2bb0bff4d9eeb5986412ce0149b2229f112a89954377296fd51763b495e39fc079a7f2793f6d17a02b91d5a3b77c9f4f8e785d4d1cb9adc92632ef7118ca0e216c3fe6dc6570a897475db079227129589a5898a3ecc2f2a1ef2174d10a8d0d651d00d25ff6c276a41a"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_7(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "022185265b17db2b976e91f41a0b3a951a68c4f92c36dc49"),
		nonce:           decodeHexString(c, "dae4e594c80772163450b21a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "78ae0e48a3297aebd280ea65666bb3461c6fb9e54a7e3a1f"),
			decodeHexString(c, "cdf6968e1a567f8dfa520f9fe25159d1a725d9fb4f1722a7"),
		},
		expected: decodeHexString(c, "4349225a5de8113ffe22d481627d8c78b8b68def1a5659ddb1db206eecf016cd3a4cf8c38e76ee5864136b6b97f2d033e5564b828353eb09ce5db37e088f4ec09c909e61723c9b91f903892b744a4c40d6ce61c9749b06ed747adeb64157b3b0185ed7b5954e8fb98e1fb52aae333c55"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_8(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ac55e154b3311a2c7be4a0c408cbba78f3a48630835fa7be"),
		nonce:           decodeHexString(c, "34c6e762464e2384201a6ea8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6ad9b936c9ab33055b64830e724bb0d16d290fc13e01c425"),
			decodeHexString(c, "b7a31d8e7dbe17c18d050cbfa75a6073ff035cc627bf6da9"),
		},
		expected: decodeHexString(c, "286831705b2925e20eafde0b6874ddd45e07d018a60ef1334d23517404f160bd1964615aa74d62932da0f0931ab1a69aecc424411f4e6e8a97dca1ae9d6a2fff7afa581d60343df4017cda7252ae84dcadb2d00b394706b37bae65f1e2d84295060a9ddcf36a501fa49abf42955b9e11"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_9(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d776dc58e33ea42ce4185ca05e0d90a14cafcf2799742a27"),
		nonce:           decodeHexString(c, "bbb8c671158d7ed82b5166d3"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b847d0672e9e95aa343afebedf54f0ee6e33cfad7930284"),
			decodeHexString(c, "1724f6a622b9f0d7aac5b6e19b98e2d8090099451d688173"),
		},
		expected: decodeHexString(c, "14a47165883051d29948f128eb1cf77299e8f058b24000c405f17f24465c896e6b61bb36e7acc10670f593902469b44b7f40b2eb0d347b5d48fec25d2e0cb2678ae8bbf00a2390a0ce3aff785cc7fb13857e501860c35904183a491a47542bcc39183b884d52c21fe13f0c25ee873fe6"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_10(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3cc646a8d0ccde65e89555cd2c48b7f2e5919b2f41a8235e"),
		nonce:           decodeHexString(c, "57485fb5a8f3a0c09fc8e7d6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "feb5fc30cea5a5db9c25706bfd545d0a75df3478ab19652b"),
			decodeHexString(c, "f59b59f2a7ffb0d783c4ab7015c9abf80f48b079857b7544"),
		},
		expected: decodeHexString(c, "d9b7a10463f0902d2dd9a99af80001b391fc921a089f3839704b55c4e4f86e0bbadbb54269d97df19976ef5b7dcb50637318402ab292ceae5138923128cb75f0f865e69d41a6ecab75a1150b3c2659e4abf1e4875df507f18a262842d664ec7f8d71aa04f791c4c31b3f3c6eae209bf3"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_11(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f9214a2de98cbd59b244ca46c0c511ef616ffee2c3f41261"),
		nonce:           decodeHexString(c, "57c83bc36fb105bb19b7bafc"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a01076c3a475016ae8e46513623e537b057813764551cef8"),
			decodeHexString(c, "3e7b09e576f932933e9b14045d11f4b88c39921e12f1bbc9"),
		},
		expected: decodeHexString(c, "252e68c1bff523d188258ae1d9d5f44d280f589421f1652b5b888c62c6704dbec0759c7f2f071f1cd7cf083fd2b9dd0e8cfe6fd9556d6f620fd8466f3e1ed6c31ef6466c8e99684c00b02ac6997a6cc108c470f5a0c6fc7d70433e1c39b6730e2b5b13422abe2e3160a57a70e0e8a344"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_12(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "ee0e3d3cacb18ec69645fa3279985c716488ee1d1fec9bd4"),
		nonce:           decodeHexString(c, "a5f85ab349962935fe4c2608"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a18f6f60cb7cef4278e1e9d835728e2ade674ebc9e6e5bc5"),
			decodeHexString(c, "22295318f4800fcd6d163d56a7171be86e57b3ef1680f36a"),
		},
		expected: decodeHexString(c, "fbd04567c37789c3301d91a48dca6a8fce4d6b829b2600f5fbff63e3477667aa1e098482983de8454b3d5f63ca9361f9554ade7046fac240b3c1528e6a1923f5e248e597f41766d79f30a69f05f98ba503c4439b5b024590917dcb8dd0fee81d3dde60a9622800810f9d2465d2190e8c"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_13(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "765df0f66a47d18d50d0bf3237a146402647e19860a16d44"),
		nonce:           decodeHexString(c, "50ecd13f3df706b5367d0a17"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "18cfeec15b0b18df9838463326f881fd800a2d0bea797640"),
			decodeHexString(c, "103d383871d01d7655280890bf365fd02bd9995f09884e33"),
		},
		expected: decodeHexString(c, "5230d26fd9d2cc4fb4c7a821c8793a344758cfcfd7a8047746f534d3785a777de056b23dfddc7a5e1b2d75741eb98a5f9ad4b9d9a3a5fe975d9362770a7782603dd93ef5c422a02646ee7416ea9d205394ec01c94ed3cd4b185da1dcd09733fdeb18f28049eb12ce8e5fe9b957e9690a"),
	})
}

func (s *drbgSuite) TestHashGenerate89_SHA512_224_14(c *C) {
	s.testHashGenerate89_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d08a80d2900213d521d677c7ac09ea9f9bb0eb83af28a278"),
		nonce:           decodeHexString(c, "1e57f0956160918bf50af159"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e73890b772747a356ee1527501410eb5cddef015a8d6fbd7"),
			decodeHexString(c, "9145caf79d0b85bb7874c2dc82d52bcca68225a18de258cb"),
		},
		expected: decodeHexString(c, "4ce4c45336ed4bdf4004f326a049c195c26ff11aadde90d7d035ce277a5b158577a7e9971063ee9c0b5063ab1f20c90f619137c2f4713831d18f2237e1a3d522af9a585e5f43f07d911b8b977f6c644784c9c02238b9fcd0f663c8bc1913f783c200b388b4ecf30246c7120adf3db79b"),
	})
}

func (s *drbgSuite) testHashGenerate91_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_0(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "0241d63cf22045db2d6aa18bad9bec76d43fc55dbe8e6c22"),
		nonce:           decodeHexString(c, "4081b2431f5ce123946feaf6"),
		personalization: decodeHexString(c, "2c3a641b37bae6a3260ed0510402ca6931455cb90aace7f7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84644c1ae70a6478d6afbbbad5d88ab111c1f22b2312b6db"),
			decodeHexString(c, "725998f3eb67c7b9bdafddedcce3706deee41a2acedc1904"),
		},
		expected: decodeHexString(c, "c7075fef6eb1b4d561859c4480a13414c17a5bd22d83b83fd500d0ca287dcf7d7aef8145deb9d9f897ae0bda9c8b1a3af3953dfae963c31c6d2a6bb9f11b27e484a35a4e1cdc3f1f5085374bd3165257b8be5cbbf3410516ce4e50a5a06c57deb88e2a76e55d964f0c985e6961e6eb65"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_1(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "da578abf4773283d09843bf757c6876dfc8bad170b6a45b9"),
		nonce:           decodeHexString(c, "c265ec44bd847004853ccdf2"),
		personalization: decodeHexString(c, "4e5e5f01789833a9612f3da02482d738e7fa1231f1705f86"),
		additionalInput: [2][]byte{
			decodeHexString(c, "19d214d3f9b0088d67b0c0dbbb775c3e59277fe70fad4b1d"),
			decodeHexString(c, "e0bfd2e0d0d2f16c8989c4a0715f65e9f9bc8ebf63816a4f"),
		},
		expected: decodeHexString(c, "6421fb3e06eb575d32edb1e86a1039fd57e82044f84578ef68da31f69aeb4f3c86051dc3a48b46962692846d71ad980069143381d21512e1dc8c41b8a7eedf0118c2761608f85efae95586a2cb2ec04a14c64d2816015c0bf014a02ccec86a5180bba4b945d29805e109bd95ebcc4037"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_2(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e1a37319a3dca29441f7f26bb6822cafcb5a09b7115b6ed0"),
		nonce:           decodeHexString(c, "a2f066886fbb964b059d2b91"),
		personalization: decodeHexString(c, "2d310b2bf573f6b09d3c8b18bdb3237b43b4e28d82a14e87"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5abc4eb0a77210760d8a5c3075f0327a6d38ed5f5d7e3d52"),
			decodeHexString(c, "4bc482a3da0384743acce6f18b61ca3b689979649c33ce2a"),
		},
		expected: decodeHexString(c, "b1f3cd09568b6cfbff0849ebdd2ec96c569a7db2356cc7697f610b112f4e518c12dec6f8bcc4156fa3e40bcbf7969212b2cf287ab283fdfeed7ae39c1b433b26990bb4436329092ff3613289dae01390ff116c11db84ec85e92c5b2c9acd14f34d50de3a73a6ed66ad919f1124b81296"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_3(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7a4f581af92c248f398f43f044af0bfb41de6e203d54b7ac"),
		nonce:           decodeHexString(c, "6637145979fed702de86cea7"),
		personalization: decodeHexString(c, "2888dd51726850fb20e5b8c75d99ed3f9e92068dce839119"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c4150870b101e882fb6602e053e08d099e6de9299245473"),
			decodeHexString(c, "ced202e9d680493dfc3650976467e9822c43e37981c28f3a"),
		},
		expected: decodeHexString(c, "e5eec038e2acab496ed13df71e15146d4c24f99d6fefe760585fcec5454b4d05898c60fbc0acf461ed792bea4c1fe38ec8a021d571f94321c854e1330481af0a36ce6cb4b1798bd9ebc835e8da72104443eb469d58c91508412112e3987b1bb06fa1c1aa205a68c302712877d5293780"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_4(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2db0d2ae18cc07aa8ee46b91659383bf54869b74d400fcb9"),
		nonce:           decodeHexString(c, "8d116faabaa71362e30dd157"),
		personalization: decodeHexString(c, "b2e94d8feff21126b4a03d08972ae0ecd22d67d9540fa3e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6c5ac82537cdf7db56d06fbe05956596f757b8615bd0e33"),
			decodeHexString(c, "cf62d8e970fab9100a625696aa5607928d578a3676378df2"),
		},
		expected: decodeHexString(c, "9b152ee43ca64dca2333026f6f3b6ce5154560251f2bc6adb4fb607d70c342bc1865cf0931869c2cf3da644d8776e8a23c2b45695baeeaac289a7c1e60c07cc49cf6e13935705411edaca4a8d62ad2f70f3a2e44523db22c31725a5d33ad9d49a134b1e273f62dc25c1ea78b42cecd66"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_5(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7229e975b28980c469a0ff2c3ef3e451d7e953ed02902978"),
		nonce:           decodeHexString(c, "aae67b87c06fb82404d43d2a"),
		personalization: decodeHexString(c, "b10a561c1bab3579c73d0d9addc09524b09adf59e2ae5513"),
		additionalInput: [2][]byte{
			decodeHexString(c, "44aad47c5c47bd42d49e1e4caa71f37e65e132028ce9aa0a"),
			decodeHexString(c, "b5319d958dc4fcd35d486b66b5404772298d3977c43836f8"),
		},
		expected: decodeHexString(c, "c0f9d2147a4e1fe67c2dcc539cae68b71b7506443794b187b354c5b79088b2a7668fa283745fa72c678baffc4a85a5df25f36b90fd51131270e1e060a980b77e73eae8ba0ab3906ad8b8f68802a4c0f0a224c61c7d25686c008971b02ac64d79b712255d9ae2e101bacda80dfbb86368"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_6(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3cc5a6f7cd819d1ec704549504faf7193436bec660c5c69f"),
		nonce:           decodeHexString(c, "46aa461ef2f388d96c2eea12"),
		personalization: decodeHexString(c, "bfd06b09238375936906c0d77641d14e1314ccecfe9f6250"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b6a6d541100a8c75ba1a32c7ae4fcdbae35b93e0a8cfb338"),
			decodeHexString(c, "5312857c11926becbb30a79d65a561031b4af9e82f5899b7"),
		},
		expected: decodeHexString(c, "00abb1109e8a3a4c63f4d84d10d458461c8d84a503bf310854733bc75d8f88c002fad10375c9262760602088e74d481a63bf0b7d8cb30775f5feba5184f24f1d4dbfb26a9808955cf9fc076ab8780d7daf5ce8f2276ae5fb0b198ad0e138edeeac9152fa17b88530db1547777d4d7a40"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_7(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "2aa779757c7bee97711302922618f38d472566ac1809aec4"),
		nonce:           decodeHexString(c, "fa7158354e9eb586fd883a70"),
		personalization: decodeHexString(c, "978aed038578af79355d2fa2e01860f586c49aa8feec0e04"),
		additionalInput: [2][]byte{
			decodeHexString(c, "832ff8d776a44d4f96d050d1f43e829592176aa9efc47927"),
			decodeHexString(c, "145bdf6bfdbea3ff4f11a423f5db62f1c9bc492e6ca86b94"),
		},
		expected: decodeHexString(c, "23d87eb9943a92ecf15b7aa77c9858e410319b096bf408adaebe9f044deed5beb32488b1eb6f7f46ea16b2bb93a018cc945c785b279e7eab82077e51db2100df44974c5338f06c8ef9992b324707c2f9efbf5e738966e62222fa2f71b5dcf9b375914145f7066c4429ade18ee648f987"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_8(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "be05af7bef569ccd23529216809dabc58a4890b05fbe5ed6"),
		nonce:           decodeHexString(c, "8f00a651b8887b9dd2f1233f"),
		personalization: decodeHexString(c, "67357bb357785a8d53da2af35ccf61dc4820608fc3adaf9a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ce79faf02293c87add7c63de609528082d74691e4eea8d0"),
			decodeHexString(c, "4975e65fabd309a6cbb80170bc05ab5ba313ff13775bedd4"),
		},
		expected: decodeHexString(c, "6fb057c696b4c8a47e1de3f345148c0714442ffdbfdc6b328ee72c2e82f0da2a22a872566b57c03b1f0cb41b70e38f0d4abef72bd77fa04de8635a459ad5420ed0f1dea6fccc7571427dec89624f6e5f12705c929a02610236dea50ff5bf179a299cec73a41b5ae965d32c8ca9c055c5"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_9(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d69ea00a8560b148a74fa063aee732866093d7876b709ab0"),
		nonce:           decodeHexString(c, "42dd2d9b70c0e17555f9793e"),
		personalization: decodeHexString(c, "e04c16d8d6f086a2cc528222574c69488088d76a9a12df75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe68d478fa1ff0c0a8853b517796e952e1a5830a76b56c2e"),
			decodeHexString(c, "5f0912ba2d7f59b98a94bb95eb16f9982fc88fc3dad5debf"),
		},
		expected: decodeHexString(c, "929ced08c42433146df7e957aa6f67079f1c7f330d828987f743169c0f587111c2d7217109a4b2d39b30598b7ff63cd82aa6c48df775dfc75f4d24ffb23b6ed81620a9ee41c7cba0c044e6042ad5fefef68e0ff14b8699a37afe1ae19027a14922225670a76d9e4075ee48feadd44ea8"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_10(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "cd8667a51aa1fac667c4054df4d14fa897f4cb33fa10f6f4"),
		nonce:           decodeHexString(c, "e9b2dffa974a3fb7636d3610"),
		personalization: decodeHexString(c, "89335a54141b74a4bfcdb1f51d3a37dfdc0fa0630d8a8a33"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6ed975836ae8301b9dbb0de788d3b035dde764ed1f8bb5f"),
			decodeHexString(c, "b0cf5fa3043cf9d059eb90c4e575a8f188cfa5c02715b643"),
		},
		expected: decodeHexString(c, "1520ce4c27aa4717bdc136be975faed28222e60af8de42c3f3694f6af93beceb7356140ac4bb604b8a9d8768233c13f9e7e03240196bc743f86842fe093b195a847e2d55a8b760bcb2aa6747663545cb0f42a49485372f3d2fcd9eb0e5fc0de4c05153963b8753fe4bf4cf7487b7dd87"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_11(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "479d6438ac864ce7239302ee9acd3bd15e392eb171a2a78d"),
		nonce:           decodeHexString(c, "5667a25cdb29f88061ee2552"),
		personalization: decodeHexString(c, "ec0b576e6c9afd8664c783ef7b187b7eb4f034f6a219a1ca"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f4055aa6bddf9ef08c215328ea8ddef66db064f2a2c7017"),
			decodeHexString(c, "d102ddd02b14b95608c4c814975fae3b6fca57fb66da542d"),
		},
		expected: decodeHexString(c, "3b945012f9b35fef79b52b9da4d9ef3b2b25127ce2d8bfcfb64bc07d729f99724502c254c6e4b02c0c0b7c8f8aeee9b2dfe8a651d1c2a098cda4164ebbf68933f0250d52c8b7fb9619eafa039ac7d2a51b0284ababa7c477d4e0aabff365b59c7b80ce4ebc081d41ac5c839709a5823e"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_12(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e0ba67211aca6d78810010642e73f4e30d67bf25d48074fb"),
		nonce:           decodeHexString(c, "9f07e64c1787938ea66c1735"),
		personalization: decodeHexString(c, "e97c45bf9edfaa6ad88016fa376cc2f43f5fc44b0244617a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "23e2148fa6d8ee5ef4d876788e37cbe7ea19cd83c1814ca9"),
			decodeHexString(c, "b34f2653541958b6a2877d448a04dc83be817389e4a9b68f"),
		},
		expected: decodeHexString(c, "336eb3c3b4fccc3c2c8a455348d6faa393599f9190467731fd3e0e1338716ed9a45a150675964f40107869df5de8774dd0c52a094354c06e9f06b483828f3e7c1db51f4af8be54d969ed832387622283ead5520e404167d594dbb4ba143fee7ec166535df49bd43a1b9696722b97ad48"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_13(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "b7a302a9291b09a0bea88e2bf215d38028dc9ceec4f044b9"),
		nonce:           decodeHexString(c, "18669a5360a5e238a30ef20e"),
		personalization: decodeHexString(c, "aa10ec4ca4feca7fb443a3316db113b80d8e8d629e7952ab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "576321395c959c1f417480659dbf4f09c4360e2cfbb5c0e4"),
			decodeHexString(c, "a6cea8017225b5e7254712b41f5cf1ec7f14f87da34fe6b7"),
		},
		expected: decodeHexString(c, "43d9b18c335e549fbeb6664e2a2832303792143f166d38a9070e3f0b1b46f01ac88f8f06ff64d0d9c110632dfb81151b4a3a4816d40b97d32ba2c07647dbc7e5f07fb2134be939b8eb7fae0026afedfcb1d68213abbe6dc879b2b69d705369cc19f59895e4217a680d5b8c16dae3a856"),
	})
}

func (s *drbgSuite) TestHashGenerate91_SHA512_224_14(c *C) {
	s.testHashGenerate91_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9ef357d601bcf7f14df95ef542fcf28780754698aae5918b"),
		nonce:           decodeHexString(c, "146b75a29814266bb20f6825"),
		personalization: decodeHexString(c, "4c0391c33892d336bc615296033cc62e522bfdd09d8a94f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "69720682d68b7043c331b889ce6d3d83aa3d33846e9ddc86"),
			decodeHexString(c, "350c63e7b01ecff4aa171f157c71f89a55637c2cac0253e8"),
		},
		expected: decodeHexString(c, "63fc9293971bc8dc151bcc2df20e4b5c7604138e4df49fed323c9f1cdeade3d5d1c8bc89e507e5da1f38c1f76d968ee45ba53a3da35e693e00afd683817ee7da5cd2b0a657ac6cf95913c859c6b4a15449fe9045a3af03cc198cf10b2deb67c5c3e9cf9a40b8251de19c6cf3114bfe22"),
	})
}

func (s *drbgSuite) testHashGenerate93_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_0(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "65aa6a5872a8e1108802c99f211462fe7adeb1e348a8d6fc"),
		nonce:           decodeHexString(c, "ecc22bd1aa782b3d6d130f4e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee53ecd96e15fdf69b5a2edb0a36c24824011611f433a7fa"),
			decodeHexString(c, "f64c72fffd55e3ad838c058f3a466910e561600007411b2d"),
		},
		expected: decodeHexString(c, "8ac5a2975f2dba1078ffa3e69466187dfbf06efbfa4681ddfa3168610942b9dd08d966dc68e70d7d17b80701d86ee9fea734ad31cb6c210feb6cf69b31e0102f2f6e0e79af2846692839f19e82cffd1de596cc0875e20301f70b11b4ad6a96f58c51d0ef343afed72c4cb2b3a175972e"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_1(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f586533d6374faa99fcbe9d91cb784452e3830b250a212a8"),
		nonce:           decodeHexString(c, "f956444f10f121cce327f877"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8458e0de3709c4ddb8cd854c0bc2401b21bf394a1496f60a"),
			decodeHexString(c, "4fe0d84807b34e14e85c1074250cb4e7e008b6719b5e4606"),
		},
		expected: decodeHexString(c, "efdcd9d452ef1467bab77046a628f719251a3b39c9337f1900cd14619ae39ca813faab5b5821647b13d3c4112ba946956cef41caf212e5693ffcc85af393790e14fa9f7f7a983728d9042f48184bc2b1dcc6571ec6d064925a0d6f1b8d90636e5bc2808e9348f85cd8c17c4c472a4fa9"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_2(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "58840a220de5982145beaf05e64c61ed8d3972873f143bef"),
		nonce:           decodeHexString(c, "a247036f140d25a48a357b0a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8412d60164f333d7bfa233f3de9f65cb0682945bb88c1b7"),
			decodeHexString(c, "9a959cabd4640f3fa9155b6adbaa190eb14fc1334e6e9a65"),
		},
		expected: decodeHexString(c, "3d8085751a7dabeea14547ca92715184742a93eaa265df7eed43ce7f8ec9cd727240626755a9f188d92163dcffc543aebab964b31becba3e6d0f93bf7aab1c3dcd145ef2243cdc26aafb15904becaf3eb6954025513caacff75d565df395e09d0cf0da6fe8cff83358ba2eaf4ea4e23d"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_3(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "a085701b2b400dd410643b978a01f102614a1a89b6655027"),
		nonce:           decodeHexString(c, "b66ee045db56a35bb7dbe1d8"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c252a8784fb11d10b0327dfc63af720ea8c0772f930794b2"),
			decodeHexString(c, "d45aea79fb2545fc884fdaf43fcd602b399f12abe0f12b73"),
		},
		expected: decodeHexString(c, "b3e956aa3d60f0d773c38b8ff4057923cc56c03085b5e0257933a0e60c484872543f37ce0d72fcb49aa1db4dfb663eb81698e1125e8747cf4bf092d9f1db342e4923ecc0d2cf4cdb87fd5c3fa6bcd2537c5600dda3473de3f6726b12ccf0d014ccac5c8b4b5144d78b3b06eb711ed5da"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_4(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "fd33c7a17b3ba0f2396ad812d33b67ebc7a9b6eebbd6a35b"),
		nonce:           decodeHexString(c, "9142ee33906c41749bd93828"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "70a76a263f87afec96e77576c272307058fd46eca409d5f7"),
			decodeHexString(c, "be7501299de2ba69cc6288139710bcae9d9b141730d2534e"),
		},
		expected: decodeHexString(c, "a620c69f20f5a418441b58b1cd46f7184abdaf698a3636d9a8d17342c150dbc6a23211b0abb11403928c29176aed880e4798773ec7d0ec88bf9da04cf72ad155a73c72ad24538f4604de18d03502394455cf71a1a50df13f6f0d269dc78a88a77a843ef01121122583e740b4db3d7a33"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_5(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f58229a0ba3a66bb237970fb71bedcc286cbbeda4f5d3f01"),
		nonce:           decodeHexString(c, "cd0c9ab20c7ba472ddb4daa0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0610b1e755e09c3daed93b2865618a95288842376f4b1b2e"),
			decodeHexString(c, "80f9038ab8f8c5c5c57e8eea9ee47ea304609412f1c27042"),
		},
		expected: decodeHexString(c, "f881957f68798e50085cf8e6686c3f2ba0e22a1a0e55bae9696b846eded49e9d69052b8100fc79b8ea6e42bb5d5faff0dc42e91b70223a21ee37dc7c78a66b2bf4b735fcbffcc65a6a9112774f34b7cf2cd61f394d9ebd12bd79cfc1f90fad98790458952e3f08443292a51fe23dcc45"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_6(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "3f67c314b303c394b11199a366bf29f49422dc0d8c2e745c"),
		nonce:           decodeHexString(c, "0f77c08648c96d2f9ee4e52b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed685ea2aa60765766be26fc9684de4e60a1938f5b9767f0"),
			decodeHexString(c, "84f0341e1783a19ad77f82012a8aa435b424420adad4c9a2"),
		},
		expected: decodeHexString(c, "5c67d72cdd9f696b4953c090cae72a7699d8ab3aa7ea5e5f940683521838415b853eaa23f4451a7762711a24b92fa67b7eaecc2df32b997135f995f51ea3287c3951e10376360b900bdf223763c2c6182ef557ae075ff826df2f0a13c3e10653143c7fbc446d0120f9d4934ea9750180"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_7(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4e2f85e0e30d4b77a81fe03f0072a63e14fb56d91d841a31"),
		nonce:           decodeHexString(c, "b4254543c0402772b11f2b33"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7eb4cfcffb33bc5c3e32db92a8873494e1f4b3ea9f24f315"),
			decodeHexString(c, "68400bf6c7d1a25ef679bd47a561fe23edf62ed08c456c47"),
		},
		expected: decodeHexString(c, "4e55d17a5f4ebae007e0c063e0d2f784a7b90c98f4babbe02ca35c136c694e1ed728339f09dc0a037449baa343b76d5ffa9727e1e71923b3fd9f379606e5dcf48142835cba7c0454eec01b75ffdcd54e06d870200616a4199927613eea35d57580d59cb106e72868f16620a9c3a7e846"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_8(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8e00284b79522163a48d08458395c037759d8d3cd5d9856d"),
		nonce:           decodeHexString(c, "6002a78c5b84ba504186c0df"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "77460217b43ac295e28696069b50052fd63330ea0fb3b729"),
			decodeHexString(c, "16efa694e5238480cf8b396bd3fff50153b36698f34d24f9"),
		},
		expected: decodeHexString(c, "63b0973c54b74abcd4279007de0542cd7e9cee7b7349ac2ee1fa011858713b8a0f7d0b8f87ce0917f062dc64efc526100e1dec5a9573f91c3c9bc6e9efdc0e89ba2a41fdaaccaba9cf05e8afbc5b9ed968a350e4755dc2051cc90f7a0bfac9f4f780f25bbac226be0f6535913dab31bb"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_9(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "144dd54c8a1496d4fa8b1bbb1a96dd79b0fb717ffb47e9c1"),
		nonce:           decodeHexString(c, "810046aae72f65d9064a428f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0700d7161587fb706398bf4419a7a8fa25638107dc36f618"),
			decodeHexString(c, "a5a924bdc512ab017844849aa171553150e95bfce83303dd"),
		},
		expected: decodeHexString(c, "f385b334700fcc0e600e15597381e87b384e84daff8fc4a814ced3d783be712524f8476afa5970a4aeaa3f244c56aac3d5a43cde5cabc15b0f8d158e5a270b8f3565f1e40e909044dd64a64202cc566c8e16ee763b6a0b089b66b3110903e24759bba8816b7487254a10e62b5168dbe3"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_10(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "941ed4526f9c1b0c70204874012547423154979fe611688e"),
		nonce:           decodeHexString(c, "79b842e98729ea5b57d798d6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3a738164f72142ff69c398eed60f5dcef2e1141716bdfa9c"),
			decodeHexString(c, "6aebb655a33a336e2c2fcc0b98818a0eda0d631ece3cd461"),
		},
		expected: decodeHexString(c, "62be719e892cdee6536ff7eb77dc2531fa46668da978133dcec91cd869e0f994f6d2dd54ebebb3e848f8223d4517f399d447db2f20f0e3377c28f6a0cd61b1de3a9574ab2c17d3d94f6acdba42bb1c11d3ddf208da0f29fa4c9ca1b14901f8c656e026c8d50203b52a4e4012b43aaf69"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_11(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "d793374feb6e4fa1294d399767807b8e2ffd6be4fb715dab"),
		nonce:           decodeHexString(c, "4e42459836441bd7913b29aa"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4aee54ca6aa9b8896b520de8bce08455f30f70ddb84c5b6"),
			decodeHexString(c, "4a7df785f01ba74cd1941b61631109722e24dee8b63630fc"),
		},
		expected: decodeHexString(c, "e4c5da863bcb51832590d36149a7983ccc729aa221a1edf9c7d189b09ae6826bbf2c1a6083ed6d7a569f5820a2215537432481571d6cea83853bd6fb6fb5449eec5010022962997ddbeb6bb18ccd82f752d5a578ac23141898519de20b55cfab16b7a2468a149ec8bd77b327d4a47cc1"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_12(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f647a6e9429f55bf8ac8b2341517e86508bef8fc965df362"),
		nonce:           decodeHexString(c, "06a9eefb20422685246deea1"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfa6870cf6998256855bffa6fe90bee3920dca2295e7e0f4"),
			decodeHexString(c, "b2f5cef072c18e657f55995471ee8f5ffaea95a91ee21062"),
		},
		expected: decodeHexString(c, "877bf989e9a560f52f7ea099e472c91a0adb3fb67c4ca3ea042d8355978dee05dda365deb6b8b6bf1608b6a2e8debe8428f452fdaac7cb5c6079e604b907f73090c8da4b844e58a55ee427fbcebca1cb29091389cefb77147fb94d27412fa3349bf66bc6ab9bb70a6b7eb0a6a81fa101"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_13(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "16f7cae9c2c2e2c1803091d15ebb1a06d1968602a121a152"),
		nonce:           decodeHexString(c, "2e727ee6652a0a0b3bb1d0c0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "55a44fd8a9538a4cb2fcaf06a5ea1d8e6999b7d3aa993e8c"),
			decodeHexString(c, "27fe6ccb8fd9f20e567c6a733ec02d664e76b0e85a1661e7"),
		},
		expected: decodeHexString(c, "f9c5f9421207e5f18066a35deaa492da10861718aa7c4fe42d671e2ef1553b2bf617b990ad8931b6988406744030a00702cfad172daf5afcafd1d9b73c733924ebbdb3415145904485ae89cfcbba740bc181694012da333792ee72c83cd9025a82fc82f1d062a8b8545e33d1e87e0997"),
	})
}

func (s *drbgSuite) TestHashGenerate93_SHA512_224_14(c *C) {
	s.testHashGenerate93_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "69fa4745f5f7c337984e593bbc765e26ef05ff226e0c875e"),
		nonce:           decodeHexString(c, "d1d28100e997b21d1db76283"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9b6c491387a2394b94bfa8b077cd43bac49117e94afb9616"),
			decodeHexString(c, "7c04bea824d8aa7b19facfeb3a676eb51c31d7b92f0ca1ac"),
		},
		expected: decodeHexString(c, "332b884c8edcb260c535a218001d421e190d8b9c6b856fbc5a4ab45f92149487f8563138312a42487969370440675f5bc9b21a75d2a8386867fdf861c8650e26af47c5efd81d9fc39cbcd44ab0f4cb10325fed6f5b7ce5d8111ff71e5d78c7d1f53410e5ba492b9f68ca55325ea8b318"),
	})
}

func (s *drbgSuite) testHashGenerate95_SHA512_224(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_0(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "71aad2885a565b570c4176bd3d37ddae4b1035e979632f38"),
		nonce:           decodeHexString(c, "1326c93a95ad7b56f9b46cd3"),
		personalization: decodeHexString(c, "3905e4dada3336cc9a91b9c3d5907626a6d890828d451766"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea3a7a2197b528cea118e13217ef578e9b7e7f475499ca8c"),
			decodeHexString(c, "15e3a90e20cfcb1dcd2b2ea97b7f89f65a0278d1cab82e1f"),
		},
		expected: decodeHexString(c, "ffd25749c559506429f708e1a170337d21517b9a98321b8f5a22cec9a17d9fa6cac217747a37ebfc00e054f57e837205b6fee567474d93efd295d44c47eb8275332e8dfb5bf1536b1c6ef4e589a07ed3524e4b9bd6a6abef1fd4b9b4cb5b4f8796a7a76d1912ce7f80fd63e0b91bdfb7"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_1(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "f3240ee9d4c06c9885fe055d951e5938e39ff56a2e0068c9"),
		nonce:           decodeHexString(c, "6ac015a92282a6e87b7414f0"),
		personalization: decodeHexString(c, "5831f91eb9e7279a66398a8ea6f43efd3ad379d6b951d327"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a4f6fdfe4cc132cd57ed4b3f674b2220ca0c1196d344cd96"),
			decodeHexString(c, "85dbdb01edfe331d4e8e40c52c3a28e9d52aeda347ed2648"),
		},
		expected: decodeHexString(c, "c4b967554913bf365a7adc7497f646878c6cce9b1d3b36ff2492275bea44659aa33df69404a3a2957dae94bde7b095542fd8aca3f3519b6feb71e825c0b64a820d56a63b8492a6301998f99533c22193ec09607152af43b96c6afb4490ec110fb27a957c0ab6de3a6312a22a1680d5a0"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_2(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "39bbe3300816ec9eeecd8f81429031a1b17d24cbba723ebf"),
		nonce:           decodeHexString(c, "ce22945857c81e05c5f52cc6"),
		personalization: decodeHexString(c, "1e14d7ef323eb8e88b011cfce216ebe20dfb92ab925a22c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "344aa4079ebd79d2288cced93f8fa333217944b4e9e1dba6"),
			decodeHexString(c, "20fae2a861c0a4834fb8b44db1fb415765973556f97108fe"),
		},
		expected: decodeHexString(c, "1f2c30eda5715a76a28824f2c1c216bb5eb20724eee4a944cc01f8fe841cd4622cffc338280b019762e410a32e0e4b7f6a19e76c2246fdb269be659d1cef747d480a0cea33b7fafba1d4afa9fd78e8f49333ffdb0a70ea30cf918344167809c0bb93a89e06049ddc52ec0d53ec8fc80f"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_3(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8c9b12dbd81fd4ab1d0665a71e10241e655558728ed5b7c9"),
		nonce:           decodeHexString(c, "faa23fb3916affe38b6c55b2"),
		personalization: decodeHexString(c, "19193fd5c1adfa3faf2fe584732bc8538120ac0d0f243fed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef5999f1b84b22431641312c590e5a0b189285f74f729639"),
			decodeHexString(c, "807b35be920b6869b78ecab63add9ffef1905d226d67de89"),
		},
		expected: decodeHexString(c, "14dc7e57331d5ac76399c303df7072701993fa421dbc78051499cd5556c8ac69b1aa6e68e0c08b65c95342c589d2cc163c435eb637bbcda64ae174bc6cb7d604011f7392396238963f92535ed11d6a15a268310123b5e01663ad9ee1bdb15f05e174b8edacb9437fa064cac7d5f35ef5"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_4(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7c6e8ceb57421268d2c28ab2e37e05f8cafc6d7882a74e80"),
		nonce:           decodeHexString(c, "342c8eb099686b2ad2b8a04d"),
		personalization: decodeHexString(c, "29b812867dbc955b73f4f46cb488878ea001229627466c64"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a00db37e1e20d36218213f789b9bdcc276b4b4d130a3aad0"),
			decodeHexString(c, "1a951f3ec9c0efc7f87fb923972a6037a7d69e39ec1415fe"),
		},
		expected: decodeHexString(c, "1a26322877750fd40a60f896fbb5cdfabcc39bb70d28100a125d4ae24bbf4abc6cf9e30e107bb6e9bb499e54423e220b51764296fcf5b20a1b131ebbdadbdfa4371186918ca4c49cb2b3be37e3f472b3fad4bd05dc5402b35146e68bc025e5e708e54b5fa26d07e34d4d961b4a35b79f"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_5(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "31f53497694c1be05b3abc9715bd5a92a040a6fa5c100eaa"),
		nonce:           decodeHexString(c, "f9d772d0e69acbe50fb5b937"),
		personalization: decodeHexString(c, "989c7384d25ea30e6ec9900f155db75039602455645473cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4de1de19afb424bb0ef45b84a68140f5d835b4f2779e7ef0"),
			decodeHexString(c, "be3850b00cf2b2331e4060f23df3d62d05165523d3363eab"),
		},
		expected: decodeHexString(c, "a0dc1ec87fd5bc91489abb55aa06ace6d5ff6ba2407d81463203efc25d38ab8ab5fd0ac89668b857afd07b4ad2ccaf62d718d44dcacfbe7b7e614b0b8fb342e8b614c9bc04a4d73e1bde463ab7346c1edd80b04e87d5dfbeb0e082d0742e35136c7d7bea5bd7f33e2357a7400c4456b2"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_6(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e4d14ee44b0853fad4e29d866db2a7e9bf035448f23bd4ff"),
		nonce:           decodeHexString(c, "b2dc11eeefb0d44925067354"),
		personalization: decodeHexString(c, "1175b2f067ed0912e9e7cd4bd6fa11e73598a46dc27e1099"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8051fa04a09ccf1cdc2b41cb4799b3f1318f7d79ceb1292e"),
			decodeHexString(c, "b75e05f9a62967a57b8e0b3af53b4ac5b7a9c9f9c96b6e0c"),
		},
		expected: decodeHexString(c, "cbfcc750a474249966500493ab5239f68afcd7ebcf613f7998c74b3b7cf0afdbb1d29b9b07f00e5e0c38102558f34e2172734c19a663c7f0206ed856657da0b73d5de0168fe28e47681279e9d7f3c72aa49ab0f8306881c0f684ce8a6f75b1e5b87fea58de78ea3b14565ed6b97c41c5"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_7(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "097b51a223801e567bd235a113c4a711c6a5b0a20dc44d6a"),
		nonce:           decodeHexString(c, "4ca440511c94f058063f2b7a"),
		personalization: decodeHexString(c, "91b839a777fbc2f12b1a5dcd72cd4500449174cd217d967e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2f0390a94b16702734b3ad8f08f91cae9012fc1e5281f129"),
			decodeHexString(c, "21be091dd429ad8ff2ba1609b2eb4a99bc654c23433acd24"),
		},
		expected: decodeHexString(c, "a116b26f9a9429ba9894f37f9b0b388bcf34de7092743ce338d1fddfebb3ed855d3f17bb2fde486c1a7789f60998bab09d62b87bcb157badf644dd1f4fd4451ebbc6fee984605c259246c9aa8e0750f585248e9dac0e7d935d6de7479cc1362b59443c876f55d60ff0b698de1cfee61f"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_8(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "9c0e0890d95ef33842c657b1311edad3b4ea0f1fcd30a77a"),
		nonce:           decodeHexString(c, "79a62f9cea1c924fd736c4da"),
		personalization: decodeHexString(c, "7f63c222d598bd3dd7a59c8b8e4c37d2fbfbfeaff3319f60"),
		additionalInput: [2][]byte{
			decodeHexString(c, "89a60778310484079eee02ba66f983860b29aa18180bbc5b"),
			decodeHexString(c, "ee8adb31d6d21546a89d52e2eaea8f33c836e345d046395b"),
		},
		expected: decodeHexString(c, "0e3c314968b31a01a0fc81314ed89fd253be80692e4e6e55405f889f304cbfe4c688be60b81ab09f752d9820d139c07e7653dddd1afbfaac5282405ca96077da102415a18137a569ba9b655204a3805e6692f8bb095580d169c91c5aa8eb09ad0fc3bd65f304d8975679c70d6fabe3a0"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_9(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "e6a2928b4a18e8daca7a562878124c0af34ab51701dc5ea0"),
		nonce:           decodeHexString(c, "fea9ed86d8693e2cc6beff65"),
		personalization: decodeHexString(c, "ce0d8cae530701ebe5cea88019addaf80b94a6890ba141c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b17761fccb5866696e0f98f6f62330b12eb4be94ebf40f1b"),
			decodeHexString(c, "c5b0ae9b5807d9232382e34d6a0b5deea585f9782da34bea"),
		},
		expected: decodeHexString(c, "48acd3f395ac7602ae7b840a62e419a48c28ce038bc33cb819248c422a2c204e277ddd52c4a94cb8ff53d63fb6c6f744a0363871d99cf6bef8fdc411af04af8b1f7a218e99ca4145ef15bbbbf46c4cc3ab1dacc84b113e889807c6e01c7e862116b37b89fb8434a7e5ffc2fb4324ce98"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_10(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "38ffe6458065939c01749e67b152c655ced53918f674c656"),
		nonce:           decodeHexString(c, "5b7bb10697c8f073fe335823"),
		personalization: decodeHexString(c, "0df5ade12b46f18cd2e512d84d8167e053dfea1f483f5716"),
		additionalInput: [2][]byte{
			decodeHexString(c, "43fdd1841910ace583719b7b9f32824bf6a80c52048b4925"),
			decodeHexString(c, "0a117835ec5f6a8d9ca511333288d3ef7e2c02fb38529304"),
		},
		expected: decodeHexString(c, "eebae18396c6f818e20053ea19470fc8481c466e222a6af0a095e70088f47e79ba41fd8c633da751b03b5a9bdcee8e25853219f4efd73d1834f0719bfaac8bdd0c8051dc5455613b5d8306bafcaf21a3115120b7026f1c2ac0ac90688f5c256abf9a8992b664aad16c610ab17a413213"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_11(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "4b3cf57127fd60c496f9ff730d4dad87b47f2ff3b29c8c50"),
		nonce:           decodeHexString(c, "51b0e321e13768574caf7000"),
		personalization: decodeHexString(c, "88bd90779866d8ab9e4ffa98ea65980c9bf1a245770fe63a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "94808ddeda5e1b55fa92c19ea223fae136df2c57d9121824"),
			decodeHexString(c, "8e822717f48a08aacfe7025352bfad8bd102cf5b19ed852b"),
		},
		expected: decodeHexString(c, "14a095faf1c241df1adb3d01174fa81c6910e6a2bd959b547269b5b5b769d11f3c9f7d5543f551dcaa120742ba5fdfadd271ab5f99a3983ec39e79ef353eb9fdfd395425b311d184bb42ac7a06ff4d90eba47b11618b6850810afb783c0f7b7e6876fa64cf23c2fb72387f5253e516cb"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_12(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "8b46ed6be54268f358605cdf767d2051bbf6cfdc594f8f63"),
		nonce:           decodeHexString(c, "2ff298a082d052f82c35228b"),
		personalization: decodeHexString(c, "53a419d0ab450d06a9a1a2151fa0a9732007e648cad54b13"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8a39943a68607f13be4a5c68423486332e245477b4003e75"),
			decodeHexString(c, "a169e4d1ff3d60d51fb67f25321721e7c3184991f5bc846f"),
		},
		expected: decodeHexString(c, "c6835da498d59443175965d53f16a2d9fbcde43a430e4649f722fc15947641d008ccc3d3e4f5b10b8ad988466e09df6ba4121a6ca7f0df69f141f8262a68e9768b151aa05f76a1858609f227bdb5562e2e9c74e59cd5c01a8a4a95932649fb63f2beb7ef4fc059a1015fa25b18cbad93"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_13(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "7e9ce1e73ef64c50c2d9168a5f63359e4e00fa68dafb091f"),
		nonce:           decodeHexString(c, "786f10ef3169fa51ecb28b30"),
		personalization: decodeHexString(c, "2ef5c1bbf9d54aa09061147f9ce2944f5bc83a66d43ddd96"),
		additionalInput: [2][]byte{
			decodeHexString(c, "861422295fc96bc5507b84b27f9ffa1df2f06eb61ce76d56"),
			decodeHexString(c, "c5f124b884aa25ca6f891fba4bd82de45f884aaa518cfb1a"),
		},
		expected: decodeHexString(c, "0e3866922f4ba6fbd89798c96d20a01176edc76c1982da1617658ad162e607df6710aea1788969016321fb5b29afb30e13b061ed35cdcf118e7ed9a211aa466986c80d464d531a9b36ab4d1d0d1f9fe3e3426e7e5edf397bc1598a17adbec1cbe5e889e2de0d77ac9e452dfc0427ee33"),
	})
}

func (s *drbgSuite) TestHashGenerate95_SHA512_224_14(c *C) {
	s.testHashGenerate95_SHA512_224(c, &testData{
		entropyInput:    decodeHexString(c, "5586a1843e058e0964b76445f61ae4be6971cffacc05edfa"),
		nonce:           decodeHexString(c, "3143324d2f3c14f6069db0dd"),
		personalization: decodeHexString(c, "57d8bf22e41c7ba6e7bcbbeff5774511445f070da4083b14"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b8725447ec539ea4a13c47b323f1d6f435ba7e624dcf5af"),
			decodeHexString(c, "86d30af40a7a395764b8b69f2656954c7c3f1c30b2b703b0"),
		},
		expected: decodeHexString(c, "2fb2f24b2c38f217232dc22ecc7380b8240b05d2c7bc0e3dfdad268c8c10912a92595d70dd98e7ecdbdc6d7bce6c72cdebd7e121d75de8b6795b660be9096a1f24a97e9c5344c35f04451dbd8d9808c7a84c6fbafab6d060026490d492060f052fbf21a3bfa2a8e4a40db58672ca52ce"),
	})
}

func (s *drbgSuite) testHashGenerate97_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_0(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7350612ad286d0ffd637cfdf7c86402e51ceafce1f246f79c24db94b4ba92360"),
		nonce:           decodeHexString(c, "0e35c59815abc8c8662e27c87a3f6a87"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "86a2a7faa08f5cbb52143a34ee3e66a6fb234e11ead462b94b264f25af6fcfd3"),
			decodeHexString(c, "4d748d317c3734890b77946f3dce111e7378203100de5f36e4d65cc4a85a2635"),
		},
		expected: decodeHexString(c, "9b43ff0c4fc6e82cfbd9920839a7a4f5cb0d584419621eff4fdbc64b09a29ef225c1df78b981d415782dcf03a47274a3efb35ada443a024a524634ab831f206a53c1c0c0c8c9f46d409a0b0daa62364636dbe27ee2ba8cb4cbc4b5f82f64c40dd7fce1616b0c91eea1eea657e855e6042470d5fe35bdd02133c3edf1c73d6234"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_1(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e043970a06db063de678647767995302b7dcc3a62a86a41bcf758803cb580233"),
		nonce:           decodeHexString(c, "493941e49c54632091416031aa619ce5"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "14ef3d89754ecd20c4f45dfe336d505cb2d603854e69f7a961c6793c68c264dd"),
			decodeHexString(c, "ad3068bf86f8a39b26c884821676bd5e474a18af03e36231925a8f194d5ec9df"),
		},
		expected: decodeHexString(c, "3fb5ab8f960192f7661a0e5ad16246557b3bd076eb236c88adb0b73a8be1eca0e7e469864e224721ab691332eb0cf8c001f4f5ef17e46e98af5ebea2fc058da7b745ccf407f4a13169b1f35c416ddf7b4c42ac41c35722c68c5e89f83de8bdc303eb44117082a52e2c852ea4859552a07a2a3a3d51dd15e3dc6bbf4991876a15"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_2(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f5656dc9c46acec0a22868cf2e91c85484a38d39c770de86e4234ad2d338a797"),
		nonce:           decodeHexString(c, "922b016bd1d80ecbf1134ab9fc20314b"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9d160d63376bd4412fda64182f7637314a8fc95cb1917d3760948e81e3fb1080"),
			decodeHexString(c, "91ef6e854fa188999bca9862faef791cf142abf1f5b33ff0fcf368876d673fdb"),
		},
		expected: decodeHexString(c, "45258f1ec68c8cb9c4ab62d08d493dfc2fb0a93e7eb28f9d5fb0795290ac9fb0454f61ba4a72e89a1aa22132b28101bf60755931388e000bb628eaeaa1a30b93978c632336fd8598cec0348c570cf56b2569f530c12758551803d602e47972a31a1a3befdcfd78161f65973d978d1d33607d0cf404b30773eb28de0fe04dfd08"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_3(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1caa8f2ef330484a0009447a646e18924b40fc8ed6a67d6b1e484b1e26d67cfd"),
		nonce:           decodeHexString(c, "b5989b33675b3212f64722d4bc8fb9df"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f55ad7eac730e1b5e96f7780e28f9a42b23c1e93671f3ead77fe93b35f5fb50"),
			decodeHexString(c, "fd9cf7bc6f3751d8a28f8b9c6db953fcc20500e01f923722d0b7b09d65aefe39"),
		},
		expected: decodeHexString(c, "29b6e72b5228a4e67c40d0d618214b16bd8c008e58bb8f65ad91067d2de6a42e4c8b4f393d2323a9b8219d7c32461a6062f46657f6903752cd9050c0d6d4ee6eee5adc30aaf540e4777562e9847522d4db31daf747fb1ba979f14c4dac4c50a3afb2bcf651b048195de8593ce8949738c2e657cabafa85699858e0b52d62f085"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_4(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "eb331037e2ff46f70214308a3e1be1695853c864d1ee92c659b8c4f0dc9e65e3"),
		nonce:           decodeHexString(c, "cc2f6273d208c7a7e49ce09ab9792162"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fd6b20be7750acad0024cb7408bc8cd23a43fe5c15d92888f7b96aa383e24a9f"),
			decodeHexString(c, "44f1bcc19eb55ffcc588b9c2507cb98e103f2bba0e818032b2238a168ceb87f4"),
		},
		expected: decodeHexString(c, "ee1eeee317978fd1645cb4ab0325c640893d35b3b57fbdc7811788d681b964ddcda519c94c7a6be344758483de4d95d04268b20bacea0f1343d5ea6e5eebc6d9ed9433a0d181461acf7f3d8c6da4b6b47226f1d92eea75a6262608d8a5cbfdd0b54896faa7d78036822e3cdeb8e286a1012f16a067d67b61e95ffcc1f945a3a9"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_5(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "cc00738d8b4dd553bb844eae3e658a36eece7ba2ef4fde53a2a88f329b8def70"),
		nonce:           decodeHexString(c, "86f1844007812341159718c6076e2928"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "33e85335e836e65e0a3a4d5e19c419e6208f349c6e4e307e7d0f21b0717fac5d"),
			decodeHexString(c, "a013d7ca37cfca37ff970068a17b57c9549f4d7bf9c6c175e0bbf5b0868d3f4f"),
		},
		expected: decodeHexString(c, "2bae26756053c76a902a01797d05a765a3eff54f8a2882f654db8cd8ae502839dacea05d3416e513d97430d99329981b241ee83652da94c677bf5114ff243a53c5adcae98628d016c447667ddf7cc94d1af06c9020ad4c9f096135d053d08d73aaf0db6c9fb4b22484b8c2240a8d3572b1ff1420849a705522856a8159523dca"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_6(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e92c8a50a82efb4d5e86792aac348f7abc26631f25fccd6bfb39dfec8ca5efaf"),
		nonce:           decodeHexString(c, "2894fce530841f583249f0e3d0f9c95f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8ad4526b62392af830ad46a7e0a09c0d814eb19b950a89a2ccc3b46b47a53410"),
			decodeHexString(c, "da84b91b065df02e1d8050142ee01a28b750d7bd55b70f65c36e4ebddcd42e78"),
		},
		expected: decodeHexString(c, "10d3791b8b3c1e86911eaa964f070fa5d19af00307972541379b7087f2c1cadf0eb142c469365e1a8c657c32535a12044b287cf05151662b96da4e8b6103a04a002d6a77dd7b269cc786c483c39e6c76b400239bdef538855127ea110ac4a43ddf38b34e17d58a6e297f75bc634f1f6f7c732c60eb710f6091dc40d0b04f63c8"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_7(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "26aea94a8944ae443e993ea8e1ba1470af8875b58e8052ec96386ca566d6caeb"),
		nonce:           decodeHexString(c, "5bddbb188fe0015c2be386bd2ffd0836"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "aba1c3f534921059c65987a25636d9f652bb0ce6cfa4505ab0ccc99c6ccd08cd"),
			decodeHexString(c, "546f6f9aa5b3c290bbbb6c148e299afba9c24f86c85bb83d4c11edcb12e7a136"),
		},
		expected: decodeHexString(c, "dbf46d64460388558a74b977f62fb2de4aef60c0845339c139a99876dcea1f501302099a150603efb7e3c7840f9d9c47208ed82f8814de6f88fe46eee381825ff4803948ecd3b49843805e0785658f6f681f527c9ef326d1ed8ff08c190a993d42fe7b06e5c413e6c1952a3db002601a436f6ea7c9cf0a119cda6477cc707835"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_8(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8e2c0cc512e3b12038ed2cb280a3645ede5f405a9ce4f471bed4dea8340ed185"),
		nonce:           decodeHexString(c, "84850f530aabf1990b5871153f088434"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0dc428894939a055deda52282d833d16ceb74292c627cfd1038317a9dd357d9e"),
			decodeHexString(c, "3f0368df732f5f716ff738649fa34e3464f64f957ac93068bceb6368a80f9736"),
		},
		expected: decodeHexString(c, "31f4a51f2625ec04bf1c77eb2de6944d17dc4a26635a586868acdb59496d8f8fbede047f2d813cac683890cc0a7aac09e52ffe3b2ee9f3f727c513e9cdc3f8bf870801b68be87919c6be8d32727ce9187b8fcf50506b48ee15061133331c541da4cce256527efe455c8a1624c07547899520bef7504be324ce39333fa932ce66"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_9(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "07fe3d8691b62a2c15ce304a7298694707458fa117cffd2334983581c935c931"),
		nonce:           decodeHexString(c, "0e95e2cef814077355b6d5498184f327"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8eabf1bb24d65f02af41695c7947375ee8598b677f006f834f9618c42abac9ee"),
			decodeHexString(c, "da1bd2d85aa482f3bdfb91df1f87111a8e8e6effe955678e273730e593728e3c"),
		},
		expected: decodeHexString(c, "f5778bf8230ce869213d94f2d5841c899445dd97bd9c28e02b9e31f529495d0d8e3b6bf3f76dcf9e20cb1f0c7738e01a32e60fdf51dd1d8c4cd6199215ae011b0bdf930119535060da2781f02b758d661ad9f25aeec63477a261adc2b43edadba4d19898a52da1a7aa534ff90fc8d281a9198052c4713e538ae8ceaa19bd4ed1"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_10(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "aca36e39522d614ee3834afdadb69779f2b5486d1c57ed54a2abe289ce0acdd2"),
		nonce:           decodeHexString(c, "6605f3b7520e76a681ce0e0e4ab3357a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f712d523154512a4d6797fbeebe6b3c02f4cf5cd74470d5884c5bc52d55cb38"),
			decodeHexString(c, "92fc6e44a5b2eef79d302af221cedb04626f198b88c59f52ed2371077db5e7cd"),
		},
		expected: decodeHexString(c, "11012de2908fbb7bffdeda04c6dbe94e271937bb4f7450dcc1b7bbc730f18a680d06744b0079ae35f112b1f51e551318f876e1936862a8e03e620095a49ae0bee2276e16a92177c60f357ede15acd99e5aee40631547ee9ac2d4131c211ac8bb66ddfcbdb7a1e4436f7fd496a51693a6d53e91552025e30ee5e88fdcd82d3885"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_11(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b9306e6e764a2bc12715ba8b8de5b97bd6504093442320620f7939427773aa10"),
		nonce:           decodeHexString(c, "0a11f196903e61785f507733f1d60b0f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "92e3744fa732ca7e31b0a383447f7b723efb9fc86b4a4a23dcb9efb1d79bca51"),
			decodeHexString(c, "a7503dfdc5917851b2f0e01ebd3976c40f3d0fd5ba82c653dd0f7dca854221fc"),
		},
		expected: decodeHexString(c, "04d1525f9e975c87555adb0dc38ce68f95a173bc9a56d18e93f389b498033fbd0de73d45e31f5bb0a3e2efdf37340a67f59ed4e82a2e34c63022b1f1dd08bac6fd9c61fe08c7bf91e7d81fc3e6a6eea938f59123f80564c4e7ba6711a9e46333e906f6249a4739371d8dc6c5d7e50feb1d3086ef34a143db616a91c4222c24b6"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_12(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "284479852d7e26ae13c77f674cd9593d81a0aec1928d4fbc048eff11fc1b08a7"),
		nonce:           decodeHexString(c, "c89c16f79e8b4537aa4257d7f6ee9916"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d91d857e78d441f3ccd535ecd2b4d2d5450f049c86088592b190f784a64cbcc"),
			decodeHexString(c, "0cf631a01ea5a7322f49f728fb854a7606f36d6bce2c99f2b65cd819a2cc0c0e"),
		},
		expected: decodeHexString(c, "1cee85c41c2c4eb1f4f8a23b69a03682dc5330b1b78d9655bc510e8c7693c569333b4529965ccb121a70c01f1caf2ac323ac0bb4cc16f55c40a453d222d798bf7661523b56689e710fadf33469b5b5bb87ebaa1b5b44acc0e50d30f63c770a83c70e591953e99826579ea77938a7a5946f578e16ef9d17f215148727f53b6c08"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_13(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "699c46f1714fafba8d271f9e033e1d967330da66cdb8fa5360230ce2768a241b"),
		nonce:           decodeHexString(c, "e79d9722318e117a86639e26e85dc04f"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f655f76beebc03277483ba619acc2cfe65fa7d08fc5568fedfe3488247ceaa31"),
			decodeHexString(c, "26228b541cc7d8620ce1bf9a073940dd369324203366b1420d1774f34f472e0b"),
		},
		expected: decodeHexString(c, "effd4321a4351edb2aa597a1c7c8d9022360078958a46e22326f87efc331a4e5ebf787da2cd1b929a94a70c4a2fdea94d323ab87a125b8b69db51c4d19074c540bc9ab6c1c27310adb465f52ce8084d397dcbf9eec12e8d806368c4beef10fd1c05510604b0c2f0b2810723e72b4a414ffcd4d87493f9de651237e45e8f48ee3"),
	})
}

func (s *drbgSuite) TestHashGenerate97_SHA512_256_14(c *C) {
	s.testHashGenerate97_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "af6143012d0a1026a5b7148e796e1d767814512ca4cd294c6ef6749faa04c13d"),
		nonce:           decodeHexString(c, "209924e1846340b3f574222c2b1290f9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "439ba9ee252edb11b09fd765266b220077ab641cd7ed42b7cedc96b3997f9a31"),
			decodeHexString(c, "18e1dab1f2af82b8912be6791b003d7b0d66ce76a78cc17b753055b7b48cd2e9"),
		},
		expected: decodeHexString(c, "5af9e042af202c9584bb69cb54738c0352ef2c9b9483d6fc8efd525ca38e62f535f2ed5658770e8cc5d53d9f1964b8a55d871c78250851491441c924701a52175410f52b162ebfe3991a72472d8842248402a666d726ea71437fc4a521543a323d501a6942ec4b7fb77ce462face53a2ab9b1b9fcccfe2346adf36027c48293e"),
	})
}

func (s *drbgSuite) testHashGenerate99_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_0(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f0bc27b45894b8dd8df1ede041521947680238ac91235d513dffc8edc208433d"),
		nonce:           decodeHexString(c, "e395bf2eb1247d7a8f1bf0eb93999563"),
		personalization: decodeHexString(c, "30fafec33e0a81f029f5d2a49c3f2c9b64ebe5d864cf59d3a0a3f7ed23b9f6be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a7ea8a0ce5b21697a01fb74f99823c7bea304c800b6c10053d3e7b8f63f59e10"),
			decodeHexString(c, "c8c491bd3580973fe6b7369ebb9eafbeb48cc1ad2d468c3f93672f51c12e3bd1"),
		},
		expected: decodeHexString(c, "d00e5bcbb7c9032c88564ac84b7453b07da60b189b768a24c4cf0160d6227f79f69bc62e5a7bcf551c386d3423a9cc77fd229a2b5f14d39af6dc965b77262f9d03e181552a5e2011aa7447a5e7aea97c9c56ef5b40fc4000d06a36672818e3e0ea894840ec066d1c38a1e32e2667bfe16147094f37f57da718432641f74fea56"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_1(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f75392fa224e1613b988ae2c3ebc2de35969e3b2b98e72fa1adf88ecfc2e7c69"),
		nonce:           decodeHexString(c, "2684df2b1a63c9fbf32cb7f2403cc789"),
		personalization: decodeHexString(c, "d0851421b6414257390533042be842a319800420360bddf01936996e9ff413a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "58f4c582df6579c70dc8dffe57386c342922a67a9ee9ef28cbb8be649fdcb98d"),
			decodeHexString(c, "0cd63280610d60b5ee1af92c2a3521126a2d9dac1c8b59b55f3acb43ffb6c64c"),
		},
		expected: decodeHexString(c, "a03997ed6d1d66fba5902610288a27ac5765fffdc5991e0131667211a8f5bc89c0f76dd80ef3ae9f35abe063c16fe3309567fb8d491c575bfac359f5fc0b9bd4083e2359dff3807261a7538e76332690608d400851cfc8da2b9bf8728419020e472d81d1790764f3de223f6aa2d33a1ccf01b2579124e311c0e42e60e2b77747"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_2(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "df0fb5c0daf3d6a33f110f1366fd06b62d71f847257ef01a872ef271dddb3255"),
		nonce:           decodeHexString(c, "52dc78206a7c7b0b690d6822c56f09fc"),
		personalization: decodeHexString(c, "cd6fe0153bf8958b8c647ddc3156762a33965f12ee8e70d0680222a079244fdf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21c99ce6a8949f4c8152594dac07cab3abc465c42ac6926c6d8ebfe223093cce"),
			decodeHexString(c, "b8a9b1e464ef4f7224eb4ff0daa7adbe857ecbb967f0570dbac11b8c78649b5a"),
		},
		expected: decodeHexString(c, "55fed9acb61eb506b5fb69c4610eef6397672a1a4e268bdef30a7fcbe450f09f36647c52a45895cf32f83f13e961db96b1a452612b8c011642fee67e8132ce9023ea471c2ff064037053ac5866480f2e45adef8d35e4d497141309d0742a60d0fd8e525a54712ba73eb918858ba3341ad6b992367b32bdc1c2a01ea5611350f7"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_3(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3f27e312b036c472581a941cd05c02f79fdb14f0e05d992232ae16c334967155"),
		nonce:           decodeHexString(c, "fc08cd0cd3d9b542714f11137a8ca9f0"),
		personalization: decodeHexString(c, "73f1d71c8be4ae0eb2c6f380daa250020115ca8286d0e9340f76fa5cf3062fa7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b8c91371e7e3d17494c9450092a5050a963369cb1b004519ae439a99edc04e01"),
			decodeHexString(c, "5c29a67d1663d8e388287fbdd9fbfbd0e0be6a570af8866cbca11c76616a1811"),
		},
		expected: decodeHexString(c, "eb86f71184b2b2c31352f8d55a9d7fd04227e76d835d62e0f2452bbdadae22ed80c26d3196de984b52636ccff16db0a4abb4194d291f159ffeafd2f1dae997d04ee71c8a11cb37605a42e1b130e2c47dec5b632e40b53429435d73562b23c08c60d3648c386f9971b8c7ef5615b033dfaff2b18a7abebba1d9d11caafb59c6e6"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_4(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4cdde683f4b7e1fd3d7e4d46e04024d4e7db1e4eb433faee7966ac011439eb43"),
		nonce:           decodeHexString(c, "e74bb425c8bd6cf83b4d75f5bdec23ba"),
		personalization: decodeHexString(c, "21c1d4914c3d343232027d78e670f42d6a28c1c61acf9d52b44625f63c5f306c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c7556c8da1f2e124c28a086b932d2598b4305161e429efe85d34494c84d998ff"),
			decodeHexString(c, "7876cc1ff3757e4a86446bc453b083b34c48386785ca9d329bcd040a2efcf44f"),
		},
		expected: decodeHexString(c, "affd39d6b9ab6af3083a70f799dc50400dd62691344b529beeac79b8fabf20b8b51790c19ef9df300ee8b07bc6323cd93a6e449ebddfd1d477098ef1bda21b7e107edc7023d0311115fd02cd3f9b2436a21220bc39cb0cad519d15580459b013f98fd0a36dad709a544a387922667b462a1292f609e09d3cf40849a30fd468ed"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_5(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a20d2b47641f919ae2d3534a72a82e321819400cede1eef508e8126f142c5a48"),
		nonce:           decodeHexString(c, "8d20e8f0fcb0530898d1df71a5d9468e"),
		personalization: decodeHexString(c, "b80352fe2d148b76ab9f6e336cb23942f2e984fe03efc7e490ab0f96b7136f26"),
		additionalInput: [2][]byte{
			decodeHexString(c, "264c077437ee2cc7fb669190a888f0da9f4bc7d009878b7759a63fd73e6c7072"),
			decodeHexString(c, "fd4e6dba392d83962d4da2848e38825a6c6e569638aa21fe00a6a4d4cb64f06a"),
		},
		expected: decodeHexString(c, "bb6d1a3fa71485a53e9c0e36ec0f295deb5eadbe5dff7837d0eb172c43a1a36466cdcd2e353fe9727d0562a143e82d6d472abbee3b1fceeed9cfe88a9a63c9888f3f60407e28182ffd071fd0cc15444ec74b5d6c46ee6853fc8229e5fdd24fa8151a55d44d717a64049e34497e4cb65f24cde8cf80e2021bd7a67ed1ea76b445"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_6(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8d6cc0229f43084ab1b0f696664f098558d2282012f9c4ac01e03090cd085e89"),
		nonce:           decodeHexString(c, "d2a3d8d77c664191c90461ffbbbf26ae"),
		personalization: decodeHexString(c, "4022d135a66a3972091fca3bfd32e56062b5a30710857c22a0948515d046b9dd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "114b4d0a09b3df8ca4623a8f39216f59ddc197ebc14e144498c8fa6e1c091265"),
			decodeHexString(c, "6df519590768d96f3d01af65d59ac0662e6c2a7c3291a63a46c6f932ae55eaa3"),
		},
		expected: decodeHexString(c, "f0045a024e513ecd3cec8fa440e16d97ed19d3d1994b3095cc35d11cfd8c222a2ce6f131d43a83940f1d15fcc0e5504de84493faddfa269f3ea2730db232eaf4de0568b409bcb8aea89ffc92272768a2ecf18d51ec26fd17b60c33b7cbdacd08982780fa0f6c542c9c9ccc318df9ece05df44f2fb106ea7b66e0803369e50f62"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_7(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "928824c871cbd0334c1fe1b0feb36dbe135cf2c15e56053b7ecd6644148ad88f"),
		nonce:           decodeHexString(c, "990d6c331c8a99664bad11c0235ba933"),
		personalization: decodeHexString(c, "10b52fc30a820aaa237e45d7797a4d1468c7e28e0f68408a649a588ae4b627e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "913bccd03d6528ea4fb6d091803bc30e454ee0b4a35bfee685e555dbe7c9794a"),
			decodeHexString(c, "5de7b5f2c69e73e6a95cba27107490b00d8eafc1fbefa8b083c505cf74dd7de0"),
		},
		expected: decodeHexString(c, "75189eb4b8ec27c07f21e62296480df944fbfda29f3ccb405b136cdcdedf4e3e75ba9f88279c6168fb1e194a9728c8834bc2982a9d0a45257899283f04ab95990d16b3c489602e603dbc67b8db756349b8dfa625b1f0abfe1c16be727e233c136b102a51681f6523385aaf96133d54299ef8f85ac6ece079fd55176d69d1d415"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_8(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d907f5aec9cc5ff472a08aee177887d231f2776f84398dfcfad3caa111b7f0c6"),
		nonce:           decodeHexString(c, "269d69b60a7f4d395c2e8c9c5847f7b0"),
		personalization: decodeHexString(c, "f4be92cdee66bf95ba88f9d47ad92db7cb54e035e46b438ec60e5910aefb98f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b4cac4a29c31d7e55ada995cd67da7d3ff17830074cdb2e209780304a5d08d4b"),
			decodeHexString(c, "1a131d13ae5b08414b8fbcbe1056621f6ada54ff90e058cda8218501419ef35e"),
		},
		expected: decodeHexString(c, "0944ef17d253f5727008bd2bb78faed72471a1235342a6c17c80a6c62e197d8217f1825cf0750cd73d60fbdf55a41181eb316ed07d68e797f698f0046ec954ebd3a515154bd7a3d4a8ecf150a30aac1698250b8ff68d078b3688fd0687c36dd71b04da63feb41eb3bc73d67c464203995097d1c5c85067a5d786947addb568bd"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_9(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a8cc4c975595854253382485bb16ab271e1e1814fff59b147c8ca30c63dcb01f"),
		nonce:           decodeHexString(c, "0cab1460cee52a6fcb603b30bea38ac1"),
		personalization: decodeHexString(c, "11fb2ca962dadcf491ecaed9943286335b9ea25d7f78226399303e17e4511125"),
		additionalInput: [2][]byte{
			decodeHexString(c, "437bf2c671f855f39d3fdfc7bb5d3cdcf3481ade801f17150c907e2263f23667"),
			decodeHexString(c, "126ed919d93f9e9cbc38f55ec38221dbad0d0fbdf83ebca8d5550fac89d94d55"),
		},
		expected: decodeHexString(c, "234c8210b2f6543bee301c9d969efd9f5e0ce5594b7dca14ae0e604ad97e34cfa5ccb3cfbd2d1732193237e6d937c59c9589933632cca6701424565ee0dec9ac84f86ba3079fd470d1481b624a7424d3da2fbc4a0556c61b6f78107d4fae856f10636bdb8d534c2abaa63ce312e7a39985264cbf29535a639daf82d32b7e26ec"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_10(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "289f634be275ee54b8cda92cfae2b91d2b651651b02acc6a2234d590de47aeae"),
		nonce:           decodeHexString(c, "a9c4d7ca11537d6d63030252205195c2"),
		personalization: decodeHexString(c, "4f3114016c87783088a126eb6a0f95e1e3a7d19fa421f421ab7bca99983efdaf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cc60f01ebee620ac071e516e94065603f4ab92c93a1f965c030dc2beadf715a7"),
			decodeHexString(c, "712d501d331fe0651d5429109f494e6d1db7423798e634c41e60642358f1bb5b"),
		},
		expected: decodeHexString(c, "17d6e31fc8faad7263b3fef90923c257fd81364a3e57ca23abf1a6b02059a755d63bb59bed325d8d5301a9701efb27032f0e2a4274f11214cc103c8a5a3d6a00f4e3cc67bc73f66755b87779fd1f3dba16b7452c2b9cc30921ec0523664b771deaaa4d1e0bcecb38ff5f647e8de382909e49932b60bb403da8ba5145af3ada0d"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_11(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7bd8dbcc115aa13ada7c2aaf8416b6091863e8e53cfa89557970af4f5f50ab95"),
		nonce:           decodeHexString(c, "f7db40dcc52fb369a8d1d187c129334a"),
		personalization: decodeHexString(c, "ae15b82f6155d059d2f21336a61229c10b459503e7557517fecca281a969b054"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9c64b927e9d01b13c219dabb3157b803a88943e81ddca85cddc2ae20d10768dc"),
			decodeHexString(c, "1886ea6b7e7bd81f1d2055b1b64fbeb2ad691c720f50fda3b54583a5daad38ae"),
		},
		expected: decodeHexString(c, "9c0fc0cac3c1785a868be8ede990d1546fa9def993e4c27444cd02580339ad6d80ca95ce46a32ff21bbe5bfbaa5e8971b480c2d27b5fae63405b9c58145d60399b47ba4d9982a40f63e4eacbb011d034f50fbdaa78e8df72098f01ac1271d6ce60b1b81aaeaf2af63305b07973de44d92d742e7fc04382ba99d05c3037471c86"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_12(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "067aee31d2fbb808bb7af34c0cd54f1c22be6bfb54a809ae8ab83c0a068a11a5"),
		nonce:           decodeHexString(c, "af9276a296ff30215daf2527b199ed9c"),
		personalization: decodeHexString(c, "42507df0b55177901f21649527098d5f727da59af570cba64cbe0b890f833982"),
		additionalInput: [2][]byte{
			decodeHexString(c, "830870a04f92696f6cad4ba20e00a764982ca29df05c828d938114a1c265c51f"),
			decodeHexString(c, "2e262c618163fb20d878b1bdb8dc1fac96f020fef082340a130dc503e9986bbe"),
		},
		expected: decodeHexString(c, "fd33689cf54d1a59b7efa6bcccb70705d2b0c3888d2ec956f967b337dbfe88da9856eef3509fd92e58b893b42d37266993444b2f1d1c41d0546ed6d7e06e60259c4788f46b5f2303634f54c3ca2a5b52a3b06aedf43645c36743bf1122384d1c9dfc1fcf79133da93d75b4d3edafdbbc0ffd7c22a0e758636e2a99eab52db64e"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_13(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3e8505eb06503cabc096e937381ab756f980124b86fa2c1bb80917a387254f14"),
		nonce:           decodeHexString(c, "286e3635acee4058942d65d4c2994184"),
		personalization: decodeHexString(c, "0f85ce96c2cd91a4aa1573dffcb1c77bbc0666152227e53f8bedbf38771382ba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4cea3bbbe673de595a21129463579d3c3c0d228f65b319a1c524cc55cc94e9b4"),
			decodeHexString(c, "4dbc2ecf09129a471044201da98c9adc9916ae8ddecae73beb9641bbc7dacb80"),
		},
		expected: decodeHexString(c, "2f729b2b58487f5149f7f5033a7c1183e9c2d993b08c7f33d0822aa3ecc528189faed459a639f32ee400edaad9bfeba8244b9afaf290571b83a47a9dcd21827149a9cf68f63bbdefda94f5172f01bede9fcc62c827767fc56958ea24626e47c3817d201f66abb0abe1899684655e3a1db9a9b8c7e8b0b0127e363452ce858c7c"),
	})
}

func (s *drbgSuite) TestHashGenerate99_SHA512_256_14(c *C) {
	s.testHashGenerate99_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "54be888a09fff21a8295b05adaf384adac63ab5b48a9d74622b97272deb78a87"),
		nonce:           decodeHexString(c, "bd58968d97d87faf1c483f026e5a75cf"),
		personalization: decodeHexString(c, "72bc28b4561017694de89af07e2aff548d900a5dd612c968f44bdf7a5c41c08f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "77d998ddfd7ab7577ca9f51d6cfbec955aaf9f88cbb3ae32db7f7c460928823d"),
			decodeHexString(c, "9ebaa09e7057ad7cfbf02e8f3143ef7b7c1dd6158f641815ecdf8e4a65c17f19"),
		},
		expected: decodeHexString(c, "161efdc30cdd124d4d6b3d43798dd79bac70f494c3ebaca111cfa3d9343bdb73ac0def00776486584f932cab74ee12a391cbf4890b10044f7de6c73f973e43837a43b7c47a1a9a36d7e62f9b7ce40064994a610b92d68c6d37aa5d9d92c3d858770ffb8fbd87324b49101bade3f2014bcae7deffc1e4f6a1a91ddfe7e6aa33cd"),
	})
}

func (s *drbgSuite) testHashGenerate101_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_0(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "24cc653fe80df97e75ad1cc6fb9e6dad7d66f39090256e264ec795de1eca00ee"),
		nonce:           decodeHexString(c, "4b9c30bf6c8787ef8c27ba141918b22a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "31ccb681524efdac6580982cd1963070b6c4490acd9715a1fa344e27c3ee110f"),
			decodeHexString(c, "9ad57d0c1c21803b2daf82118881a45df160d2141e819d60765d95d500d236e4"),
		},
		expected: decodeHexString(c, "0d10df6b85789ad7a7a624def83353a90518fa0f8702c6105ce1457f29396c58d1922d31f35d729bdb54769655b3fc40c3fb770f3159ff42ab02dd2db481f9c7179351d772ca68de52cff51261138cdfd5101fdb2500f8d5eae73c3edafef37c1aa79e7ca14ab81a8f6d8f19098028df20ebedbae39c96b5e5751015ca265bd6"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_1(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5cdef119ba5619a65a293543c246388586074583ee20e05d4d480e3986f1f987"),
		nonce:           decodeHexString(c, "388e9e48ff345a8b72277c5fafae97e0"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff06feff16be98a6464e3f3c42e9e4e936d4ca2f3443884e4a1fc99ca1006f16"),
			decodeHexString(c, "dc25b55658a946fe0a020805e1ab8eaf89abb2a242baff7f9c9e61a018351ece"),
		},
		expected: decodeHexString(c, "072eaaa7d7cd687c2b93e6ca5ee41be57e3dadf9141cfb96a2adfab5278d85bc8a04a0793ac1700abcdb35d779cd4de28aebd4d2d6a038e4efe4ff90b4f3e76ee579860e2744806b2baea333fe1b7b0ccbf53e83094206ddf5bf8c0f0bfe83fe1a3969211c01ce5cdf21dec623181d94a1e12db15bf9a8976645e935e99d7752"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_2(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9116f7ac6a9b8f390a14eda3ee038dd59eb2c81210498af3d5e6da03f6a53afc"),
		nonce:           decodeHexString(c, "107135e675892626e8d76acc11c5fede"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "fb59b7c31d5332c62b34daba52c8c10a6e88168a8db5efe767307decf5ef25b0"),
			decodeHexString(c, "3a59f7f4d81692159ef061269403051f939c455e3de536d7c6f2f5469a839dbe"),
		},
		expected: decodeHexString(c, "2711f36494ac072d6804993de3c4a697aa876d7028905772ffeff8fc117874539a6dc6384c478c13356b3bb00b1d0dacc057dc519bf49013039034ff77df965f2e624876d532976ad4c91523b793ebed07819a32ef4262c044df6e72e69c609bc18298e93c7e83d0fd2166b110e1ba620b6bc4c868e58de1b56a19e6ce3975d4"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_3(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f0e87b8a61b7642d8260d5e392aa117245851eb0e959626f9b509fea2b3ee6c2"),
		nonce:           decodeHexString(c, "e7a0714347143a6b805936a05c518e64"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6c03e7c903d8318a764c1c6533b222844eba023b3f0edd0633ae260752302eb5"),
			decodeHexString(c, "af70bb17fb6976a6cc40c2a08caa917f9ae9a05059d08044fd6519fdd3da9cff"),
		},
		expected: decodeHexString(c, "62d08a5dbc67e9495d5b6754822800d0b91a4b44ed0e85647fb2500136dda299d2637bd0b2b639308dd562693d991e4c8a03682e514799f8e16ca6d96526003236ddc5d201bb480bc9b8cc08c36df82f823d6b390215328d57b6224b5ec9d09fc2ea45b61fa03c08096292d81e99d1ab58ed6348ec7198b15553e276513df2f2"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_4(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "da74c824adfc5d172c57b504001f01d98745e1a26da82ac7e3253f8402daa7c7"),
		nonce:           decodeHexString(c, "ffd6994eb71ce46783f7804fd89ba314"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ebab19b8af5e502e12cf27cb0a5be4876d72d851b03df41502cf0589a6b692f8"),
			decodeHexString(c, "aac6d6bbb99b2dec9f2ea0cad7b92aacd3a9a47da73ca606cef6333cc505ae93"),
		},
		expected: decodeHexString(c, "3a115859d79bf8c03bcc9b87d82b9745cc34c99666d940233a2d1839e2a35d9d4b59404301e558a9c00ba99ecacae80f205dc16f0e82a641de15600b67dc721ec280c48f42260b079a5f15c09647426ae3c85ed47ce28b67c4f3e70e5ebe9e7e9e968ef45ab5d1501fa5f3c037e561b36527c0c3ec0db16ac4041f3bab96b34c"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_5(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d3328adf624620c72d9371a9717281ef69de5e45d61f3d6e712f0806b1093774"),
		nonce:           decodeHexString(c, "ed9732dcf4291e121adcf1e1fdf33f1d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "da6d9e2b7d6fd59001f117696d15b992552a372b0b1cb65b88f021fb087f16f1"),
			decodeHexString(c, "4dc6df885c25f176c14b25205d7c8d8381562a1fae9d68ddd18c54b28183d947"),
		},
		expected: decodeHexString(c, "b3605fac5833319aa7839b71c6bab5437bd0032c951a7641e1b4f26652ad9abc8a40efe2a3f1199629312cd803d485636331170701cfec8533e70f8290e1b2113c47694a5a489431c34e485b869bad03ad36e23bcfa434a316cf2d545fb6a13386ff70fc342251499a736ac9dbf0dbf25e9b071969ad8f2dd4c7606725f5e7b9"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_6(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4c2a3fd749debec779518cce4c20356ae719791cffe49c3dcb56bd784bda783e"),
		nonce:           decodeHexString(c, "ea3e3b7d9315dce93fe28f741308cb04"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "3f7006990170a8155f7f1835e44146e399a2c3d24124f089550438b8ea063f4b"),
			decodeHexString(c, "b9b8ebe09afa27cb3a4c67ec6c6968e9dfc8cfebe616a04e6f304668562de33d"),
		},
		expected: decodeHexString(c, "ef106e726b04a5ce96e875902938de91121dfdc1640f94cebb9f6bf73688ed0e1475581fe0121019fce7cad2da4f35fac5864cfe167fab3b1914e80008b5bebe9adbaaaa1083e94f8765c6a911358b1878b2b20d0dc3de9e72e63fbfa97a40fce035131c8d43e28a96e33233fa58b04d67b6568946697c0d934cb3fb3fbd1300"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_7(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8e0fdd1f3391c9b4f4a88f051f498e4a5da7b82f6e2c2d5114bf4e40b8c6bdf2"),
		nonce:           decodeHexString(c, "fc182e1bcca3ae17faa929f2c1f0f691"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b644f90b63ee94a005ff41563a859a32b848b1d52c6e1e9604f9e6ee04f444d6"),
			decodeHexString(c, "148c1e8ea041827279de4853834df0eecd680f0b493adaa19793909a405ff02e"),
		},
		expected: decodeHexString(c, "323b9ab6367e37ea1ca4daadb7c3906634d6c254826c29d2308fc33885576cd104d4ef05716ed68f32813d134391027b0b5b55065952f09eebc7f19cb041880ef0c206f078a4ced92ad248ed335b64206db8fe78842393cccae580f510a361b1b225198c2f0befac6039ac6d0dfa1d482adb6f0058aeb7aed3e8dfdfaaf6cc7a"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_8(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e8bd0911534bf0b9f21252a38871dc1a417f65d64dbab3db20cadf66704205ca"),
		nonce:           decodeHexString(c, "d116be0be1d771c3ade746a0ff04eabf"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0353a134b28c09f3995c9442ccf8b12863a6a3b1e0a0c854c2ac20b59788caa7"),
			decodeHexString(c, "459b27f02004ba211bfc7c545ada007c6ee16aef24bd55f728d83439175881b2"),
		},
		expected: decodeHexString(c, "031fae8c5ba4e15e500ad4129437f5af91b30d28d71a1f8569a815f22c2b4c1311378936f51eb5599221c630bf860c3fd4c116caecdc74cd8a36a90bcb4109045680ea588dda941ee140513e47d7b544f3ac78a780962a9e9ccad48905004ee441ef24cfb1b233717bd4041120b5f4e2ea80ab43fa28af26da4037d09021b487"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_9(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "64a90f18674367b4e78fb000f037fcd15fca064516acccfbacc69cf7aec6768f"),
		nonce:           decodeHexString(c, "cf16cf470c20b2239721e784c15f776e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7b488587e5cb12d96d78bb1a50769a561ca4bdbb4be4afe80951aeda08f63488"),
			decodeHexString(c, "8d4cef8c01c2c137fa015da5e854e979ed99ea92dd55f384764f9c8553ea78e1"),
		},
		expected: decodeHexString(c, "1f492d12a7fb13acc24c44e74e2d18955f152b58e4575c15dcbd434ebc53efeb7937e42785a376be7c5e4a57586dece56d25511b5a1a134069e20182af583677a237e22c8d7651999221b348044cc54a67e8afd1b9cc38fb8290684d303dc1b69fcd61faf603945986b02e391ba9d0980333ad8d1596d46c52b27cb159432ff5"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_10(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "debac482eed6ae3bfae7a11c846f3ef4e06aa5c84a1f079f33491a3d4bca52bd"),
		nonce:           decodeHexString(c, "dbc4ef8868703f753c42a9d2eb5d66c7"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6344e67575c5b96e2f02c91729fa7581f9be59969d458bf0bb6eeefb979eb9bd"),
			decodeHexString(c, "ac81edf0c682ac989a8067579da42dbc84c882aa3d638c88a595f9654d8d16ef"),
		},
		expected: decodeHexString(c, "034b76cbc41281b31c5cc1bd955766af5f002a341dce5764e928326c785d93701793f4bcfcee528910de798cadf4f4f6411030376821e7492131f45b84d341fe8c4a78d9e701c50a5d276a9bcfb9e166ae9101e63f238af9809052167d9248489dfbcbd5e9a82ce2288ef439b532c65ef71c949bc0f6ff861f404650e2ef5c90"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_11(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0c9a680da50dc2182bcfe5f6503856c2e905c2e9712d22ff65196a21546668a5"),
		nonce:           decodeHexString(c, "0c2542d05197ba5a8f99dde44aab15e2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8347cd578dd1f0b9afaff05e0d46eb526ca3bcde2ad8ee4c0091a80b11f65584"),
			decodeHexString(c, "21d57232ae5f80a0200c1d36dfed1146efff6366a57fcca1b13f70bbdd0d69cc"),
		},
		expected: decodeHexString(c, "ef35db17311bfd3d61d3e2e8c3a2f81057030fdf4478e416732f02160305829fb5eb75b25f1a87c796e6795f8422a56b8efd4fcc05707654b7daa62b3973fec31478c5bffdfecf48be0f9ffd006a08516a1fbf41b769f7129fe698c177650e2b62b71da3c03443e02c0e8bc5d8e2d51885d3147b0bbead22c4accb599b006f76"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_12(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "2de9d4773d9cc00c037cdeb8303d3099ab03d3a8aeb62b92f6ea197dc6b34f45"),
		nonce:           decodeHexString(c, "8b8b68a9aeabb1e9219c04a59e271c99"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "8fa6d8854395e88e809c63f6dcb8c48b717bdd421f494c5540e3d807ed8ea385"),
			decodeHexString(c, "6c0917b0b69ccb1724365e5a6337b754b0a896dbd31b60d9c3664d48e43449a3"),
		},
		expected: decodeHexString(c, "343499dcc813c56ee45a07895d1e4100d9d58e7bce6f1e8a8692a2889c4f3ad52ee20962382e4881fe7fef5bf93da6c4c8dd788c9254cbead5af793af1617000ad6df60a6ba593412b51391dd0b94d2e4b7c5ae73e1df9026eb7cb64fd89f1617bc2e6f4ed4dd0145b3ef50dcecc90030574786f0e3934d5e018089be5188c92"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_13(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a445242950877ac93887ff76426bfb577bdc7c3717b602c15596eb953ad37ace"),
		nonce:           decodeHexString(c, "9e0a3d2ffd0f10d47750442dd7326758"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b9303057f92f0af07753605c2001a703bfcc7d4dd0963e567a44615d19bb5849"),
			decodeHexString(c, "07dafba56b357101f909e959ba6b7d88415196c9967f57f6c424615ee02a9fc4"),
		},
		expected: decodeHexString(c, "5b880cf453302d5428f8afd5ad4d84d02a3039c8b8ff0458d48fd29d237934bf6df76563f56ece3684f74bfdf7bbd15679a19a3c1fdf9581b42d7b8f98d0d814ee71f74b1ab65ba70c6eaa6370dd3da3228149441f7f14672ecacc74d3e2e2d3b6e2ec20b415e5abe814488e78c3cab3290b7f98368ebec09886d7e53b0af39c"),
	})
}

func (s *drbgSuite) TestHashGenerate101_SHA512_256_14(c *C) {
	s.testHashGenerate101_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fa808f4aeb1b31fcfd519450bb1f0a91fdc4a441c9574665cb53e123d801b7fc"),
		nonce:           decodeHexString(c, "f9675292f5616b1b7db50cfb451c2dbf"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ca73cf447f2fc3984a9de0290fd9a984a8460ac715cddd9e8ed99aafd6f752b5"),
			decodeHexString(c, "21dd9cb8e146954a9745fabe039f6f52ba8200f575e9bbe19c703b8864f34e93"),
		},
		expected: decodeHexString(c, "f1b153ae274a380c28668f1ee2c8c3a91f5380d41bd611d974e4e419a37debe664d0b706722184fd3e805f2ff05554bde7219023d1f62a52970aedf4d77e7b4604cac2a804e7b9353c087752f7f185991b10910724d0fd06dc6526d6102c8d0ee8c32f6692c2786d3b715bf3860539689e3f415855ddc37bbb6750972f3a45ca"),
	})
}

func (s *drbgSuite) testHashGenerate103_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_0(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a05a68a8c08b38fcfa7891efdd733284a7d2c4bb9f0ae2eeafa41b88a06a2737"),
		nonce:           decodeHexString(c, "6acc7f9255dd26980333bdb60f33b714"),
		personalization: decodeHexString(c, "3b9ce45b351de38f6703d966340c30e17f196e5666efca130a3dc124c9386cdf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "abe4faabfc51e29fdd2190758e90efeea7a80f0540ef7bdfe914412b78dacba1"),
			decodeHexString(c, "cd5b8bb6929003b8ed80fa852762327a3a15b6e28829447bc3f4280b549d7067"),
		},
		expected: decodeHexString(c, "dc0e392ed6fa6c8da21d7898db54637c82e73d4acc6533d2b7beb7f3be57b5e89c20add7a92b2d9aa06efb56a9bb3e79984657df957dde373a67d6d6315b87efa0bea64bc4c72b14c84b75d0b4c1dd9d8b8cfc29feefa89e14c8e14af86549fa83606d7bfc23862195e24b765d6c05dc6aeac4173bff4612f5464031ed8d0bbf"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_1(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "93a571e822a0fad9812cd3443dbf66f93fcd6004d634496ec45546e2b4937ec2"),
		nonce:           decodeHexString(c, "47bcb9d31b67d394084b1edb4339fa84"),
		personalization: decodeHexString(c, "e617903181afbd1713a9a25fbf71bd388b6767a7c25a729d72b4461ed34d9f08"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5cffd6b4d50b0e279f917c42e54f449fc1768e088d2853168d0794fbc8077987"),
			decodeHexString(c, "726cebb2c02f1fe79c2eaea863aa8624ac7e2c4d4ca113136aef023a160e073e"),
		},
		expected: decodeHexString(c, "d7b2bcb6a101a2bc272a8e55a97bf14b852ab233d075f612dcc2be58c46e7e67c94e218161ecc56fa9e1dfe254b8194e4e521ab7f694b019346899f8f1f0d46f814e53f9121d0d723a2d65aca687f7f79a2fc8f639af86db8b6c946abfd1f101eb491a495f307491c2e6f06d084edab182069e8a34c4c37afa46983a945fb3ef"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_2(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "34e25eac8e69b5ea03de942f71d3f04fa63af72d4f26f1e705be13a2fe349f0f"),
		nonce:           decodeHexString(c, "d51b022a70e72dc3e208e95b101c5a9d"),
		personalization: decodeHexString(c, "81e9414808e7a951dcd53f1f208914a3f302fdd98cdf9f9cf857b0fcbee29897"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3933b41c42bbdb3fa04f64c0076d5f92a02f476c194117ce399df215ae9459c8"),
			decodeHexString(c, "94635fc96fa8080fa35ea41aa6cbf4c36a2208ad00d57656f837eeec6236eb92"),
		},
		expected: decodeHexString(c, "3bcb95d0f72edd2f944e3572b94d60317cf03d4eb7d0d88b4a159011ad7617710210a596685f897fa2380837f84e355d42f3b43a35b605dde79b94618ed01229860d4dff1371040ab05528de9e99d818de9490a9c7e19a4088e710561af01fef260233ba017848facafdd9e3ec221f396f1f082791c70ea7465e49c1b7b1195a"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_3(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "29765e1ce687fff3db813678c37465d46d8234506152af4b2cafa32e986bd126"),
		nonce:           decodeHexString(c, "528be30fc81c3766cf46dbd3b16c48be"),
		personalization: decodeHexString(c, "b528dae3996d2cc2b699e341bb73e1dc85a8cac5aae5203475eb98015a0a0c5a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3474622ed44ff1c4c0e5f221851bfd5f323eed2395fa16c096913d54bb85f043"),
			decodeHexString(c, "cdab31b9ad6083d72493c4f605a14b293530c70907891e0f51af0869a5451fd9"),
		},
		expected: decodeHexString(c, "88f35a8528c135ff339084e4e3df0781f73debb34a2b9ca1bc87d3156d082797ea462cb74c70b1cd2a4b71955894f35d2e41ecf2bf5ef7203215f7b327fc2a33e1ade0dbcab934ad32c7698cd2d2ff480b531051236b503c72565fcfb1547e3a94f8458ddcc960b9d4c3813e7b31b9f807e4a173e2d108eef2069b71f7a59e6b"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_4(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "455fe46cae82e99f1ebd8ee1c03b9ff98ce17186db12bc8dc9ba31a303380a7f"),
		nonce:           decodeHexString(c, "91bc22dcc2175068405507192e3565ac"),
		personalization: decodeHexString(c, "c4799b4df79f5542c085caaf240c5efcca3185aac5901a874a354f07d229cf93"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82c17ea70dbf45249a2a47c9edf27f51db46ff24fa10fb37d4737812a6523c35"),
			decodeHexString(c, "ef55a79f4efefdb76695e065b257aacc23ece92d7351aa9c9dd2f4974df5040b"),
		},
		expected: decodeHexString(c, "321f1657bd19b8369fc601d76bdeae5896790fa3154bbc3ca88019104da98fb4cb423b79d995d28a7d981df585b24e04b96b9100ecb3a40e47f161b4e35e079fd9d895db4eff2eff4c08ae73ae39435d73ec0dc9abdca4afcc90cd582516b465bffab172f1dd518d72694ae32b2f154041643ee452da80f5f85c8c2c4ac295a5"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_5(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3c1fb423e65ba0984f66ae300cf60a34be48e62e2f8df0aec2b14b2c7e15a0c7"),
		nonce:           decodeHexString(c, "5d4002882ed27ea5ddf1ac221c7dfc76"),
		personalization: decodeHexString(c, "9431095b002e735089879fec2abbe52edc382d464c741a21647b823e16bbe1e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "51277ac436b7163b07e0df0dca03f533c9322d6a597ea68549115ac4f45b8af2"),
			decodeHexString(c, "24771c02c1b804d11ef2fdf0231956de92fb0033dc08894322c9bd60757fe1bd"),
		},
		expected: decodeHexString(c, "cd011dde7042f973325afd1711d089beb236a2b9f1da5d6cdb0d93dbb139f31acdfb7643ef7d5aa0518ee0a84f6defed4a9751695773473dbb819897e76a22de3f6f2e9bc2d0a2b3cd5888c95d76aac30c711a544df9dd3deda1836e681dc2ed0a02210e2c2a430f3329fc9ed354fd86b411412489debbdd4b105460c1e0dae4"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_6(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "49680571f7a111c34094198031a3c0687e65becbe110d2002682a893b3d11210"),
		nonce:           decodeHexString(c, "60689ea420c104a1796e4fdd4eb0fa7d"),
		personalization: decodeHexString(c, "250cc81d2f52c2ab38f336cd60e682858af378edf5183cb08ad35ca236657d53"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0add5184145e1741a9d274e3833eb2ad12c553a40a86cfd0d55db87f926d9f39"),
			decodeHexString(c, "611380eaa4e1eb0b8e86ec6d73d2f82f86ac55aa5327b1eb95e79d0ad7f498ac"),
		},
		expected: decodeHexString(c, "7508867f99822d5c81c9bacc662ec9371ac354b2e53ed5c566db48204cc0a50a6c5e799759d8ac98f995317f450f64e6952c2fe97dc270e910c06294483449eb3f2ec020be93ffb3eec5b74096b2ffa8de84033c8312964f33c6c9641874b664f4c538dc44837edc0666f4cc8aaa4144ea468b91018b222c97e94b05365de985"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_7(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "70b5d94214b567a9a9be4644d320fd8260c903f8be21eaf68311866ebbd83fcf"),
		nonce:           decodeHexString(c, "26e5dff4fee192d413ad71e370d551b1"),
		personalization: decodeHexString(c, "837014395a963ea27ab2d3f2ba37667d49dd21a8d9e86156dd667a45c4998ac9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70e16a291f44dc715d7bd642f9465ff1ce91a6e65d71ff472528d6985d4fc334"),
			decodeHexString(c, "1f56ba398239f7fa7b070df36c897f6538c1a4563831b82fbd198215d20de9d5"),
		},
		expected: decodeHexString(c, "d54ff1bfe767595b198841c933b15f94c8ac589dfb7f7923c4216884ba26b38aa0d7a7ef7e3b930af6c360b87401b07f42ca570d385e6d7b221e1acabdad44774d9c4b6e072ad68548aa770456d59fcef049cfda7686f1cffe9de69e66f6409002932f04f612c338268a8ec38ffd7bedc9649c0a62403b63befceea6a0d9a4f2"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_8(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3e075ee0f982ecbbaef7ec5ad3c349984c1a8a5374752994a9cc9ff9ae54e72c"),
		nonce:           decodeHexString(c, "626d4072632b13b1b61fc3bd0fdee7db"),
		personalization: decodeHexString(c, "9466286a642715be18b68e9030cf1388e81bce10378b4f4c70b249434f2cf540"),
		additionalInput: [2][]byte{
			decodeHexString(c, "526e5df09c03e04d845d526291a67221307d0942487b30ba18e6b66076740d07"),
			decodeHexString(c, "07b16490c14b349f0c8135d26ac8d320688aa208be8152a6d47aeb37fe93952e"),
		},
		expected: decodeHexString(c, "f7d8be58fd50aa64b8dfa88c04c18e07130887b88eb87036ce613c5c7a5fd1aa814ba3f4504c86e6e4477f8636dbc189487b172d5a1c39cdedb2de59c7626119d8818c32c456cff5b4693ac47cc48e4785e741dda953a06f4ffedbc67e016e9926ac3a435eae8ae05dd7a7d5ea353d6feaf1c956718cb57ef79944b8c648065a"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_9(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d374e5eca8156c8f7bc147541b8f612c6e75d16b35af18f2f23f8535ba873db4"),
		nonce:           decodeHexString(c, "e5c8ec3ec276ff968fa3d8e883e79c60"),
		personalization: decodeHexString(c, "9a7bc0d6e96ca535066a93746c91933d41604eefc7f61de72c220704c9332626"),
		additionalInput: [2][]byte{
			decodeHexString(c, "179e7e09172ec4fec2309aa2c3c7aa45a2eb6d09176a1b5a4171787b589ed48b"),
			decodeHexString(c, "a470506f702498100c8a9396081ae4cf558b383c28ba49e46ddb9e0e9fc7417e"),
		},
		expected: decodeHexString(c, "30f3b8273ad6a190d44dd32698a13537e236c9be889644cbb2bcf4185728abf3cc39d9cccfab163e604993936cf32deb74b064887d4966f3377361e161ce8217a21ffd117a098c906a203e398642cea072ce86b05a0f555a19b885ded8a0c247589c30940f0cd8b4f152e041abceea635b4e8c9cf1b71933b9b0fc545bee821b"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_10(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "01822f1e8e132960ff685b90adaaaeb776b65a9e44808eb1775288b6e37d2599"),
		nonce:           decodeHexString(c, "bcfa4bbe9c2ead1770f0c9e958905207"),
		personalization: decodeHexString(c, "dc5f55ba94e6771103d2cd54605dc8766b95db748309c17f40657f61b1e963cf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a5b5ba4a7366b7efced0c4a12bea29d4351473cc23c5ba1a6473b9cf434d2ddf"),
			decodeHexString(c, "2462cebf6193756357738a405a5161cb5667b7e728e9d6e4b88bb10b137cc16e"),
		},
		expected: decodeHexString(c, "c003a5779cc658ab5a8f99535fefba8480a9b5c73e1824379eef1bef4b46c7bdfe1edc3ec5decde12f5142f518c848e6187a8b4761278dbe75689d67c41b0471df4b4026c346587b6c6266001ef5c5c4590f0a8292d68b568a378c1af10b1a197c159587aaff1de691114c7c0210a7b24d7b15e64a7a14007d89db9b8643082e"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_11(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e2c583e2bfb46475ab107222d35be7c1b9a75655e774c585e3ea147208eebc2b"),
		nonce:           decodeHexString(c, "37556239f4598163b7ac6658716666cb"),
		personalization: decodeHexString(c, "8bf6326005766f97c95cf8715d52a9ae9e199179d93f362c1e57f3c08e2353ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d0520bbefc8a7da9fc1c8bfa0ca32c28d358d9030bc4ef2a476702919e273ef"),
			decodeHexString(c, "f08f7b1fc1c8a7c5d428bd4ec0fca411e8e3e5477fafd5f3892fe07768257f50"),
		},
		expected: decodeHexString(c, "ed5f399cbe7448a0abb713cac3f2ed492b0864ff597d18ebcbc56cf66c846327d69d1f024e7565064c1900c8ea5abf152f65c0c8e85303966498a14a9a10a5209cae042f8508d033bbc9b62f9ae0a4f8d25f2cc2c6ff6105ba0e81ae2d2facb54abfa1a2fb072d3ba10d60864fdb416ae54558cdf5a39e2825a228588456daba"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_12(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d5c1571bd698d040ff605f11e0b934f4e11237c3effa1c3d037142af7ed382e4"),
		nonce:           decodeHexString(c, "2a8a311bf44e2cebf20b1fae8b935b3d"),
		personalization: decodeHexString(c, "15df66513dd00f3ba3174e1a8645c189b493a5590f0df47a5d85fc18bdfe7351"),
		additionalInput: [2][]byte{
			decodeHexString(c, "54440e082a92a386e502393e609919e2b2816a57157ae3c8d2f2a2dd25dec347"),
			decodeHexString(c, "bc281bcca29989a31699af26675c9e724942cac1ffaab380ae05574a8bfd0b21"),
		},
		expected: decodeHexString(c, "aed06907de4d895ffbf5ed194efe967b59ed23b31fbc0c4ef3286ae7ff9699934e156a97830ffef69b4aa747cc5ec664d7127ec5ed300b3511f16224b24633c6a4b677e13363a6036514bad39b55e1eea12d82b239acbdf268900dca3cfb0cc9e73c3f42a1d1d4ab8ec83538701384db24a6a8e2971d35fd6822b9536e686673"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_13(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e63b290be3d6235e090ef2decb3140980843c295d91f826ab2a44a1db300b1e3"),
		nonce:           decodeHexString(c, "19c8428ef1c5f37a5a83784be829f831"),
		personalization: decodeHexString(c, "9ec83b160bb3eeafb257d2fd7ed5b3f7b897f5d30f037f07761606f7cb3dc798"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9003fa204ba1fe16fee24c616bf4f9b47ddde433b5325e789e70493196daf967"),
			decodeHexString(c, "f64d3df45dbfa0b313766e8e9ec314aa615848f0239f5666706e296a648a1e69"),
		},
		expected: decodeHexString(c, "0891fbf7f92a5b24af2c2f81ce3ae10447c029061d12485574a6333a0637a34a2f75750ddb9155aa83a43584f1e3f7d15e4130c0a959e0b986920dbf1753defc6985a226f19b839111c07766c2f2d38cc922507f0c2272a1c54542acb7d1d4311028a55690d5a7362795d8f33e8eaef0517fb733531debb43cf1f32db4dbbd4e"),
	})
}

func (s *drbgSuite) TestHashGenerate103_SHA512_256_14(c *C) {
	s.testHashGenerate103_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d56f9104c7faeadd6bbfd73c3d4063336221d9125e6d784a9444ad31c5f575b7"),
		nonce:           decodeHexString(c, "022c0ab0860a63ddc0ab734e0e96fba5"),
		personalization: decodeHexString(c, "1b5ed7471f45584232f05cfddec666c4733954cead8151642d64aff268f2c3a5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "764b81871036cf65802c4e9659e25b8039be84bad1b121b536d2ffc26989285d"),
			decodeHexString(c, "28d46df3c254e5cc199e14b45bb1e2f85a5da03f49dd76b5a16b76723d5b9855"),
		},
		expected: decodeHexString(c, "94e1fa76f879eb9840cd50853565f43cd7b0545705bd9a35494668bef7d7e7085b48a455b38fcf10f145f28a599c58e2f88c2855f2437a17d7333d243a1c25b76bebc6a94f7abc3fabe4c78041d9b3eaf675c11970b14cfc6ff20c8b23852b2733ef8d8416a920617a9b271beeabdb0462e5d23fd68b56f58e3554e81493c5a5"),
	})
}

func (s *drbgSuite) testHashGenerate105_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_0(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8ac4497cf49fbe453ac4663b1e1c53d2ad6add0f63f56313a437801d298b47a1"),
		nonce:           decodeHexString(c, "8510f1a9aa56747878f2c66eaccb23bf"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "41d94d876248b34deb2dbe2e1b9852547a9302cebb13b1f0fe99d7e907ac4e22"),
			decodeHexString(c, "f2d69751363e5ee9fd0c0a9cd1ad5734c9d5a6e599ddcc16a86aa9ed80730187"),
		},
		expected: decodeHexString(c, "21fd8d48e42f0037a3a69db14cda039ba4e08c4c17cd26f9867dffeb3f22a7ddfc919298bf4c3e1a154fba617842eff44e91df94d06f58f44824982d05b6ff608e9727e56751f7180bd1d829e44fb355ebb69a8fbdfec99219e4df8fd47e4d59a8f1375921c02ec1a030383ff8b3a3dba9369cf275a783346751d20582653ca2"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_1(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b615d6ec1025e148df17e8f18ca8b34265d561b5420a8b53e9723f8e13ae065c"),
		nonce:           decodeHexString(c, "a3c52ecd92e3a9e83dbb747d2ff3cc58"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "413591cc34326a1e9bdcbe44e3ec7c096ec5ceb3cf737fc25ee53627a14dadbb"),
			decodeHexString(c, "74978fb169df7d7c29aae8af4c8c02ebd292e6e6634b0f6e56c0d267b163641c"),
		},
		expected: decodeHexString(c, "1ea225119d66ee0530f9b92a60bc7d8dc10b16fdeb1d21f2d1f2d9c4d114c508335cec6bf157e1c7379c4fc42a38b28d88d2701a7b6462022c75f57915a1fb794b572cf2a39bd8740102ed1738d79178d154ae9fee88a8d2a845e192a6df69efde473b0d31e58d854d39aa2d6d230eabaf67ce684f8f471062bfc7ee53978768"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_2(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4045ea2ae7758290a7e2835a4b126a9a7942cd5e3e0b4993856554110c8ecdb3"),
		nonce:           decodeHexString(c, "6a80fd9cbb289e15e68e6c66e6018557"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4bcebe218578fbbe092ed01487052bb9d2882b9b32770ed46198eb47a82ec2f9"),
			decodeHexString(c, "4fc425a919b1feaa55048f8f0a5e8503f6941af0af05f0e1c1cfb31ea39a3064"),
		},
		expected: decodeHexString(c, "0833cc8bfaff9543bb099c2f96ed252fafbb30063a8866e143559a68c579ca4cbe59a5c24245c8c5ec5e421fad9830c85d72666d5d6c8a177ca6cb6573bb668e47ac11aae50f9c79392c75d856e6e808bad57f210b45431ef390d78784cb05f7bf572261c7c28ec290be028a8fcb2c200c6dea97449adf9e0e1c93f398460b52"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_3(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b3134cbea6c62a43463bcbf065aca184dc51125054626762103e5218b20a2339"),
		nonce:           decodeHexString(c, "d9fd0dc2d5fd21c3ae9550dd0a5d971a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "57cbcbe6f85dcdade76b74852f832692a682d1a8044fef6add7ebed86dc5fa93"),
			decodeHexString(c, "c7d86acffbe4228546bff7e156a6b8d45c0d108099f155762ff49ef6f2a3caac"),
		},
		expected: decodeHexString(c, "e155bd9b069f6ac59430343be7fea5534620de806a963b143ea7afaa5402d5e2233b606e7d321576b833ef5992a005c63da1a7fb8ca538ba06537e40a1f9499eb04ae83a0522ca5ce5a69d2e30ce3245900c5d86fc554d0ee44b74ec548e86313a9d6837bfb6e441496bc868103fd07d333f73c7f19e9838743cc25694e178e4"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_4(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6c93a3fb792f55d8641abf9c8de9253757cadd451b550aa377c2905710101089"),
		nonce:           decodeHexString(c, "6c5d731b0aa78754bee533a260c5cd3e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b51de8b31db492f0b0521702facf637b731f60e876266ce68a9e51f46e673b87"),
			decodeHexString(c, "ac50abaeb46dd349fd9c823548728da598cf1730e8b7c8bc05fe778f26d7c5e3"),
		},
		expected: decodeHexString(c, "441e951b80c8c7ac422c0e722095213f895a731c233da6b36b50eecd8d6a5617a66f8ffb020c4f10e2fe041ab1b212fa06ff79046f79f1558dcf9c8dabcd7fdf1b5215be465eee630f1b1fefbabbcfb9e0558c5d31c589c8e3acf61f8cf28c429139f95a6321b8e78e58599e5d09f3553178ba55d4273ed8f5b93aa4cb5afe85"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_5(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "97f7bb185acddbeec46dc7a962789e68701218cbc0958f1c4006d88218e0be4c"),
		nonce:           decodeHexString(c, "b6286255768c7821825fe51d60ffafea"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "35d8cf0ee86ec23782588befc8a4c8aca9722a179f1d7f66a336d41d00897790"),
			decodeHexString(c, "6bb6c0b42829f95b364557054919882e7ac1a9b38f845c5eb76aef1b10a601a1"),
		},
		expected: decodeHexString(c, "e9147ddd76b8a94abde2154c472ee3c797b6eebf4f58c6709256edd2091823ad59510933ccbee75ba7ca7669ca5f293cac663f33e5371e7a4605848a0f9b7a2cfc55c02d45cf2bc9ae0eebac2bbd22db750452c925e66597d8a5663c438a1e6c36f939a1ed3415180e878ef5c6b58f0163664b0ebd40ca2a41801b84c61c682d"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_6(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "dab48eab3269b3a0876692c4c29707afe3d0f9eb326267f0c23dddce432b75e1"),
		nonce:           decodeHexString(c, "ea91a9cd0272bd4bece9060d0d221f07"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9cea5a04c2314e016704d971a1fe3fd90d3c9610012f9092506adfa37752cf1a"),
			decodeHexString(c, "81eb8936cf9c62db818194051e735d269fa28b18b94c90c90f2789fe9834e803"),
		},
		expected: decodeHexString(c, "3263313489a986016d571cefbdd2ad0f403224918038f8516f98e7755b1db3c66577fb8ace65ab7f26db2f143b1ad5b41a8c46a74c8b819d8eba34a8b3ea50d1026f5e70082a4270a344834a9263a4e36b03e393823c2a8031416d7b73a4360f349dcfcfe457636b555967753053a36af555598248ff74a274ee15e62a8084c6"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_7(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fe775a08961321d6ecc543435341178f66f444a6b6f08caee226f830ea7fe362"),
		nonce:           decodeHexString(c, "835d186118215d6dedcf28f8ce1730cd"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "abd17e63a0b6899b055d68d3df8c96425520d506d45e049ac83a23ed9b321c97"),
			decodeHexString(c, "92af9acbf65be3345d97e49d8602f8be465644d854d30222274a15024edc3afb"),
		},
		expected: decodeHexString(c, "be45b9e43ddbf6f6164f6bdbcbbb4c50c6bd8374b6435ae83f793477c9348e2bdb6245685056611c6e7802ceb4387e8019bd2dc4e9a824dad501fe6bbce4d834d995922de308a25e551f94dcb7b04d828da966172323e20a32cb4ddd0f4b028748bb37e368a16092317d498a5b501d7f2438b49c62e94c2f32e5bac15ea911f7"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_8(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a05792cf43db185c729ac261305dfbcd8d5ec59fda608be0157316ce8929d9e3"),
		nonce:           decodeHexString(c, "058f25520f3053cd99f3e31f2ae2c0e6"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0010388e0a66f52a135db41dfa61cc72c448dc218f4ffc6b368d41c9e1f85cee"),
			decodeHexString(c, "e217ce83882938cf38d588c1439a44941dddc229b4fcceaa5a4f8fe5189ed660"),
		},
		expected: decodeHexString(c, "240980ce5faf0b0de10cf3526c7eb0a8bc80d45983ad50b4214d6c55a3c720206aa5cf3486caddec8a605f28ea71bfe7109b4faa2de938d240741ce0fcbf9a6d41610e0611bf6c4c5b6ecea9db4852c0bcae39d5b6d597940166e8af619220ddeae40dc51f83383dc94b38b9666391a9b62d6906162c0ff9c8627027611aa00c"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_9(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "830f4001b1abbc338a643001456a8a805b3c9b925139d6b1c1bb461d6bd031d7"),
		nonce:           decodeHexString(c, "7ef3f37a33db5deff7d5f1c98c54211a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "00bb94e8bdee763a278f802da1ed1f7fe0577718a055eebbbf120111d4a5b2a2"),
			decodeHexString(c, "e8e871d4812894160b70e7cb44bd1aab226dbf8e4fdabf7b34a4511e5342d1b2"),
		},
		expected: decodeHexString(c, "e80cee53dadbe53bfdcbd9616720e407b4e3c4b4bf92023e7d0299b5864bdd4345d7d5aca22dbd105505c3085c0198a7fa0538557a3035d5bbf4d7d8da23c3c645b5db78277a4db5922ceac4b8076162c916228bcb6826e3c0e3e7024d6eafdf1a7933676c58d355708d07466416226fe8fdf655de8119a8dba17817f0dff3b4"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_10(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b701bf9feebb980e3a9aed469861a46e2dfc5d9f11bca9ebcb8e5bcc3f62a7eb"),
		nonce:           decodeHexString(c, "2f392974104fa9410b1401c61b56afde"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "f2664dcfe959a84cb384cb88de145d27c2b53a6d2483bf547501b4b22ef6fbe2"),
			decodeHexString(c, "62bdd4fc510d7c4985cfebcba6baab7a93e9302a8427ecf2592fee3b09a0256a"),
		},
		expected: decodeHexString(c, "a12a8713870b336bcab3ca6ee581a6c9d3a20366cb24b104ffd062d7a76dc3b68b7aa31cc3d00720590434a13db547d9ac5aec2c0cd87f4aa7fa2c81f449b4b916c9d224e0b1ca8e201cdf3637ad26cd8136e5823d38763a19d3e517530b9f27cc38024a2f5fb8620aee989c151d2ba72675d60e9140655a185caea70aeea685"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_11(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8f663b3a2df227e03bd383c27bde459b8b5726359fb9262e990db47c60772074"),
		nonce:           decodeHexString(c, "8c38e1211c37f38bc4ff92401801cb77"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a5152240c9a6f601216ee59cd3bb014a4b6785f53e402f13c68ab690e995a22"),
			decodeHexString(c, "62bfb4426b3f345c82c08f73ce67edb97fbd1c75486d9f9cafe9351884242de1"),
		},
		expected: decodeHexString(c, "b93bb913743785404ded848a1a0c75e105f186fabab702192a0da367c348441d0d98e31e2e4218e69b20fb3ac822419ed6683210e797fa2e9e09591c0aa510cd0c45a4959192fb6c71e8b5ccb0339e2f4a08ec64dc16cf6073244090f658377e2d28a0996421c0fd126e82ff43ad21cc5873aea02cfd53807c85240b3e37d6ee"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_12(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4b88fa497e1a2143cdfb7a12f6e3f11e4ca6a402efec54aa9575987b82d30e37"),
		nonce:           decodeHexString(c, "918d0238640c98b22c3083164e22937d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0d9815f3fb74c255e6c21f8ce165bd0e3584db0bead50fc18e18a86e49406e24"),
			decodeHexString(c, "31a200326295d8dc676ec3a99e6c90b9709b287dcd2ba85582071daad684d34a"),
		},
		expected: decodeHexString(c, "982a26cd58de5d0ee6c12a76e536c2f7f9e84ef4801401d7845d5d81d979b2e3e70e32648fab8cdac84b884b79c4ad8824d32587ca155b779bf5661fe5fcf697320e8043ad99fb2df9c3c08c1b2394a750e91cb98091ae020b167b0051349041e281305015f679f40154d9ccfa19e1b5f4713e9e20f84c970754a45971ec2af0"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_13(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "99630ec3f20e7711e5f9b4f1d3383d4b708077f50cbc637030209aedf0c9a38f"),
		nonce:           decodeHexString(c, "9e5ade896b0f6341e2df29f79d7dd683"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c04753735d995425cc6e462ee6834d804f01ed258ec7ca291f31abbff1403243"),
			decodeHexString(c, "61dd0c5b1c47fa60b79f562270ea46510378b6a350123f75a33a451f39c7f28d"),
		},
		expected: decodeHexString(c, "933f1e235bfafb809c878776d02943f8f5f4b306e3e3045b0f2c2018aece9c035c83aec1a000bbbae666eeb24aea145a367795addfb26d1ed29727525818a3edb7d9a068167ccad317afa1ed091d3c81ae761d212939a134d833801149507eae1f0294f561ce683ed38d75fbf44acba1d06431b6cee4035b96bef6a29dd8c345"),
	})
}

func (s *drbgSuite) TestHashGenerate105_SHA512_256_14(c *C) {
	s.testHashGenerate105_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b3e0ca896a303a02dee471608c750ebc8072af67489a0c07b6ceda197838fc69"),
		nonce:           decodeHexString(c, "f5213609ef951c186e87826db5bea191"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "2be009fb81ff22c5c2e15c988cdac8f21a6f17a4277fb1df773bbbcc39b24752"),
			decodeHexString(c, "0c869f061049dbaea48af93272c5b321977659a79f8bf0a5c6d68b982ef44b88"),
		},
		expected: decodeHexString(c, "cd9e8213591ed7e30743ba0dbae5f08a4021845d961040c5188093d518c3135048ea8ff052fd66fa83bf98c06d39c6cb522dbc938b6824f51488197159666369e7a9444e04b7ce5832bd6db1b3cebf8c0f7bf865bfc3cf60d2a2c0ef06abf7737590fba097c29fed234369cf9f064b142ca30e3941093904945021372c20d90e"),
	})
}

func (s *drbgSuite) testHashGenerate107_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_0(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "787c48779085a05d6231d2591592c314f6d02c5464bc09a1a93a6702fab01f96"),
		nonce:           decodeHexString(c, "dcd3194eb9a2afc84d9c7c9f52afa40d"),
		personalization: decodeHexString(c, "6fd50a9e2da23475d56f6b7a2448190f7f2774daec7f5958c6a1c651a041f3d8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06678110a57db40ef01c41380005dc5450792440a5588c49e46468367a908c19"),
			decodeHexString(c, "88f8ea0d2170e0abd6db21f3292cfe299efae6f14f32588d9b857a4109f8faca"),
		},
		expected: decodeHexString(c, "9826ca55548efef61cacb0727a7c46336f4d9ecde2548730f6c495e03b04f3ab849d9bcff5b92895558fbc24912c88b3226b1c693668e28a2096bd6871920229e637d8ad81a58dd9068bf2721b1c7c99cd8d54a13d7d2a47f9ab3b5a05321b889b73880ee6fe402ff1dcb4a4bb4a10d2671c8726cd51fc798e29e782312b42ee"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_1(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8419d978ff6545564b6b839953450421958fe8e14a9465be9f6bc266c8436a9e"),
		nonce:           decodeHexString(c, "c33466b6e5ea840bb1e865c401a36cbe"),
		personalization: decodeHexString(c, "78f45022f965d0cc3c08c45a9d496defe44acf645a363df9d3a04436f05dc24c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0492c567dfb909f96c855960ecc92c89c52b7958a65c1271998e999e67c1b2e0"),
			decodeHexString(c, "ada1cd7e1bf76e83c2f558166df077965dbeee6e33d11eee56f1cdd18a580a85"),
		},
		expected: decodeHexString(c, "e3eb9e3f61141654980e1229e1f0abc758dcc4ed3993a7b135e168345a1227c6abd171e32d7d2d629eed40904b1966f5862fd0cc616b90e1b21441478cf169a89d8a81018b734d141722b0ca7531c7ea4148b67bd30ae763825954c33b800c260356bc7a03496ad9d095c8c88a57ff9718a676d3e6d75e7e178df55ab16fd509"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_2(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f4501d68428b8225733cdd04405de609984a45d68b6c2763c96afc0beae6ddc8"),
		nonce:           decodeHexString(c, "501167667dcf754073ca65d068fb8cdd"),
		personalization: decodeHexString(c, "0f0846a752e97d4e5d6ca160281b23e8aaac87ef40a509f9b66c6000e1b7951e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24055ddcb920530f4c766f8ec1d9364b64186c699e0248b09fd1e649d51aad8c"),
			decodeHexString(c, "d99b2ba13c7b61cf2e37cd7fbd731e44d07ae7f351f22534e7a59d7552bc78fd"),
		},
		expected: decodeHexString(c, "9f08db4c787cf75d6de9044088cd1448ce729db616048a44262aadd71971e9bfb89c4ad7c5ef51036afa4dcd24c186145e19e60b0da7db074146c0822db8d546c8be4a253c12cb9249a2785c83653b8373415724ce8623197a098281840e75a2fb10292cf91698bba9e94e28adfc80bdac688fc5500f2262f5969898422f998d"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_3(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "ca0acbb8240b6a6d7ecbf6c55be3d06f18b014be52cba699466a232be0136d24"),
		nonce:           decodeHexString(c, "76d75219922f60dad511b3c0ef182819"),
		personalization: decodeHexString(c, "3582b0b1729f835b0691e4f983559d5a238573798ad1548a352853db26d032a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "67e6f9ff1a82ae840936f811a73307e670f2d66392be598643a7308bb0a5f6db"),
			decodeHexString(c, "35c43ba8a676c181a84b8221674df353e1e931dd9eed60a5de2e2cf43fb70816"),
		},
		expected: decodeHexString(c, "f6378139eca211985b2ef75fdbf4eea1cf54ffdcd7e1a4a72a73d95fdf71eb89bfbe724c4dd48ab9d5597f27f4575108bde89981c29513ee885566a985d03a87e354fbbe0136c9b06c9b6d4aa59e7d2a279cf17d532f669213b225992541327fc4ecba79dcf7d3cec3cde00c777a82562c7b4cce65122db6ba0203b494e08b88"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_4(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e83ae0ed1943eb9c2809f3b9eaec39ff5f500f3132f604f298416858728eb358"),
		nonce:           decodeHexString(c, "0367a08f5c1e0a54beb42a970c7e2dd3"),
		personalization: decodeHexString(c, "7c94613ee30a132d23a9b84566b2a9e1bfcc79299d44b731e95814dbe0b759bd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e8419fcb0879e0d71015bd1a633b16d2a487d4bd000cd417550f0e8cbb3afcfe"),
			decodeHexString(c, "57acd6d9a9e8068959983352b2946bf9705b0eb78dfd7b101cfa283d8ead1964"),
		},
		expected: decodeHexString(c, "e953667addffc7400139226cf2d67b1fb42cdef09d3d0b0adefd187ba5f305a27bd434ef111ddf3acf083bfcf4839f4ef14f920414138771f3df3cf0a95453fcfe241fd2513a9a4596f60594ed3c53d898eed2bfebe8dd86529d8274078ec3cd863b16008bbfe1fc54e2ccf20971071dcb857060cddaee639968f99e5c1b82ac"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_5(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "8e53d83a04aaf00dcc566a75ccff8aefd3f61ea666ccc8013609349dadb565c9"),
		nonce:           decodeHexString(c, "651bd9b0a4299307f37a82e75a7b2a44"),
		personalization: decodeHexString(c, "c0f8073e1efb565acf9ed8b72117f21b48e5446243fbfe01256cfc35468c4a78"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a679686fba48afe9a2478c00b4ff31ac3265b01e5f3db39e239fc84458d3af13"),
			decodeHexString(c, "f63cd2d881417c3867c51f4ebc6684614ed5f4c323925682c983bc9d5a9d1864"),
		},
		expected: decodeHexString(c, "1a165a16982c6f3ff3a751edf32c64de810be8efc19ea938c5586eb06030351e7ebdb619a8c306c8f06efbcc45af7dd757b84061e286ad8fec70a04a7f07e335b3cc6df25452581c3cb6fb4b41725af43cdb3e284195897f6b79338a5c1d38c5da6fabc2955338f3e0afb38c354ccb2cde8a0ee4d75b32d250ea97c2e31fb8a2"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_6(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "4a319ea174000a86ea3c206788356a24f39b6b1d45dac45b2b2780e0da9d5235"),
		nonce:           decodeHexString(c, "c78acaa506ce24a39c3a329082228ddc"),
		personalization: decodeHexString(c, "cbeeb7409f7344e1f5dfb063772e0f1a18895ac6d518cdf9e17c40e7b7f6edbb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d5c04a32ad65d11052af3c4c85e7ffadbce9eb4452320c7621f492371bc6419d"),
			decodeHexString(c, "3a88370fb54310f6438f938592b9bcd77ebb34bdb37e7fde5bdb3e2562889127"),
		},
		expected: decodeHexString(c, "19ecf6190bb39b324dd0f42224954ff30896abbbcffe8ed1722a1fb3f07c5ee1fcc18ea427eba324e47380d9ca449d929893f8c5059aa766db63c8ae5b81d5334c3c099a1fc51fe667367b9c63695c194377f8f7360cb96f4bcbe3af48a48cdec47279597c68f2d154920d257dca0732e12446e544f23c71be0cade7226d1570"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_7(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "de1c59568428ef983c6a90c567681d29ed17cc0af4cdf2464aa5c9fdd8987cfe"),
		nonce:           decodeHexString(c, "055455dcdb95f23380f6183dd4b387b0"),
		personalization: decodeHexString(c, "d6439b6910cb7481c6410786eb36c34928b9866d10883feceebf4fdf8b919ccc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e448c47cc32b54cfc974ab323bd1285bd3e8263b86e26fa651dd2e75b83f4773"),
			decodeHexString(c, "632dff833d94261c2e06f68afbbb7c269d625a258909dca1ad7045234c04ebd2"),
		},
		expected: decodeHexString(c, "746746968203f6303185521804bb95aebb6aca97fc75756f0b69aac27cfbda34852fc01156a819114508fe1d7ef5c768c5b3a06f460aa493321ad3ada6c55baf0c1dea628c7739cb94a129e685a5dd26c6779ce38624c47378784c046afaebafc72f52313b2ac5e083718f22c3c2ceba5ce908e07d4381758d9a8b3cf440660e"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_8(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "51ed5271ba5fe49044067a6fd6a3549f7ccdb9b1cc777febe7e2d7ad526a0888"),
		nonce:           decodeHexString(c, "9e63e687657d4810c9ecff60545b49dd"),
		personalization: decodeHexString(c, "677d3fd349e811cef125bfb744f3d375b1da5ed6377508f402f51f75d4d11394"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8892f9e83ff65ebe94db299d6d5142054a956ceedf01499584c2b6635ca4a03"),
			decodeHexString(c, "36c6e19a77fac3f94c545ae8a1005e794631131ce1a84b05bae82e2d6d770842"),
		},
		expected: decodeHexString(c, "fd793800ee78e5882e8624ad9b5aed75e0812369914372af82ba862504ae124f28233e6679df927979b380a5b24c90660b70b3545b435817c69f521b48a9f5b0e4de336bbbdff3287ffda87c5ef1616ffd3aa946d53bf2e85d3aaf935b56637549882683c93aae768cca00d3957b2f64a07e57d1ddb9f664edc61cd56ced86ce"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_9(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "bac6a7ae5a9b3e9629cfb6ca94fc29e4c20be0d0f105db3db1ff13e5c856e1db"),
		nonce:           decodeHexString(c, "2d0b5b5052a1bb0837484fff457fe088"),
		personalization: decodeHexString(c, "d5d69ec6bc1f2d60dca680e5d0ef40d6bfa6c3437ba069b177783092f6dabeb0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "00297a1384274b1c127b96353f2719ef2c1dce5d47e7a4e6accb56e629533960"),
			decodeHexString(c, "52ef349adc5cf067343a202a26806a3d216bda0699c3706aedc4d7adabbf2d81"),
		},
		expected: decodeHexString(c, "df73e17dc405884ba0b2c63d3f63a13200c6e7f3271386b3cc5433ab47ff0da54f6bab436efa258c9aac39a8c9b952dc32bda50b21d70edad0f882b0dcb48f7164881360f7f22b13ffb67bb660e2440ab6502dac4b7e97b7d89754f41fa60187d74075da14329369e44f68bd984667f27fe05f937ea3b3ae065397f29ee52e7d"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_10(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a16990706c5ef1957bd9e18fa57b842471b75716839674398374d47edc03227b"),
		nonce:           decodeHexString(c, "f12b99443b8d23b0c688a568faaeb176"),
		personalization: decodeHexString(c, "deb8909840063ac0e3febbb239efc1995cdee34aba6ce5f008bb479a04501b2d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "923d59bee650d236df875a299312a10149e12a050a8cc75e2063a2a8e8ca282f"),
			decodeHexString(c, "add1359827f94de55e8843d12d2b4e442ca533ebf6d21e62ad36c31115d9f27a"),
		},
		expected: decodeHexString(c, "82aa4bc73ebfd97f709048066cf8622d467a017bd77b94ff83cb19fb317b4466e953684c4c85b45b210992c234cf42171b59d7eeaac6efb0741612fb10b9d79169b6dd6674662a48476972cb2fc3baaddc63ad000465f013b711bbee1d2ed9c3729939ae30f72af5105406cacdca8726727d36e978d432b45167ced25f0018e9"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_11(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "64c66c0990ae8dcd8dd1d865f1971a231734a61d4764568e42cde2cf0ebeb666"),
		nonce:           decodeHexString(c, "a3d1e7779fe1b2f3f04a56784056f605"),
		personalization: decodeHexString(c, "210e12cb24d0104469be92278501a407c431ec2ccefc819913306f10a1734f83"),
		additionalInput: [2][]byte{
			decodeHexString(c, "598579c0de0354b5143b792849fd5faff95b71a5c426f58a29d0ce7570c3ba7b"),
			decodeHexString(c, "bd95ecb2eb2b1ea883405a076f2dd6b300c76f982b23ee84f908926ba7f706aa"),
		},
		expected: decodeHexString(c, "0800743cc3603f8a815f5426915d036969bcaabcc2febc1c3c985ece7471bfeb524d9e3aa17c552b6cb911b7c91acdd5f743917d3f959aa56fd176fa8554ff48641f206b9cfccfbc1f203c39e9c4273a8cff087dcaa519ef3a325bb85425ad871ba11840635c5864f08fc5932b8fc47bba71f22c7af3e1df4606e55df2b2c58b"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_12(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b1bfdb68de4e646ae5b549563f2b5a126d701fc2add3789d45a69cc59b1ecdfd"),
		nonce:           decodeHexString(c, "b7596e47dba4fb94210262d914161cf3"),
		personalization: decodeHexString(c, "294cf4536b0589729b16c7cf2faa03651882099579351fba40408d09e7b9fed8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5f383dc3044b20b2871ba535d6a3ffceb02c120fce00eb076708ef683dcb320"),
			decodeHexString(c, "9f31e368487bd9900b6ef60f213df9edb75bb4b3958194a4eac7eb217ff7d489"),
		},
		expected: decodeHexString(c, "92f4f409aa4499889db37c5b9e317614cc0663019f6273e0aab1a9278beedc845107f342b0249726ae3d31387d2d6a43e5ccefcb164225f9626857f2d20abd1a428ea324a0b4a56b65b0473a003c9e83d1113512e5aede99903af9bafc31b290063821e0edb0d2eb66ed4bca6329f8c0bfa76cdc11b084712ca429ad4ae7b4ac"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_13(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "f23296e9f6b4fe0d39478f5bd3836df6876ca143c71cf338bc56590b8d8f4b45"),
		nonce:           decodeHexString(c, "1671cb02a09e1cce4f4f5bca9ff46558"),
		personalization: decodeHexString(c, "de2a5842623793527f1d8a9920b49d6dbd57e81e5b1832a028a45a2e60218e77"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9794e6c7f13f59632bacc55354044261a0a3e9fd00ebb583f19983f8770aebf7"),
			decodeHexString(c, "6843d1d2642d6d311b8d3a8c07a082ad9fc7a64578e7fc21637d40ede03a35e5"),
		},
		expected: decodeHexString(c, "0a0f0e17827b2d90ed0beb105267708d21dcc1d6f736b6edf4ac102cf3e727b7000dada9c515a30a303103b9db763417740589e3a9716946f9c77cc999a984b0d0b74d702b2a3105be6cdec7a0e13ff6d61c3883e43653c6ad8b70a49f1640d66613c941a849f34da8327844750dfe3786ed5836c0275d991b7828681f767507"),
	})
}

func (s *drbgSuite) TestHashGenerate107_SHA512_256_14(c *C) {
	s.testHashGenerate107_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "0ddd1ec822682f9d3e48ba216777831d51a2fd2a829859c44c410c55745b1426"),
		nonce:           decodeHexString(c, "e87f5807cc22d08355de7ee7432e38c4"),
		personalization: decodeHexString(c, "416cfd40dc3d7ecbcdab031cdc6e109a897fb34fef4de26c06865abac16b47bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf6884bb4cf7c08ea954cc2d2389eaaaaaa3bf9ab1dd74372c20bb3e1235a326"),
			decodeHexString(c, "2b30cc597b280e704632ed1cd2bbbbba7a9953deaa809848eb937b6b1a44b91f"),
		},
		expected: decodeHexString(c, "4de8e3c529bda0753a9ba237633be4c844308c233d6e58995c339cc006c7d4789b5f1a6314637b9749621fae3982c5a748d58c080e12118d4442bb55732da53daeca71d3d033b10a2a807848babb822a346524b4a41e9d85941730b21c0e80a9871c9d9aab0e6d0269258b57fcbf7d703794bd2e5f3d7b3da9d3cf2dc2073653"),
	})
}

func (s *drbgSuite) testHashGenerate109_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_0(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "53bed7c2d56f54b8a7d7da4c218684d5f4cca7fe7f5232a7360a4ba2e94deff6"),
		nonce:           decodeHexString(c, "a1c969fc148e0264b4ca94a54cf9ed81"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "503dd23f5f5f7b29cee03bd11febe1b5762be2a526807a8a3f2373dd861fc92d"),
			decodeHexString(c, "733f4c9420087cd9efc5184223c1aabb5cc8432949b9dc5fa717854cbb7abea9"),
		},
		expected: decodeHexString(c, "8d8e9840291dd82ca3b81bbe67b951bcb8080a5bea13b6f226fac5a9ced6c58745b17fb50f5cb8c38e060f84c5e2c87dbf8ae339a75b0843f99cf37088848b2a2a9c5439d1ca78d4074328d5b3a6919eb8c95f6ede709ea2fc184525e5a875a337004474ce11d28b84285b8a9c43410a766942cbfb037510b049ab68bb485f6f"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_1(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1663a0e53c1f285ecfac1da43bed9ef0df072bc8df1e19eacdc5a08c8b2b3a50"),
		nonce:           decodeHexString(c, "7084d27cb1be8839c3b71c119b227c71"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "512d27dfc0ae38dfc3c7d78ee192e75c3c1b9a0cf76128746983d5b9f1af4fb2"),
			decodeHexString(c, "349fa0f24ebab5b267a8324687f2a78ae9af7ca61e0d3cf8eb16bf33bcfe3f91"),
		},
		expected: decodeHexString(c, "ecf94d83c640a382bf68727f23301925225ff8919bb897e0d46f27d5832979c11a90e924c842bf89d552d52e1aca427a88ec5893389a376af85d11ee806dfad4fb76398f86c07a54294fc1587f7896fcc90e6ff109537c3c47e95d076d33eb349f251e814ab31d9bee7f1fa0695fda471901e8adc913f1dfaaf0ea2dd6b73ea9"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_2(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c643990214c2d24438bff1d8e410cd46ebfd5d65cd7f8f00f906a1eacbcf87eb"),
		nonce:           decodeHexString(c, "d4bd6fbca5e9fd2037b1d028ee9aa106"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "e95eb1cdce75651534556c0b2ab0a823368d98543483f6aa53eab49ed33794be"),
			decodeHexString(c, "94f8e4f2193d78c76ec179f5c18349133879cf3143547f23d055a3fa8fd1fb01"),
		},
		expected: decodeHexString(c, "e94713d1a909a94f5a990ef29bdf09b05ae401e5d8df178b96c4f74b00c19dfab4747abd18b423c25c16e50f424b955256db76cf70ffd5d40ec948bf50f6aa0741be6840e2612657e11a5b35c32a39350276e96b04d6796421d0cf82902c6ac3129104c083a51de3321addeda6965fe9cb786e11093cf58397965cd1f2f319f2"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_3(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "77b9049d963536b980ea63af4af1fb832197df50cee8f51c7817800d90a700b8"),
		nonce:           decodeHexString(c, "c844537f07888ef94e1a6895629b439e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbdb062c21f5929605c0a96c7e5d44c9b75b91e5ee99fcfa4f88c4372f852182"),
			decodeHexString(c, "b09e0a49fca41eb6e9b92eba93c6bcc333e6c9418fd30b27c5fef8b403a1271b"),
		},
		expected: decodeHexString(c, "eb172638ba539a1f0ff50770e13ecd8e3c8d14d4edbc42811807d4b300e5ffb283254f32041e04d217f6317b550a18ca39d50a3b90993a12c49e049d5b71da6df922154227e5cacfd2e7eae861a2643b6e5f9f822360b1ae37184c768d96c68c186fa27d943ed98a2e253b6be89b02918a76c2e93cd7741650c40f4d68888789"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_4(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "deb3fe5793c1a2483048c85c4afcac7e13b528bc3bd692d40d48489eb9cacb35"),
		nonce:           decodeHexString(c, "df4e1d9b52514f27f5e89024ff71fdae"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "c7ad9febfc8614cd7c1023e836128b92f36dc3b06ebcabb2ffab1bf3bbaa3465"),
			decodeHexString(c, "79b9fa0be961ba70b0cb1a1a5e1122e9437fda8b738319fddce8304dd00efa7f"),
		},
		expected: decodeHexString(c, "1bdb7eac9d696380f252b10a010470f5e95ecf590a9f1c117f6d119b5eb9cb00a1f38512b577416cc66073a6e62e309f22401d0da411e20ab0c9c8b33584b96b11fdb8912b637eaa5622df504a0775fd1245b708a4f20c24ee449f86ae6c8ccb6fbf0f46898401fd3c9a6590cc5816ce069a43b1ddee62fe886299488a145cc4"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_5(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "818a0cdf80f40ea32b6961c9af1b4e31e598536eab8fda19353091c6d19fdb17"),
		nonce:           decodeHexString(c, "fdab476f4380baaf75fb1d982fbfb488"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "7101f89fddbb25ece886405b7a46d2c74e6a7847d32980bc8ff754e7ce92b415"),
			decodeHexString(c, "c88ef1acb3361500da3f9db2e085def49eb09c8e2a783c9db53c3ce70245e813"),
		},
		expected: decodeHexString(c, "2b2ee30632575980b343f9984ec2bddb606d9356d7667f5849ea3690e58468376eb0b893668636e972cf1342e8292d7057ad1096b0c5611a0e13ed019d5b19db6fce1a9897a251f7a956ef67a6ead90b3389e060995e36341c73766bb4746b6e05f8ca295ddf521e0cd654a854e078d724d789fc427a8b09b11be64c6df13194"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_6(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "3d5035c8faa2cf1e40eef78e04179e0a69e2abaef1bec7defa52c6b6f9aed63f"),
		nonce:           decodeHexString(c, "83cb8087ff8c16e7040d859139f5810e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "4e5112b1348ad1565ff4979b8702771a61cc2abb45f332a2405cd02937c637bf"),
			decodeHexString(c, "a73f2175f7b6e818dc80d6d7d3422424e14887b6987856715ab6202a5d954c91"),
		},
		expected: decodeHexString(c, "01b678ef0c4b19b4db98568e8c4ec3b3ed35e56a23738004ef10b3d1239672a4ff4187a607169b0c10ce6ad50f8f9f9ce4b79b51617004a9f6c2590e0501f87fb0435d4003e9c3a806e8411a7578139e33e97507d8249c71596d3a6a77b5e31faac0ccf27c848a8f13f90250fffc65492009e4627b46f18b114465c514ca3436"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_7(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "033041515201ce1a874c70e3d05c756cd8fab846de898a40ee0760e1814622bf"),
		nonce:           decodeHexString(c, "dd95eb79542a287f9a255c29419bc074"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "ca3bcd61e5b19522ddc6aaa7ca47e81b7441ada830ae9ec947f382d343d7452f"),
			decodeHexString(c, "91f0a8d7a8f10f18102fede3dee9b87bede797db283e947084064c73b99b1bdf"),
		},
		expected: decodeHexString(c, "b006ac6104025ccc871e10fbc61757912f120338072ff56aaf3131970330d9ea87088aee89c044a291f31d60eb86270ad21cb3d63d5fc3b7e351d2d778076a354c1795e2d150a40ab250df9b27f0c71d317f9048eb583635bfcd8fbd5d6e91d874a439d2efecea448a227e89270c5bb41d89ab44ef9a81f8373bb6b41469a827"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_8(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "13d2d8514398f3736640a71a3b7e0f852835dc612d52e75b7754eae492fc0f4f"),
		nonce:           decodeHexString(c, "7de4e31e1f4dc988412f08c392fc022a"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "dacc45511407511b96e81dd6c2730b2407908dc2e459a35ab15af87296676ade"),
			decodeHexString(c, "c9dd61835086ad085f168416167d5f5cb4b3ae21d4c3fc37ec3de01e1c74e10a"),
		},
		expected: decodeHexString(c, "305797a5b259274bfe0f2207201f8243285d93bd4efe82f2121025fe2c1822de625bc979b5f0e1ef510d9e5e49274e8385b36f94deb200c36f1e344718030417cbb32ad7dd536ae05d5a89abc41d02efd13b090f3367f6b4b721a4c2f9526a7f3609ca0a7862dc8689efaa56dde7b6d644acc3945ef1c5ba7711549e5162e2c7"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_9(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1784e2e2ead34b92f572b9615569d0670b551b3007f4d9be1bbd1049868672d8"),
		nonce:           decodeHexString(c, "009800ae1537cd56f51096a48259c09e"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "a4c6f1ca33b8e8d8b2db08a102a15081c3152018fd1183b2107bf90102303498"),
			decodeHexString(c, "59dce95705a6a5ff512a06e83756b0f3a78a9f830dfff86c0d9940dd3a002d34"),
		},
		expected: decodeHexString(c, "f920f8053860afa83254a8845f9337f9a96f92eec05ce08d752fd140bb859f8b7ffd1e6e557b784b6fda8e2dd47bc75848b347eb0b7f4d278f372bb98b3840a691e099e361379f6f51a8550760aa442a55734cbe3896de6c8d2a2683b7f9e581a39a56a12646371342576dbcf14cc69458b73bb6eea6f9e3773e0b47cc0086c0"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_10(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "5c194c98095b4eb0f4ae1fc80c5b369544103df2f2ca3d40b1b7779703c39dd0"),
		nonce:           decodeHexString(c, "78dbc82051f2b1a3442fe1c38f0d374d"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "0af314ebac96e155c097b72ad8f99513653b52792abe10c26c4f503d14b167a3"),
			decodeHexString(c, "b2dc3591fafc18678ad5a4b1c39d148d97b57388e96e920a7ed9fac0a941cb49"),
		},
		expected: decodeHexString(c, "8330ca306d4589e11e8b55d54a8c7ccbdae499a15fca1e2d8cfda9353e8a6206915a4f30b70c3c271223145aa2837eb0d10dd1c63e92948b643ef5cca0c9131eb29dd951778300d4778a3a3f70df88510bfaf0166177b11bb30c9533e95433b74de04821dddcc8d42e5eb8d20490fac142af5c07dff00ded2fa1a47e7d41e6d5"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_11(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "137bdb80886869f593a01ebaf099629dae8d782eaf5723abee0196afea1ebcca"),
		nonce:           decodeHexString(c, "118063ad3eaafb1637169b38baf7c2c9"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b46e2d7916693d3aff0eae6868a6da0ea7a8cfe6632b25a114e36bd4a5d6229"),
			decodeHexString(c, "5702b6873a0a8b4c32455ec5093b045296fb45bfb594db54263241c8759c774c"),
		},
		expected: decodeHexString(c, "0b4e0d523d4c91dba446dc62ad2e4ac5f96ec2e94c1d3810fca8d5a6bfd0c21a69063c9d1116bab1e3bad3441dcd3ce016e0178c0404e6b79821d78a7b2ae14cae202ec6c3a3778049ddfbd2ab485807f4055e07b373515fdecc514e8fbbda6b01524e47fe3015f36f4b7aa1af80614cd26e019f347538d54c516f6131854dd6"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_12(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "7a5597180a8373613c5907d94c43c1a2cd11c64ff0e6a295493cf04e7f9132df"),
		nonce:           decodeHexString(c, "ebf87235d8801bedef1ff4a481bfb146"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "b013efaf34ce479f34bd2a84d131da339c4c365cee4aeedc69ca8b64d94ce42b"),
			decodeHexString(c, "c0b6b756b3fc84867df1ff288b46372bb18d9edbf8b5a31483206eaddd9737eb"),
		},
		expected: decodeHexString(c, "835e4e76fbdaf4699ab0fa007172e0c44bec9fea82d49e626134a854738feed48c6cb71cde5c043c37085344b73bc1c9736df67837ea8cf9065432ac5c7688772ae9124dfc57d8f04eff2e63f7489fef1f65feef74817d6bcfdb10be2c6e995d95f36a2df260bc4a2ce290f31e1788a2f7ecc58ddab5f116877e7c2f0ed8e621"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_13(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "89aaf790b4056daa37e210ec61b90fa93029fbaf5a8efcddf81eb4d7092606b9"),
		nonce:           decodeHexString(c, "a4afa4870d4e79b57f6e7de1de1ff2d4"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "20ddb6bc3434f6ae523520fff328efd3168272cdb36a26928fa8c17fdbd03516"),
			decodeHexString(c, "e05d9a9cf75248f42226f35c471aa30c8f83a71e476fd11d4c910f4210e39313"),
		},
		expected: decodeHexString(c, "3dc9a4985cc68a6bb8f7bafbe1c0e01085eb9510cbbcb02c2138213807a7101db5fbb6d1b4e45cc2250f83e703bd4846cba9d9cd5f3430f4c634173d23eda6c863ea4fb52ab8cc4edf8a870b8db7d224be58843c38537c479153db76e3bd1fc3d9c3929ed858a45343b9c801aaf1a2fce1a51870248582d5989171e804155fca"),
	})
}

func (s *drbgSuite) TestHashGenerate109_SHA512_256_14(c *C) {
	s.testHashGenerate109_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "b35501793bffce28236d8e784598bc33c674cdb11dca4a6343ba7bed270c6607"),
		nonce:           decodeHexString(c, "8dbaef5ac377ef9f873c20ab8505add2"),
		personalization: decodeHexString(c, ""),
		additionalInput: [2][]byte{
			decodeHexString(c, "585a4b6736338ba663522b438ab9255782c39b36e6b253186e821ae969b8cd3b"),
			decodeHexString(c, "2581ca0314c9a224b09c0c2e677e1df1c215cae0760d3ba03d1053156e9c3155"),
		},
		expected: decodeHexString(c, "e244109b937e9a71caa70d627ec8280210c86676b4ea842c6a4569e5da0b25c1ab3794ade3344e2185641c77df4d3011962e8312aa7c2013e4373204d861e27e88ede82873d5d45ae5700ddf0ae7d523e96df236a249ffc6e009e231b77d64f07f395e57b19a4d2961a6046c910d0b8ac3d882129ec3e337be4cf2d9ef041a8f"),
	})
}

func (s *drbgSuite) testHashGenerate111_SHA512_256(c *C, data *testData) {
	s.testHashGenerate(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_0(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "d19e82a4e2c2b36a505783ad251a1071eee4865322ef2610905f76995f37605e"),
		nonce:           decodeHexString(c, "1ad142f81d7fdbd9a64b3ce309626c57"),
		personalization: decodeHexString(c, "2c59345e9e1d887228a03ed83befe1985a8a8cc655af7dd208b66bfa9778ffb4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "35703a613a2d8d8f5369e10772f5829c533e9e04ad6e7110cc94b4c60fc823f9"),
			decodeHexString(c, "7751c478f25880bd986e763f7855ac6ec9fe00d4509ea48e3272766e2623528a"),
		},
		expected: decodeHexString(c, "b2e4ae060c3feb6de19ea848bcda053f34576b917ae63efc8016b8c6e6b843a34adcc6ed74ef17fb914df9a3e252f538e33e21b80a721f1dba4a3170e3c9c4d35074ca014f375aa0cace0845fbda7f0c9c75bfc47d1e012b85da16597568e666f96ab3054c52c13feb953d46b91b8b9fe90f292978661b1a61db9fe01a7e9c31"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_1(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "15f593886acd66c07f5d865357997fe347839ae7a3db83ff582110d8f39381e9"),
		nonce:           decodeHexString(c, "b5d1e47b999c97d605f7496c476b8020"),
		personalization: decodeHexString(c, "16e3533318db21a3f9c46abf694c9622b76d552f5de62246eac8c4744fc6859e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1892d246475f79ac3287a9274980022efff11d1b4d50edad5afe96d732e537b"),
			decodeHexString(c, "6bd330e5a775e9bed13096a690cf069b1a38616dff116ba48f0bc15e319678ca"),
		},
		expected: decodeHexString(c, "81cf6bec1f9a2d4e39e0b1ed642a9c439b43677ab7865e39e03380f290cf6bc96fb50e98a48a1c1af96a705cc8d5fee58afea6459598589367ea75a02ca86a41335beea72c6d215e9eb5ad2635dc152eb4c27aab8976137ed562466db07ce4276dbda8588ac8192ae93e719a5bce0f1daa83c65bd272fcd7aaa7d405baf768bf"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_2(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "461704ded9c83e010aa8d73e4ca3f2511ac1e3e05838b471d339e5bae3873a32"),
		nonce:           decodeHexString(c, "c9eb680ebeae3d9b469e7c559c5281bd"),
		personalization: decodeHexString(c, "16d6208bb7aeda26df9f566626b00fb14279124b6c7055be8ebec6f6fb8d1269"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3a17140c2a9bf6d1bef8306c658693743e467bddd428229c299efd998bc7e09"),
			decodeHexString(c, "6054cdae20567e46a081a55f15ebe5ff754e21de0b727c361e0355fe1b2582cb"),
		},
		expected: decodeHexString(c, "cae06dd7050936f4ccf9f614b54779a06fb3e780099884af4e4de9f612c4e8f6dd9fb46aebfb35e2933494414411f923b982faf330f2ec6d96ae021f18f718f647d3c1e3e40ac42758cf84a30ec2c1f86e1ae0ffead7a9de27222c2431991422ad723bac9a89d951a3e4f4c96e4560f90fd3d10e0032a6a4ee4b452747c5f997"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_3(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "11ebda61ad081bf2ee5aaa20003ee951bbe28c83beb46935f0c72306c9de9504"),
		nonce:           decodeHexString(c, "4d03f6deffae5fd793f00dd6e5eb82f4"),
		personalization: decodeHexString(c, "5bc1a27851efcb22dd767457ce0c2282b39f3d52849754511f507f31e6745f8d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2fcc405b2c6c634b7ce251bb7e5a35ae412a1cd35f357a40fc96073a026ab65d"),
			decodeHexString(c, "f127e9435866fc53fac707c8ea671aa849a0818252c5695ce37c13cd090d9b78"),
		},
		expected: decodeHexString(c, "12c0d5dc580e8c061384f04f4b77e7127def4ee3a02657b7f7b8d386b40fc9bfc6efc92baf05d34a91ef6526f8e73d3d96746231396a57222f3b56d3606e197bc432069ede15791a0390ad0f0b3e47044fbb98d944e9972e88235d11f2251d2add7b5e0214a5c4755d37dc166f15197f33a4e837d1e84a46a0f0065472d066af"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_4(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "9a2d32fef1e20dc727be0e0a829dc920f5243ca69b398a3f1fb6040beeb6250b"),
		nonce:           decodeHexString(c, "2b3785395b404c827a639174a09f22e0"),
		personalization: decodeHexString(c, "9b30dcb792fe5160620608f3a1e3e8aa2891b95450816b8d9ed8ec682880e78c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c6afd869dd2e5898ee4f1117d0784f55d21570a2adbd7a2ae31a99c9b2da383d"),
			decodeHexString(c, "479c9ef7b5e80e3e7d239885ce16d64f4bc319780c147a3826fd7b676fd40a7e"),
		},
		expected: decodeHexString(c, "91453bc7f3080cfa1d05fca4e8c786ef87eed1d3adddad3b0d0e7768867d86de1631dd09a0c5546bce783d9a7d83554c1420e837d43059e095f9e0770a4daa48bae983777a03f2808923b053d0a2c4d52b8f89048883799d757a685a09fa3b4292cec4b0b95bb5225539513964337670f88c0ced065283c66f1d9ad231c35161"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_5(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "a401c7f698176237e9fdae6d6c0e53af28067a5538a6cbe64a3b88be8404eb49"),
		nonce:           decodeHexString(c, "d96e8c6a441164930c8d1dcedb04ad83"),
		personalization: decodeHexString(c, "57a5da1b3bb42f0b8f685ff32f0554eab2a69e4c1ca3c4738ed4c0571103776e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "764be59a216181ebe2a8c1a7d3354116745966d163db17afcc6fab3cffc91dc5"),
			decodeHexString(c, "81af9b7e9237fe872870b8445227d92e0c5ec8b68ae5804fbffb35562e01087c"),
		},
		expected: decodeHexString(c, "b05729cf7846f25ff9229430873303fd6a5333665dfe3cb6c09229e7b6689d778cef0c5e8afda636be2869f3583c200eb47ba57c3c546b0b8c3ddfc0cc053228af14fc395225e616cc20036878fcdb28c3eb08a139bf29bb3d39688b484a976aab0449816ff24716c4e5dd5188383f1de683432df2cfa32af95617f4ef2980fd"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_6(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "508e78a7f545dc7eaa985b829d787b57fb3fdf4730919530ed3e8633c52c4712"),
		nonce:           decodeHexString(c, "e77db514352e240088b56761d928ff60"),
		personalization: decodeHexString(c, "2d1dddefca2080aa853900834243e8de050ce2f1418242381fe4f0515a1f9da0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "47e904412c505656eb3b3a093207cf042681550b3a1ed4a3c5daab996d214c26"),
			decodeHexString(c, "5e3dfc3f176cddc39063ac839519a105cce664f2bb202857ae4d568999efc634"),
		},
		expected: decodeHexString(c, "b16a11949f510fbe62f88624c9fd89aad352623aa4a4d9d7a90f0fbd4baad71fd47c2524915d3371bbd38ec51926dd394517dc526a9e4fdfeb6f8e21e98486302d9472ff3a12ea4850aad19b926d76812f7cd45b9aa788a5cb6d7004e8aebe27a0fd249fd660bd67b5b4eb51c5c89e8d3d8234858139520259108a5f9297ba60"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_7(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "98b6aaba321a8a635e92367860d615a35036328b813d336c4f7412c73717234d"),
		nonce:           decodeHexString(c, "219825e6171553b299132f93ca2e78ac"),
		personalization: decodeHexString(c, "7f374e6eb48adaddd977ba213fbf9e1abf0343bdf344f5ca281f45242a279d63"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f9927afe85dde88d48ac6ddf7162e98d2b4b73ba19c769efa143fe06a972eb6"),
			decodeHexString(c, "cef13363f31de861db7d8af29a64aead7650ba514cd279e3ccd23b55eab719e2"),
		},
		expected: decodeHexString(c, "e28665a7262d78d9ea3b8b2c9920403fca82fc18c8905eae4c2fb64ccea43a3c67685b40eac09aeccabdaee78d50b912d6bcdb256b11669e298eabd61a1f588cba6ae3dfad21bd839101c142df6394a0309fdae7d9e0c5d9ef85a8063f5b8a8f1fab89c9a7297231ba7e41553bc39d972c511a2771925831f47cefb04d00e18b"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_8(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "6205db6529515e568f2bfc47870145c38e85b944ef17eca9cb9656a6df83695e"),
		nonce:           decodeHexString(c, "3924352f4be5b57cc8bf16e63874347d"),
		personalization: decodeHexString(c, "e2822d33aceae8bcbfe21cd366be89e7b8d6d0863efe86e47f0d32402808ab66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d81b01ddd6ad9e9e4056a41b9ac50d3bf4916e942b5e50f8190dba50e78208b0"),
			decodeHexString(c, "a28d3a383dc7faa76b4d240cc472100d43fde377f8236d0f85f9cac8dc62ca13"),
		},
		expected: decodeHexString(c, "f9ae1e368f2137fd467248482b7d3d04d16794afdfdc65b557c47a41da60b5b02ca4220a63b28397249651162d48b165b80953e4bba6c027f986eb836712928dc9b61c52e064182576c4170f8c01e3555b27486e5336e7d9bb62f60a12208d5c2c853cb42c1237192e7a5a6f889c3f13c910ed96c69c507546d2df35a1e92c47"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_9(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "e80059eda9e1602a846c5b257c8fab7d5a874496cdc43f59a0255700233dcbf2"),
		nonce:           decodeHexString(c, "e2711178e5628f5defc52d80718d7422"),
		personalization: decodeHexString(c, "6943811553e20af5dc611b09a810a9fbe1d169f4d74d00095f4765d61b737d99"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25501eab7fb3cc9922f0b1e478a8d433e50e992896ffbe2a03887cebe226fc93"),
			decodeHexString(c, "d215cd98765c79659034a18b8a0118a8504c0f6772bcf3dbcd6ec95ec3d62c92"),
		},
		expected: decodeHexString(c, "d4d19debb670d7e0aab58deb86587f36f65bbc2e8488d005afc69342ca4fe2ae21c3c8f95915f8ce58db8532401270b6bb17816b3adb9e5eb553227de5f832b7015719bbc9236dd9155376c644f161240f4facec851488d71b6df6344c980156fa05d5e8bc15aa697ab104d03ca4e6f5fc8cfb9730bc0dc19ca122d47c7e0ce2"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_10(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "fd3cbb5bf8cb2cb3517078a68663eb410b4c1e6534c6917cc1d410619b1b9c39"),
		nonce:           decodeHexString(c, "37442270189e8f592cd244703e618997"),
		personalization: decodeHexString(c, "93fb77ea1e487a1ea93477c86de6a665dca99621836a72290e926b5404471785"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac77bea26e86fb7797291e075543c689fe0274e943ac19522bd351411b8847b5"),
			decodeHexString(c, "afcb73389281d91c832a7b31633edf9b92159660dc64fd0ae21d87144be52cd9"),
		},
		expected: decodeHexString(c, "dd560d65ac3d76a1e674e2361a3fea702c4e60b0a41e12a76f4eed4de63d90af7d2678f77eeb1c27959d1c3f05d4eae36b6f27c8ce72282606c7502a78f72e92dd6704c77c8c9b5bdee065801783de3f42e1a4fc1e8ea16784254738f8ac7681a98254cbff176cf9012b72d00a14304804321e556b704c9f8bbd8ba4bb939cb7"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_11(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "52d3ba44099cb6ef2d1f5382e1ded6c2b38f23efe1814dec957e50d318e1818d"),
		nonce:           decodeHexString(c, "49c643b9bcab90615e55d92ae404287d"),
		personalization: decodeHexString(c, "c9e9843b562182b1633d99b75d9f073314c1316b83b07e1c62495d07724f72bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39b7d50832d82c62e7f0b89ebd2be9a89eb7e6b08f254144b9a372bb2011ad12"),
			decodeHexString(c, "2302018d8e0b4e943c702a00b55de9758297ca1829fb5372cb02ee19ead7e3f5"),
		},
		expected: decodeHexString(c, "8db291de676981e57260e83eac296046396ebe718cbd9ef83cf0bff852fa074cbdd188f82a438b1b291587e011e35763a478752fa85c749b8361bec6e597a6a516bf24cf1cd39d085b677ada70a25cda686605956276bb505b9875babc43e2b4234abfe474c292cff1fac39a2c1cabefc5e88c9c2b3484988a8aacfce12a6584"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_12(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "45243c1599a5023b37267897df1619609b6548acdea2e92dcd253693a780540a"),
		nonce:           decodeHexString(c, "2c94230db5bcb992318ece108e79d2ba"),
		personalization: decodeHexString(c, "0b406bb75659d6ba936c7aac8bfdd46ca3b948c9dbc9d262d21759c1bc2d875e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7134cebb34fcf6d9721319295813cf49a792590e241185f1c69dcc1f69561d5c"),
			decodeHexString(c, "2949161eb6e5f096efe506b07e2f4d2714696cdd1d1789f1ed73bc77389f4c35"),
		},
		expected: decodeHexString(c, "dace9aa854974bb55ea025080b017677d964b83593ec904e3c99dc0a9778c7db408d79775f0d027ea461a1eb7be785f2eb5717e829066a0f5ab3f7e60daed7e7a8a5e1689b229442b4e311c95eb16ea1351e14de2d1881f29bf86d0fc2fd9f9fa96901c98941a3742962074dba8896a0f162b32b9d24be502085c4aa21c1c78c"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_13(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "c4330e4b48485166dd91071a97b8c752c235ea17be0d5e33ad46c361792d7e18"),
		nonce:           decodeHexString(c, "75a187fa344d9ca79a438dc120938cb7"),
		personalization: decodeHexString(c, "a5823f2ea0dd84d959ea4c49646939b3799be6a19f0bb14eefcd14afa324cff0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5daf6e279fb7f0b04deae9326690ec124a8b663632e81c6f908078e4891e828f"),
			decodeHexString(c, "ea656d8d833090fd324dbfeffa771bf542f5180ccc38cf4dd26c450c9e7806c0"),
		},
		expected: decodeHexString(c, "5e32b80f1970119daa27ee416e055e6c6e2fa712fd35f0b29c3cc1f4b0391d36247c215961532a098709e52018f6cd4165886a4e8e1a0584f9645925b50ce147f6814246b60c66d509d66c7410a3cfe8018d161953cf4a46146c0fef92c8359c90d8206ad2631b15fab3b6c812456b7cab017163b037b4eaff55fbc769d77703"),
	})
}

func (s *drbgSuite) TestHashGenerate111_SHA512_256_14(c *C) {
	s.testHashGenerate111_SHA512_256(c, &testData{
		entropyInput:    decodeHexString(c, "1bebff7d1450b3bba8eb89ee198f5383a5e9d9fc7b35c082137f44b1523fdade"),
		nonce:           decodeHexString(c, "96a4101857a3904dd6ebd101e73c9d5f"),
		personalization: decodeHexString(c, "3278e5a6fd03d3f7bb315116b7d1720106e77defa3a82a2c681d6d91a6eb172c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95f4b7871a641c5cc4f8ddb8cbd987d3b0935cb2f55c77ce34035633c85c85cc"),
			decodeHexString(c, "b494e2af5b708ac30672b8ce57e72040e8233c538001a348e2cba98a8cd12acb"),
		},
		expected: decodeHexString(c, "c731cc7b21c42730bd3cca61fc5250b507ad08b24ac471d526f2217f15dc4d1fea85b57ea9cf6b3de9f650df8226326f8da0a766c6d3d9ab7713938d29d9d33ae2ffad658210751286896527504ea23d6e4dafa10f6e626a8b1e4b386d2a27ae12cd8ceb1f5024418b70c005b35f2c898a0faef74eb56044407930dc1cf73f70"),
	})
}

func (s *drbgSuite) testHashAfterReseed0_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_0(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1610b828ccd27de08ceea032a20e9208"),
		nonce:              decodeHexString(c, "492cf1709242f6b5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "72d28c908edaf9a4d1e526d8f2ded544"),
		expected:           decodeHexString(c, "56f33d4fdbb9a5b64d26234497e9dcb87798c68d08f7c41199d4bddf97ebbf6cb5550e5d149ff4d5bd0f05f25a6988c17436396227184af84a564335658e2f8572bea333eee2abff22ffa6de3e22aca2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_1(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "550875b74ec11f906778a31a37a329fd"),
		nonce:              decodeHexString(c, "08dd8cd35bfa0094"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "96c639ec149f6b28e2793bb9379e6067"),
		expected:           decodeHexString(c, "ee44c6cf2c0c73a8ac4ca56c0e712ca5509a195de45b8d2bc940a7db66c3eb2aa1bdb4dd76851245802e68054aaba87cd63ad3e5c97c06e7a39ff6f98eb3d972d41135e5e7461b499c56456abe7f77d4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_2(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "507ba51eb254372774af4a0dd06ccb9c"),
		nonce:              decodeHexString(c, "24afb1e6d8333e45"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "47f7c11fa49bceaf4704e1461d9a1b85"),
		expected:           decodeHexString(c, "542327195681a3c14cff019b9deae48a1b1b6ea475a9e7c55c5e0b74b257474179693edff166ae515137670abc6880868dce6ef93f01c5f57085b6f8a7570db4f2e04287419fa88425f6446ce2c0ea46"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_3(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "176c4b4bcd00beeb3b3006ce7c79b1ce"),
		nonce:              decodeHexString(c, "00570adea1b11d0e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "efcdb4a860c38f12822508b08ad0e381"),
		expected:           decodeHexString(c, "3ec0a7b0824d74c6fe84813199e699953f5ccd4c937d6224e55d258a4e4513c5f3d2b7119c68070b92c71200329106208cddf293b288a1ba1794d189d77b706a920138172f25bd2c8188699a4e1633c5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_4(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "618e4b2e79bf0544e41e48510632e99d"),
		nonce:              decodeHexString(c, "11c09a3f14787b62"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "41a4aeacbb827faae7f3f3c1ddd99016"),
		expected:           decodeHexString(c, "9543339c5d0ffb2e4d7e79416ee89611aa456f23fac0a0a4912c12077bc99d2b1d81ea8b28c1984702deb8279b5e4a2865e047cd344ef3c8595fcb031fc3794e08e5f95aa7a313def1b1f54d0875b1d3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_5(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "bf5d896204b2d71a9a9eeadd58bac275"),
		nonce:              decodeHexString(c, "1310b8c65a0eb394"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "db24715d9c747b8160ed1df59829e231"),
		expected:           decodeHexString(c, "0d6af856bb2e06db94f3f87e49e376236d93023af557a1f012eb7018cbdee4fb1aa41d0914c2cd760b329e40e3df8495c47d8bf62e50d90a094304541df4414ca69f9539f5c5e7fa74f6aa90789eb68f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_6(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a7dca72a320967c867d8f1872cc36f38"),
		nonce:              decodeHexString(c, "0bd4fcebe44e97f2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1f038f2276f994e8591fb7a61956f505"),
		expected:           decodeHexString(c, "2853bd82112a794129b2fd527cbe4d53b5cde0ae7bd30e9177af7191d4a9261aa1eb8dcc3ed0ef59eeaa3b79ee8928bdc2043f7e64e23efa5820497a18092ce5c0dd8942e26319c1c3643add752db1ed"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_7(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "0a0013c6ce7bff5bd71c88d9dc2b3ee3"),
		nonce:              decodeHexString(c, "6d9b2c2901c5cc41"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6bad427539359fcbc85a0cf102983601"),
		expected:           decodeHexString(c, "75c2514d553bd8ba341e5cbc02876790adc4e1b7fc65ffe2da79dd0b213ab53d34a5a4f7b0ce0a0e5c89180f061db8ebde9461d541879edc2000093460674660df929b4e6f566260b1bcf9d465bfbc98"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_8(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3d6b261f3fb19de1082bba9a46f403ac"),
		nonce:              decodeHexString(c, "fd976be5cbfe4c5f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2e8d73b4fa4bb348900cb247ea88b297"),
		expected:           decodeHexString(c, "faa7ae51a990dd67f6e19c11e647f99a64556ba225ebb7b586df899eadada5eef2689fb5e34eb5734355922e57b41395254ad17b39c4d50db35ef141c724fb8dfe6626bdd9ea097bd2fe0bde9e215881"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_9(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "659521dd7c43c58cb0e0ae953b829c53"),
		nonce:              decodeHexString(c, "c79eb036b2c0e722"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8fbaa9a580c943f150f557b6262dbed4"),
		expected:           decodeHexString(c, "0de2196912f843d943e975ed9fecaa701b873b2a6cae4a862f4aecf7211574de82f43608dfb7aee3db3c880e22bcac175e9c45fcc32cf3f42f58681d51dc8fcb988f9e0ba6a45106becf89b9058a95b8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_10(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "58dbf71b96a3d390f071248c2134601e"),
		nonce:              decodeHexString(c, "992f3aa2d208fb8e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4d13f73089b45f61dbde74959ddc5204"),
		expected:           decodeHexString(c, "9685966e1c496cd01e4c5ed607aa7f43de3f4cba7bad20587afa7ebf9ed5398944b725d1e4e139c3ebd1fa3eeacc9759f5cd56675ccc82d0a4e51b0019384082485266732479cddc354051e51c2b2957"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_11(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "7fe8b23193eeafc639b38dcdc310d0a7"),
		nonce:              decodeHexString(c, "2d1164529f277715"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "40faf6201f2dd1a3b37a7979f5579fed"),
		expected:           decodeHexString(c, "e43728c19c611349ec8a3747a6b1d4dfb7583a851a9feae7b85c7afb5d804a22cac9b961a3d7a1947c8557dde11ffb47d0b2397a02c450cf4cc9d906c6a110d840eef120a32a00fe4bf64a72983cc816"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_12(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3b45a424d559d13685260d3f5e0c868f"),
		nonce:              decodeHexString(c, "93fdd53fde18ab61"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c49d004cc4a4293b82bb0fe8cb23be4f"),
		expected:           decodeHexString(c, "77844be2987b1324f06cae9a29f0654e7d94d2a3ec7d79d91f6bb34c6b03deffa19a1f4a7106ff7edab80f666246eead47ac67deabbcad346a7cec3194e6252957a2fe7e921c1eb804bbd0381f92a523"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_13(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "9d08544421f30ae7855ae1f3860a1279"),
		nonce:              decodeHexString(c, "237904c40c13ddea"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "26afd4f369e5d33f11de1233041c4f6e"),
		expected:           decodeHexString(c, "c72464c3200cde538c5fa90fbe93a30c633daf47376692b6f6f084a76540994e38a88b40655d52c8028ebfd446eae51d7ba5600f693a4b7344c16862896d34e86cdef235b1035e794672c19f99bcc23c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed0_SHA1_14(c *C) {
	s.testHashAfterReseed0_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a332a07de61bd55a25a4ca4e07715363"),
		nonce:              decodeHexString(c, "70a713a6937746bb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a6dfe8d5b5844ba4b66522de8be68b9d"),
		expected:           decodeHexString(c, "6d323d527613472c7e553831d8eac7aa470e26d353f6223de9ef7e5aa73507f5e23931a8bf307b6ef5ec71b5e152ceb2ac0b2f48411b98d18eaa734bcbeaf3874fe98e8355303e346447c74182a23d1e"),
	})
}

func (s *drbgSuite) testHashAfterReseed2_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_0(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "0ed54cef445c617d5886e034c09736d4"),
		nonce:              decodeHexString(c, "2c8b0713556c916f"),
		personalization:    decodeHexString(c, "f3378ea14534304112e0ee57e9b34a4b"),
		entropyInputReseed: decodeHexString(c, "0b9027b801e7f72ee6ec502b8b6bd711"),
		expected:           decodeHexString(c, "55370ed4b7caa4bb673a0f5840b39f764edad285d56f018f2da7544b0e66396235961db7f6dafb30b6c568d8406e2bd43d23eb0f10ba5f249cc9e94ad3a5f1dfa4f2b4804091ed8cd66de7b753b209d5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_1(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8f2a339f5f452130a457a96fcbe2e636"),
		nonce:              decodeHexString(c, "0ed0e9a5a4548ad0"),
		personalization:    decodeHexString(c, "45e4b3e2638762572c99e40345d6326f"),
		entropyInputReseed: decodeHexString(c, "1fff9e4f4d663a1f9e854a157dad97e0"),
		expected:           decodeHexString(c, "4fe89641f8d395c4436efbf80575a769746e0c5f541435b4e6a6b3407ca2c442a22f662828cf4aa8dc16bc5f69e5bb05d1438f80abc58f9c3f7557eb440df50cf4952394671155981443ff1314855abc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_2(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1d57c713eef2386e067965333f435172"),
		nonce:              decodeHexString(c, "87f232366a369d1d"),
		personalization:    decodeHexString(c, "8f202d70d48dc732ad220ad6554eb241"),
		entropyInputReseed: decodeHexString(c, "d9ecdc8e447b01a347b5697897ddc0c8"),
		expected:           decodeHexString(c, "4503bb8463f2101117be877f88885e3a0ac146c9c0c6695bd9521e9e56a593cd8fbab0f80dad6f1a168df45cec13b0b68f4dd4180e28917b1b5e10dfa351eac460301476104bcc9e032bdd18bbe7c22b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_3(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3c76990bc4ef3e1c0ba0748c5c5a82a5"),
		nonce:              decodeHexString(c, "0d8d1e425d5cfeea"),
		personalization:    decodeHexString(c, "f961a0573fc52050fdc44c8db3438c13"),
		entropyInputReseed: decodeHexString(c, "f8a95057fb6258fc1566827568d57bb0"),
		expected:           decodeHexString(c, "9ca5eabd0d0c44cf0c61151fe72337825b94a2c13d661a91a0bf6e8e31ebb46e677d8484637ab2d6760e0dd8515d6b99e781673ef7dc05d659184b5598cbf1174d7fc59a86afca13e073dd8e61d0dfc9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_4(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ec0d4c25031ea07762cc4e68c8bf9413"),
		nonce:              decodeHexString(c, "c1e70c4488f68024"),
		personalization:    decodeHexString(c, "8ba2a33c7839055f05ba9a030bd1a512"),
		entropyInputReseed: decodeHexString(c, "924893a36422e4cef173313ea416074a"),
		expected:           decodeHexString(c, "6b1687c94bfe8f06f6287acb5fbf84f50a31f73dade75eab0bb7cf52cfbfdc0134635317b14fda0373746d3146116ebbd789402c68af951203b0f6db3652605002389bf98bb1993bf877ff7c4656db5b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_5(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a4078d3105bd364d7c0f5965baf49bd2"),
		nonce:              decodeHexString(c, "80c83576fa024fa2"),
		personalization:    decodeHexString(c, "10ee38baead5cc7126583c7d63056038"),
		entropyInputReseed: decodeHexString(c, "e2eee82bfc03bab0f6a59795455e3339"),
		expected:           decodeHexString(c, "41b0c2440db2f5a0e2f6047bef43016add5ab6d4249c51f38d5cef35afc865218bb582e24309f5288cd1591c98a99d4b62fb20666b056d43b15d395ad810c93d8766c04bb4010e5da3817e9f387dd2ee"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_6(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a311cfe145f7540d898ca10c215ab106"),
		nonce:              decodeHexString(c, "36cfa2ab1e88eab5"),
		personalization:    decodeHexString(c, "9740b20f80b712e4d5516eba0dde1821"),
		entropyInputReseed: decodeHexString(c, "ffa44a64c219595eff640d0259a3aba0"),
		expected:           decodeHexString(c, "932c3ae5ace1e1ce0c3c2cc66a7d3544baaa815074f9ae25144baa02d52d564d5d50cd88a291a28b39b175925c8c725c3d478a64c5ee31aa9f51b9a12ec19b75d35a4b39d32a84e5dbed68c0741f91f1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_7(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "11d91a374c9b3983bb82acdfbc98322e"),
		nonce:              decodeHexString(c, "ee8d28eda0409be7"),
		personalization:    decodeHexString(c, "137039150d62fc19a6bbbc0bfd7d8b13"),
		entropyInputReseed: decodeHexString(c, "797d4a63161b3ffa795365c6b4fa0442"),
		expected:           decodeHexString(c, "346a92b52ea583bd235ef16b3865b4d860c0e0e84c2baab870f439bbed268178dc56c08e1add8a6b1866cebc1bb37a372a1519c6d2f56893af33fc0c1dc8196ff1314e68599801980f878fc50281303d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_8(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "dc130de18d085bc2a5db2bcd271f7b78"),
		nonce:              decodeHexString(c, "a1332c575280760a"),
		personalization:    decodeHexString(c, "d249c67029e702284a35ce489e320947"),
		entropyInputReseed: decodeHexString(c, "2f4c382535f3c51fbeaa590b2599811e"),
		expected:           decodeHexString(c, "f3f48146c210b5ace02042856fba084102ffde981bd480fefeb3a0ce6983b5593ad682f15dc2c83f68d892a65049d701b0dc348858c0c83e9e1a6e49f84081708720e01c3f85b20927157421ba01ffa3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_9(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "cefbdbff9e42df35ae7b2ee1bfa903c5"),
		nonce:              decodeHexString(c, "5819d34e52a12ab2"),
		personalization:    decodeHexString(c, "743c180b6784a470e37de62ee9d6a6f9"),
		entropyInputReseed: decodeHexString(c, "31d9fb93001549ab357bc51095da0631"),
		expected:           decodeHexString(c, "862e0431f42e9c888cb0483dce79c1fca6d0fcc450852d786ed208bbbde9835da6ad2dae292fbd494e822a167a8efc3b9954a4b25f53c9335f9c74e77e23dd8d84b0c8dff3eaa8707c6fc03be1de2ff2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_10(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2fc37e43cc278fe8db16beeb16625d9b"),
		nonce:              decodeHexString(c, "3a5c14484913a8ad"),
		personalization:    decodeHexString(c, "56dec9d515fc2b53e67ed057ebdb671d"),
		entropyInputReseed: decodeHexString(c, "2a9b95685ee2190f2b8f67329cd4b223"),
		expected:           decodeHexString(c, "13db156f13faa870b1a873bb0141ca2d59bf0b232de966cd913db5e10485f2ee84dfd7f475061e13cc62db81322a367e08a07999dc9320a501b758048b8f54f99c0701b260b6a6958f481dc1321ea7fe"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_11(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "35f1e9cf655ecdbf5f554c09e6ff6277"),
		nonce:              decodeHexString(c, "ff90f6a1db94ed11"),
		personalization:    decodeHexString(c, "5edf950b45fb653d5a39668f59e2be17"),
		entropyInputReseed: decodeHexString(c, "4cc1e7b6912f48ba85a9a964d49696c0"),
		expected:           decodeHexString(c, "8cd1f3644981ae310f226f9dcf0d05f8a6488fafd0af96bb43f857e8050ba12b87b8e9e6fdee7023e4bd2b5c2bfd69fbcc04e9b1518d9efe1f1c303f3bbe3413d2f3695dddd32af0c61e398179178eec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_12(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e5182ff930f1838e5719481e474b09bb"),
		nonce:              decodeHexString(c, "410870379fe115c1"),
		personalization:    decodeHexString(c, "384882329e318ac45359afff57e67169"),
		entropyInputReseed: decodeHexString(c, "8c107528c286bc996734beddddfec1a3"),
		expected:           decodeHexString(c, "41374aaea5a4e96bb6f61cf586ce20f342d44176a75ee382733a461da9e8c5777f624184db06842ebfb100177c096027a5499059f34c9ec6ccf4b15322e837e8ce42fcade4c24d3a5a844541ad3dd092"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_13(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3f14904418bffc31cc082f72d711c88a"),
		nonce:              decodeHexString(c, "3fe000daa9bd716d"),
		personalization:    decodeHexString(c, "8970e4c308fce92e080a537d776a35f7"),
		entropyInputReseed: decodeHexString(c, "0d94959447193ea5d2df6a387cd68d28"),
		expected:           decodeHexString(c, "73efb49cbdb2a822caa154477e01e1f9b363e6029cbd85afccad5ff5eec26fabe6e0f52493d32371faa6e919afed5e9ab493517d715d6a88ae8d697db9905071f00400f44f8c2a4dc1b12793f8d20f08"),
	})
}

func (s *drbgSuite) TestHashAfterReseed2_SHA1_14(c *C) {
	s.testHashAfterReseed2_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "34ebb9e909be8023244749546b7e2ab8"),
		nonce:              decodeHexString(c, "d29204fbbca38440"),
		personalization:    decodeHexString(c, "0af2c08ace9e7c17b7f3b2949a8c3be8"),
		entropyInputReseed: decodeHexString(c, "5c11ac5a47f9292b2ed51f40489b9c96"),
		expected:           decodeHexString(c, "1eec7fff06306acf38836a2ac4c3efc85a9cf44200653be96dd43c94424a77e7f64842100f8291ed312e4dd21397de4fdd592f1070069ceaad507c9c5b716a97fc68e734d192934ea4a9cdc15a4d362a"),
	})
}

func (s *drbgSuite) testHashAfterReseed4_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_0(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "4cae82dd4124d4a441b31ac9a9663a63"),
		nonce:              decodeHexString(c, "409366c5091af7f5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0973dec18cc56346ca1ec25a232cbba1"),
		expected:           decodeHexString(c, "f062896a7204574be3a8f7118a936d9ab32510d7cd7e4aaaa9217106ec9a2aade4465ed6d741829ec501713403e97673954d9fe73dc2e77a711f0f118b47f507dff8bcd0b041f2ef87c68f819bb2e54e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_1(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e2e45a23bc2400f0d6a4653e22bab0c9"),
		nonce:              decodeHexString(c, "cd3e9275beeb6477"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "84fdab233c4547231d98d2a22601f8d6"),
		expected:           decodeHexString(c, "bd4625f5eae6f8b3fc246ebce913b9aba331251bb518fb0d5c8116b56b6ba90ba3acd523053a0f2bf6911c07765709499e795cd9c46283aecc6eb171e52eb50854f028e3f677f22b80a7d90520de9121"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_2(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "7e94733572b42b190e09cb66d2c084a1"),
		nonce:              decodeHexString(c, "b8a95d144a0ef306"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e627919a94a6a0ed758c1b40041fca86"),
		expected:           decodeHexString(c, "57657d2859e365dfdd5b6eca33de232ec3d0bb96ab384f7718e3c0cb253de474a556df447204f322fb944ddffc21f07fe3f480e801d65527f05cec6d1bc907e77f44e25465f2c53d0a468eac793a11a8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_3(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "cf21a25404c9e1eedaa60a66d8c8c4f9"),
		nonce:              decodeHexString(c, "74d6783781f3e389"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1bd79fbc7866f13fac7b2115a5d1ef3f"),
		expected:           decodeHexString(c, "feb8c639d397a3b940c68d893a2c29141135a00d15a78539401bc7d32783ccfba664c6408f2b6d1257bfb25fdf8a1b0a33e065b416aacbb6576d2cd949abd18c3926376bb29ead32fa9c6d7d9c17c69b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_4(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ae2af78e32a56b2e92b5d464fb6d51f3"),
		nonce:              decodeHexString(c, "5a2d67146c7b0b53"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "46bbff6ef65f0b5e5be6644fd60ca174"),
		expected:           decodeHexString(c, "6f08859ce9b4a2d3ef9fb82694b575f72679af021791313512b2ddac02512c129fe0d1d6df45dc61608aea151b7e1a3e0daaa6553ed546e7f017e1b5ef894b8ff4fa51bd7b1aa3d9aeae54092174c1a9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_5(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3eff06b5047fa403441f559c413524b4"),
		nonce:              decodeHexString(c, "918e1da85d6edcc1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e9ec50c42cfd20296a324d71f0fd0240"),
		expected:           decodeHexString(c, "c73515ccdf230804d3679d80e21a49ecdf331dd1a759ba64878ae37d9e980ac654ea7f839579b8660b60206e9c3e938c0805867ed5bb110932677fa9a24b02472b84c0d5a551250ee1ea393c00fbe749"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_6(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2409e212fbc11c625d4cb283f42b462e"),
		nonce:              decodeHexString(c, "e4bd228c316adacf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bb92af46b9a5775aab33ae4621678452"),
		expected:           decodeHexString(c, "60efbed017103dcbd04b15a52eeeb61d897220dea53ec4794df7bb1d694bf00aa23c7234d84b730ce4bbc212800791546ae143e08ff8f521155a742881329c1a5de0c47413448519d12628feec5db30d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_7(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "890777e83c982e9d6315f7475a6b9c5f"),
		nonce:              decodeHexString(c, "29f813e424a28be9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0e588ae0bc753c5807f5e74852d1d14a"),
		expected:           decodeHexString(c, "9327fdc8049ee71b6d6b594cd994d30e653ee746b3ac4302d7ba8eca1fc2618b1c31127abfdf2e155e893673ee0194504bc9b9a13e037221e5dc30eac8ade2cd8b5795566a9d9bd35ce5a0355377e276"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_8(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "53857c37a460265fc3e57b86a2a8fe0e"),
		nonce:              decodeHexString(c, "d75b8eb747f2b77a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "792e9291da0208516caeb7fa93f3f376"),
		expected:           decodeHexString(c, "efb8442c6e1fda43df74e064f9734e7c6c2b46ebbb1dadf44ea12c070ba9b39256b3164696ff8537e357503358ebde5dc7da7f63a104fd4d5d428ef75b9c82f7f8e4f889e3f10b6bbbcf5f0a040bc9cd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_9(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ab112b2c7150801b89c5d686d3cf42b3"),
		nonce:              decodeHexString(c, "252b7d5283413019"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d47f6ff181a0f475779931196abfa5ac"),
		expected:           decodeHexString(c, "b705636c0ae4df0a33f5f18292468ae40796ada0c4318f96aa795114300ede83e37101c9198716cf8b3909696830fb696655f7f0a9c78d763ad6799322ee159d8c3fe45b59941aa750a2ded04c298056"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_10(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "044e23d92e94db1ce7bd629b7746b53b"),
		nonce:              decodeHexString(c, "8bf4eeb369ab1eb7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "225a181b44529f83f6632aac895a139b"),
		expected:           decodeHexString(c, "fff341551e1ab3e6d1f6472722413f831671b32e095f45cfe0f001fbe09b6ad3c484f237790378f9d6d18bc6011524516af4a40b15b5f50ebe2b1e8b0242c86a491de630035a9f387617949e2dc5fe0f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_11(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "690b28094b640842e406b33d031707e4"),
		nonce:              decodeHexString(c, "df19c613d926cbc0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cc6a973e3d47be5190f9c9f7f4adca80"),
		expected:           decodeHexString(c, "d6beecd6368a8b4f8bd700568ef48dcd25814d2d3ea032d2402c6424afcdd39b76d37aaa7c677dc4abd8ec9b96c999afd1bfa0250fc417a5e7ad2e31a89a51770cf238f8d94561cad33e376758a7ab28"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_12(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a20483c91fda30d93d51a787823784f8"),
		nonce:              decodeHexString(c, "60c4903da946a588"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b039c350265e9d2a0ae7eb3c09a59172"),
		expected:           decodeHexString(c, "4794031bd9b82b64718c7dc593efc73c9283e0400e8816f400dc93215019d1943d487c3ccb9ee578b4b2a8c079f3a8264d9d16819cdb26b75254217a510baebd853c4b1a1c646bc1609385dbf409987f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_13(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a2127d5992b3e69bcbf41fcd4a3b4e9a"),
		nonce:              decodeHexString(c, "e961782b3f40f4cd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1a231ed80c3eb0969f438ac11674afa2"),
		expected:           decodeHexString(c, "05a7bf0fe9fe12da2492d0fc0b5dcdd499c8eff1d90d4a606d63a8e3fa717310c2867655fa28c698681943a49dd33dc66ba75824eecd78f5e6a652778758b2223228ee1e371efd9ed5147b5e661cc82d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed4_SHA1_14(c *C) {
	s.testHashAfterReseed4_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "f217642654e18400222a9bb1bf202d9d"),
		nonce:              decodeHexString(c, "a59de3da92630338"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "46d5145a20e25e0939d12cdaf273fe3d"),
		expected:           decodeHexString(c, "68d345d8e7a87139c3cb0f820077acbde8985de55df79bd12aa18e8a8c91d1510f101537c446fca6a69751b38850a39049c45308768e82b2450f528d590d7cf3b4263aa7ce85f17e18113e43d9a5b14a"),
	})
}

func (s *drbgSuite) testHashAfterReseed6_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_0(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "df6442693c492c65f0e62f769247cc5b"),
		nonce:              decodeHexString(c, "1d86b393ee2777c1"),
		personalization:    decodeHexString(c, "ff64ab60c6ee2491b1bbf5d44ea76811"),
		entropyInputReseed: decodeHexString(c, "6bb41ff2d3654440b027905d054b24b3"),
		expected:           decodeHexString(c, "9aba6d3f93dcb2bdb4cd19c29ac0657725ed0cee9a0d929efd931750a2fb0a904c7f019ab1634aac16fae83ca351e83e4906c9071bd737cf611eca7445a2bc279ea1f05798bc556ac0d78f722b313343"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_1(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2bec17c06b8469841b564d4114d3a632"),
		nonce:              decodeHexString(c, "cc821fea842e9cf7"),
		personalization:    decodeHexString(c, "42fbe575d1a6f0e1b1fb455b43c7d08d"),
		entropyInputReseed: decodeHexString(c, "69cb6e22e5d7b532bfce61c36a7f4a96"),
		expected:           decodeHexString(c, "0721db47794ec631a6c5e2c7f3367f608bcae824bc532bd6042b4e07d2f8d40a341ae242da36731c5d42299ca7f91a3bfbbc36d5f114ace7ac01602f89a24a4649276db2943dfc09da913c3083d456b7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_2(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "cf04cd7612e1b076d0b20514606657d5"),
		nonce:              decodeHexString(c, "9afe5550efb48d93"),
		personalization:    decodeHexString(c, "d9410bd534d91986d03a129976338338"),
		entropyInputReseed: decodeHexString(c, "5d3fa2092c20fbeed0f43cab35bbe15e"),
		expected:           decodeHexString(c, "6c8b9de910823fcf6df6b0e1572c13b197eca26287cf7ad17a6fdc0fe99a90f19c1fb5ef70292cbc6260bae04d70ce06d2acd63e7d0c37fac662e898536286012917f3083222148ff677ffe2e1c0ee77"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_3(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ca3382e2c6afa8090dab10ed332579ac"),
		nonce:              decodeHexString(c, "d6b304b5abbb122b"),
		personalization:    decodeHexString(c, "a7af3f9071528b9d361ca814f3fa21d9"),
		entropyInputReseed: decodeHexString(c, "dc37621831f091d6078d448856aaba89"),
		expected:           decodeHexString(c, "9f31474793381444b5b2a3d9c53eed022b779e405404b25b4f8d6af54d11b8130e15905cb212dadc1907451df920d2702c0d6fe843d786f9638eea06f364f91e113aca28f81557c9720cbd5733d30108"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_4(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "9042d8fe759cc3106fe8fd64b54494b9"),
		nonce:              decodeHexString(c, "3133ad43ace959a1"),
		personalization:    decodeHexString(c, "baad641c6cef0212fbfd0682196a79b0"),
		entropyInputReseed: decodeHexString(c, "5690cb878e8a09779228ff1414a8a75c"),
		expected:           decodeHexString(c, "c8364a852e9241a437f062fcbe12d2cb8e94b00f889a2a397c12af1d2a5f252c7c3e368728421ccab2b2210b0682384d533ef4c13da651d498480e6e23466369cddd97e54cf41966cdfff9b3422b7b1d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_5(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "55814c3232e2eef1a6d28a821b22bc5e"),
		nonce:              decodeHexString(c, "ddfd92ddb66e9b6c"),
		personalization:    decodeHexString(c, "0e6c0d3ff2db82fc2c7223293b78e1fb"),
		entropyInputReseed: decodeHexString(c, "ed1c26b91ceac071e4db23b0d81e075d"),
		expected:           decodeHexString(c, "1b814091991153c98f1feff2dea2959c163fc27ab2f447dafb2708cd4ec937e2a648a1b6df911ea528fa6190ea2731f05a69dc08d60e9c5e81ad9f83f3d322adc0a43956f1282cd04804f44d63cee36e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_6(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "304ace3da57b849061d013be67dff5b9"),
		nonce:              decodeHexString(c, "eb7759e4b85558af"),
		personalization:    decodeHexString(c, "ba4aa19dac3ba5135e8d4b5f22b6f190"),
		entropyInputReseed: decodeHexString(c, "79d7bb8867199d8d755be4aaab2b8ff0"),
		expected:           decodeHexString(c, "38ad786ac834524ed4082afa134abadd1d3e3ba582da5d10bdd8f7003c382204ed10ca0466872a325e476caac5e12893b0ac612b141d64b83be5af3ad45c02d051201029a4acaf8e8cee88c16e745a73"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_7(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "278937302893bead0bbdbcc633016d6a"),
		nonce:              decodeHexString(c, "957547c91a999c77"),
		personalization:    decodeHexString(c, "f00eeb8aada4e3daf83d13d9850874c3"),
		entropyInputReseed: decodeHexString(c, "e62b90a6a4a11bea34f77fb0018c29b2"),
		expected:           decodeHexString(c, "1804a61c02b58316d92c0540161b97535c0611ea9b8960317259e448236812b96bc8e46d0ad692ea60589b96fa83aa5984adcef415d9fe53e9eca111e0d05f3da8dd0b574ac8ac8e518dc84adbdaf394"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_8(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "7d81f1565c9893916bc61d660cc99e11"),
		nonce:              decodeHexString(c, "c07b7bca723e52a2"),
		personalization:    decodeHexString(c, "d2ddb56bbc35d73655070669f4a2bacd"),
		entropyInputReseed: decodeHexString(c, "d7012474ee4ad5b0272572dae6fd6af4"),
		expected:           decodeHexString(c, "dcd900b725375668deb6d86e93f68353942e55dfdbf89063f7a46e03ed6115557adf5b84f78adc6fac815dd8b5cc9c8f66ffb377bb5a0436219b087c2c55ed338a33b9fa04f7a8955051262b6523d887"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_9(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1566b52f4b3b8c9aa9170203a3fcd819"),
		nonce:              decodeHexString(c, "b03d89a14be43710"),
		personalization:    decodeHexString(c, "631aaf4e04e6dc7cd1ba8d7fbb828cb2"),
		entropyInputReseed: decodeHexString(c, "39deca3c0116a6517f5a1920035ae8e8"),
		expected:           decodeHexString(c, "5b399647df27efabb03263f3a303c3b2376154697c3ccbc51f8c2c77c7dfd2bd5b6b88d82ac2143a96fe44619624b62ed66fb4aa773b1d20f8948e7cb06b1eb1709648b8d894185b5fbf613337642378"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_10(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a4bc33afe038cda8d55ca3dd37fc5d72"),
		nonce:              decodeHexString(c, "8ad815f9be6eeb45"),
		personalization:    decodeHexString(c, "9b9cbb081487c1ea40534d29cd79e8bd"),
		entropyInputReseed: decodeHexString(c, "c933fa73c99b59db0e71db0c9c44827d"),
		expected:           decodeHexString(c, "aa6fcc36f21a4cdaa8cc0120ba2247f40115aa3a32e61010e4d69a02bb6dfd17be5b645fb248a55abc8a7caab4bc003c1806d5e151a2ea2c78b1e804307ed3f182d8d13dfd3c13075bf22c3aafd0ec29"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_11(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1a80bc4e395c812dfd3140ab74224068"),
		nonce:              decodeHexString(c, "e785f5a8d3681258"),
		personalization:    decodeHexString(c, "08ac198c6122ea2e63291f12f98b71d9"),
		entropyInputReseed: decodeHexString(c, "76e76922c964bed1bd8ec611682a092a"),
		expected:           decodeHexString(c, "ac1ae9717329b6c7f818f4a00dc4054c3ad16a72ee7fd7c3a5c3dfe8198e2ca984c4156f7868a7e8d41311068c7e2257dac4f86b0986af2992db79f16588cf43e528fff9e1920743424a73169336d800"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_12(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "6429a48bdc27456889f9bd4ad4d24690"),
		nonce:              decodeHexString(c, "92c78d2ba2a489c9"),
		personalization:    decodeHexString(c, "80f49bde3e4ffb5a29874adadbf97c32"),
		entropyInputReseed: decodeHexString(c, "543fcfbc9dfe870b40bf74213a4cc830"),
		expected:           decodeHexString(c, "ab3412a8ce277f3f5da0aec483ffbb0a325511e58564ba23e5c140407b3e35314a6b7c3455ae66ccf82982b498fb0bf17eeb44ce1a5faf88ae2417623633363f6a7f7839b893bf6d100ec63a0a00c039"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_13(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "78ab6c8af92433b8671435c95e3815f6"),
		nonce:              decodeHexString(c, "d65529b57ab2921b"),
		personalization:    decodeHexString(c, "e270a86b8ee5f9f92789679bb08611d6"),
		entropyInputReseed: decodeHexString(c, "94c7f0a336e494d9c17f635944e5ef91"),
		expected:           decodeHexString(c, "248473aaf94968e0de6f6459039b4a212b55df7cab4aab8895655aa00b10f334ef3d9a7e09e845c30284bb4cce389b4c35d220efa8a932cf02d44962da8d55132f810bd4eae09f67b42c5de3374906f0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed6_SHA1_14(c *C) {
	s.testHashAfterReseed6_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "0671c0ba246f11b99e291dbc981bbc93"),
		nonce:              decodeHexString(c, "216583cd4cc22b06"),
		personalization:    decodeHexString(c, "d4d9a017a6ffd443d780c2c88ee92db8"),
		entropyInputReseed: decodeHexString(c, "5f2646a5cca8a883140a9cf410b9429c"),
		expected:           decodeHexString(c, "dac2008a1bf3295667eddd90e6059906f92203667572b3bb235bb00d0ba80ba950745203b7f72c80dfd9b4302a4a446bbcfdaac66112f7954c4b8391bad6c5eb1b5c104450d68d313a8d225f30699761"),
	})
}

func (s *drbgSuite) testHashAfterReseed8_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_0(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "d1a2c2f6812b63ea140d3818b82b8273"),
		nonce:              decodeHexString(c, "4af22c7b05372aa3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f54893ab7486b3c17c7087f106f68748"),
		expected:           decodeHexString(c, "5331e2db7416add30ea4a9480d8921686aea554975a0eb995a701f181fbb5ecd604d48a3754471b32f66979fe630772ca8af81cc69466c80980f328d9776f8b80e8a85ffcc554145ce51440d7920e83d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_1(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "c7546d3949fda30b0e64957f41e8e16c"),
		nonce:              decodeHexString(c, "529add4a709dc7e4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1e747b958fb40b97fb8d1c3857e8d65d"),
		expected:           decodeHexString(c, "d0033cf08f36c1921a3797afe5ad6acf85b16bd22e0e1b2bc058c1905690d5d787f968caaf9c1df4bb96cc94f91113502b0c719c95673159d693e8b65c245682883476e57984097aed281477e865c7b2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_2(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a515b054f17593a7379087b5e4d670bf"),
		nonce:              decodeHexString(c, "dd3759fb140222b9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "695f9ad37bf5bd694855986dc7c387c5"),
		expected:           decodeHexString(c, "982a08160c602ec7144109e7eca470fd8a867d50eecc4aedec60ff39e9f37405e193d67bf01821d130bf62d0285c817baaac551f40f6cf70c791c52fd39c58c695b52839ca03b0024d07dd076ca3834f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_3(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "63e22fd902b77281a16c28aeb4540a46"),
		nonce:              decodeHexString(c, "3ff45171e49c1342"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "05101fff75a48ef80bee0d2b28e42873"),
		expected:           decodeHexString(c, "4e7ec53a6a28f84ee02648da098f9aee33c348d489da59885593a8ba1e62343b4972536e500c1d1350a1ecee1c07c378cb08ca5f0573178bc9de82248e6f043e4cb989b2680cc0c473fec71afe9012df"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_4(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2385464bde566e8de6ac54fd7668157c"),
		nonce:              decodeHexString(c, "6dfaf07f5a3860e0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1d50f8f51521a748176af4647d1cd89f"),
		expected:           decodeHexString(c, "7991011635a5c7dd835781f15605bd36c2e37440d058e62a0cc4e1bae6b531a126a7c29f47a65bf143af54a431eefffcfa946cb3a4375d30d44ef28293f6f70d68fee893477a57458fd2076c0d91aad7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_5(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e46c1071f54a27bf079aa03eadd86f03"),
		nonce:              decodeHexString(c, "e4827a8b67a62636"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4317e81a1d6c03e145a35bab09045b91"),
		expected:           decodeHexString(c, "01e4d32d7dedf3f6fa2b390b324c5549e1c55238649ef1085df56bc0d8f9f5f297821072c210cecfbb465a0f89a28eb661ac59455083259e75fe27b06e74a847c399acfec661a2a4caf1ae2dcbf286a9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_6(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5ec4fee9732c3ab3a9ebad4982a443d4"),
		nonce:              decodeHexString(c, "e78f247da8c54a66"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b7c90d2958eb70708ec5f3679408dd8f"),
		expected:           decodeHexString(c, "4260b2520d2d2a3b1505ef871ca2343b6de4e8ef0afa26c820c32a92c6d573675a1d5fc07d0dc593265610fd47be57db5b9eb5310a119ee5e4d9c94b201a4934eddf3af1ef3619d4cdd929d6e7297a65"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_7(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "aceeb8239bba6b69fb741d36350cfd78"),
		nonce:              decodeHexString(c, "127460d4d2207e26"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "27c90d7e26680ba66365f4fe2a86d39d"),
		expected:           decodeHexString(c, "87eaad47260eb40bf9edb176774ced0cc30560ce60c0389b8eeea9482cb16ac522bf65e8f78b9f9a59a5431747cde920de48d1a301859c325816b82f294a390ea8bc682a79c6de37a59857e860eeb96d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_8(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3ac2fa1fae681f07f4e997fe83049c08"),
		nonce:              decodeHexString(c, "417d84940690c8eb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ac7b416ee8b0b0eb336edc545de0d938"),
		expected:           decodeHexString(c, "06e354a901e45ce7064afd0e6a44c1d01b75176ae522f65b7a376b623804365935a5ca38405f4dfa7d5c7b74f2559cffa6f82081c1cd7098e2e0ac61f37eea5f144c1b307105c5de3a53ae1478601f7c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_9(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "eb285895a837ac2f9db6c976b80ad9eb"),
		nonce:              decodeHexString(c, "911216509a9df810"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "32e473c2a035c3c62b713922c45184f6"),
		expected:           decodeHexString(c, "5890f5374dd7159cb7ceaae8269bb0bd96de0b0828f08e30e2d241cf7e299cad87c7c0ef812b9f4df0475aa74c03d0a9fb9d412785fbb7a64ccc1ff407631ad59159cd65419cc4260a4b0cc25caff34d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_10(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "dbf8ac783ade1983bce1404ccb1107e0"),
		nonce:              decodeHexString(c, "97742b57e9457504"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7f02e4faee9a4560c217e73cdfaa2dd3"),
		expected:           decodeHexString(c, "85a842eed79eb224babaa1d4bda1b19434bdf3944bfea6cad175bb8e0066c58db71a0cc96dde7d316ee598b60da6b5be3a91c83376f42dcbe2c9e351d326940f732ea13fa9aa485d07df856ac93e9192"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_11(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "890c9fcec7129f3567e20584dec9eafc"),
		nonce:              decodeHexString(c, "cbcd3772d2d6ef05"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "80f0957e64e02b8ff81b062f0e63cc79"),
		expected:           decodeHexString(c, "de29430ad7221cdb1e71a3a89a50e610880592caf048ef2e1abb8de68f5a1380341680c82b230e1827eddc5428af26bf251e38b1adf507db6c3497a7a0c062962e17823291187d70e0be9a46b68ee670"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_12(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "a86c28798a0fb0a4030e384e6fbbc6f3"),
		nonce:              decodeHexString(c, "4f78b54ea10cf9c2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a5c20788ed12db25f0745798a19b6e2d"),
		expected:           decodeHexString(c, "72c3d8df40c46bd6765c83471f60dbbf4147073f4aeccfae739866494cb36f89a0c681ec6fd39b0718ef058c019ce0c40bf9341d89d08a733772018c9e6463e2062a5bbf66fa1ae5f4abe35748e4f234"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_13(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b2de3b2bc48d6ae7d42845e15f63211a"),
		nonce:              decodeHexString(c, "017175932f55759f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "27e6380f3ad03d410dd82e61f010b359"),
		expected:           decodeHexString(c, "126097a1fe2616c4e51542ddb2af639c4a71af1854d2010b019a6c35deef4b00a77abb6c5830637bae2225a294191cd7b938b27c3b41da908f30f1e36411141bedea62b457e40daf79ea721f8d00b4cf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed8_SHA1_14(c *C) {
	s.testHashAfterReseed8_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "28ad887a24414de555d1d5902a2c21f8"),
		nonce:              decodeHexString(c, "e4bd33c11ecf17c1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5be4be4add05d0241e1adfd93b3bb52d"),
		expected:           decodeHexString(c, "98cad340587d0033bfe99457eabfb4a1ddcd4f685fffc5da4608cb9dc97da84ffeb674131ec8178d22737fce01f16d930756d8b29f21623d73a91901529cb24582d8f49424809eb0b5a0185afa1fe3fc"),
	})
}

func (s *drbgSuite) testHashAfterReseed10_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_0(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3f8625833f7cb7f17e0063fe6ce94639"),
		nonce:              decodeHexString(c, "37ade6e5e06d90d7"),
		personalization:    decodeHexString(c, "f7ff05d21829c34dd4aedf29ef64d13c"),
		entropyInputReseed: decodeHexString(c, "3e4bcb401a589d8f07a05cdeab2b6a08"),
		expected:           decodeHexString(c, "e26c14a2b7a96b591ae8a0142895afad2493a1ddbf971eeafcbc20886d7fceb1afc69ddfefe061432fd5d2ef58597b05de7a7ed14921496d1509fef47297e6ecb33a39c1dcc4902b2347f5d425b79e1a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_1(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ca073f096d4c8967ba8c9a48f221e496"),
		nonce:              decodeHexString(c, "b0c23feac9d76958"),
		personalization:    decodeHexString(c, "ff0decb66bd0911900c5955cd6d2c3bb"),
		entropyInputReseed: decodeHexString(c, "b6cfbef368ffd2052e0407a18d45b8bb"),
		expected:           decodeHexString(c, "264b9336d0d145ee701a758f540100d6a46d98c74da9ab96c27cc378c5f0b24a3a458ffcd1f1f71820101c80fb0c9763baeda916916f90fca2340bbbf7025f373f2ac850cd425adacedf5075ef686e98"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_2(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8121d2994b195cfb5eac2ec874bc53cf"),
		nonce:              decodeHexString(c, "53df56cba1f434a5"),
		personalization:    decodeHexString(c, "716934494672c28f9fd4f84705f9042f"),
		entropyInputReseed: decodeHexString(c, "d02f560a9e4dc443867258f0b1162709"),
		expected:           decodeHexString(c, "4a0b38464547496663d65f4c851d63aba9c129b2d95163a97e2936e3572293ee62d6d9561de771d4c70fa68ada2c775a09e9622085d47fd80e9f9b42650bef38ad0f2c35d3b83c754c56e9fb8adcc150"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_3(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "02a78e54bcd53dcf7c013d076eb4a354"),
		nonce:              decodeHexString(c, "b95e9c2800b59dd1"),
		personalization:    decodeHexString(c, "f554a18f92d3442f60996556677d12f0"),
		entropyInputReseed: decodeHexString(c, "568faebbe953c09bb97acb5ec053df6a"),
		expected:           decodeHexString(c, "5bf26195fdc47d3e3354c1e9f51fd366362b4c4dc1f0c31e729b8c465055182777cab99a9433d56d23f28ead9d77ef70d1311a62861fc37bcb9a00c9c84893a2b32b2eef7765270d6e58809ef2ef7ad5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_4(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "cf2b0f84765134c208863a0900b86036"),
		nonce:              decodeHexString(c, "323aa749772b6e55"),
		personalization:    decodeHexString(c, "e17eff4edc0c2e38b71ac2205c57d444"),
		entropyInputReseed: decodeHexString(c, "22efe699121d37e16d2c0071c340de48"),
		expected:           decodeHexString(c, "d4b6d25416a481b5baaa28ddafe6762963444ef1307604bf64fe6062bf08a32794ee88cc29cdba246f3b60e022b1242a1c2813c1006e04a744eb61de167b4bf4167e027d2e63d550e11551d20b546484"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_5(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b0d4e9594ad3c2d4f9a0834f97dc0c87"),
		nonce:              decodeHexString(c, "61dd2290d758599b"),
		personalization:    decodeHexString(c, "99a3b1ab550f89a4d453017db87a7dd5"),
		entropyInputReseed: decodeHexString(c, "e209ecbfb7d675585c5820339936eb53"),
		expected:           decodeHexString(c, "c7191dd8ea3ba521b96868ff9c629b56a9b6770edf4d05d3a42c6b48a5ab2d8720a0b409127b76ba6f94dc29f79380c5f7786233ffabf5086148b96668ad33c20e10b902f1e6e8ef9c68ab9e11acae6f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_6(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5e598130075a84d0450c4905caa58a77"),
		nonce:              decodeHexString(c, "693f75b70ed0cdf4"),
		personalization:    decodeHexString(c, "500302734b2d675fc4bc7a7a88fd2bfa"),
		entropyInputReseed: decodeHexString(c, "5ea3d1bface140890f5a585c65f567f0"),
		expected:           decodeHexString(c, "20fd7b34c3111d353aa413f665c8cf942da200001fa414b628cef5f8a70d04119281e9d582732629c63db323269ea9b65991b730238b4cc437797fc93a7646f6759e597378c7dd3fe563a9c9610aba34"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_7(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "4fef062daebf0ad2197dc5aa40cb4400"),
		nonce:              decodeHexString(c, "4a159ba31e74982a"),
		personalization:    decodeHexString(c, "144c90a8c1817e6445c43f054d149638"),
		entropyInputReseed: decodeHexString(c, "86e57f828f731c65b913465fcb935b7b"),
		expected:           decodeHexString(c, "82ba3a8aa70874892fddf4f230bcf37d81a9ffa1c8e8efd03d6e01bd99714c10955dea40f56cd62faa7980e27f6dce4e462d10453122fc5e161ffb190b765bbe333fc406b872d6386f94f4f088b47370"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_8(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "62c3b136316a4103f227e1bc0c4e8c60"),
		nonce:              decodeHexString(c, "bd532876bcc9e160"),
		personalization:    decodeHexString(c, "54946137295729db9c55d679ee2943c8"),
		entropyInputReseed: decodeHexString(c, "89679b3d7cfedf094b238db1196fee9d"),
		expected:           decodeHexString(c, "f40f908ebff3164a1a1314bd5c2415f9a4dc375063dc88367b60b23c3957e63275df5a22cb266253670076c3ce908c0dec248f06017a750ed054f9e1f74139c210cf62474d3726148900722b577f55ff"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_9(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "5ef8d09f83a76c5ab43bfa1d2436da63"),
		nonce:              decodeHexString(c, "50cc2d2d992ef6a9"),
		personalization:    decodeHexString(c, "98dd20822519e9e618eb924b26b351fb"),
		entropyInputReseed: decodeHexString(c, "a28341d1eeb8db33549d635d2bc6177a"),
		expected:           decodeHexString(c, "b4de82ef6dbce35ad27b7e672cbc43c408713709f2e0fdc9c73dc292f80ba9de12ac886ace37e77379fded3a0172b7c4d14e1f8d3b968c8765dadfc0fb6e96796074fe1af779add7a0c1ba9c9d101603"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_10(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "044cf841aa9b8fd8f374fb0c012d0f6d"),
		nonce:              decodeHexString(c, "c7357de427c551f2"),
		personalization:    decodeHexString(c, "acab89233b7161a6ac70cb64d829e306"),
		entropyInputReseed: decodeHexString(c, "25215fa0ede363afc913036216409d71"),
		expected:           decodeHexString(c, "ea7d73534e64cb88b7bf29623e64c9e62554872d8bef824e5d6ccee8603670385b0a01bfeb6ee485c1c6f7e54ab2cf9e5332f5d8cd290421ce2fa94c06c88dd4d39b0f789de12740b666ae65a8731932"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_11(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2158d6bdf151fa9df205069891b2d6b6"),
		nonce:              decodeHexString(c, "646bf06220262ba2"),
		personalization:    decodeHexString(c, "3d2fff3d59cd5cc2b52a8f31670753c2"),
		entropyInputReseed: decodeHexString(c, "b8a40877df591b965a779e81e751f1de"),
		expected:           decodeHexString(c, "e5d986a290eeb32c280152bdf3861d7241a01fb32648deb903c1c36a9e435fa0991ae2634c1e1417785639117fc04f1c54dd4adb5363d604aca988ffa4170fd982cb00c7628543870a5a292b85e1db7a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_12(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "603e445ce636774e37bf3bd4413401ee"),
		nonce:              decodeHexString(c, "68d5c44042179131"),
		personalization:    decodeHexString(c, "841726f2f9d58551f37ebfc61efc5ba1"),
		entropyInputReseed: decodeHexString(c, "d02d8bac9eb951e3418d72187013daf0"),
		expected:           decodeHexString(c, "b37e2556ec9bb5c5c88625e5194dc153e61529c8d921f8b271135e67e17e2ed6e2de06f96c13a85fed55dd222e936cb004a82e51eff61af061050cb1d13cde85eadcb36cd56214894c11156971911930"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_13(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8e139aa3dd78e3bdb29e16c901cfafaf"),
		nonce:              decodeHexString(c, "6a4219d0700a18bd"),
		personalization:    decodeHexString(c, "fdf01740d04026faceda82c1040151de"),
		entropyInputReseed: decodeHexString(c, "449ffeaf53b721f317857481894b0c1f"),
		expected:           decodeHexString(c, "1a7c59b5bae29a4a0e2209d32892542b50b7712aaa1470b1201389030eb6be6c9b8bcf428ec1a57f774737fb5a2642f8e803c2ca2382fc46a1caae8b709f8dffda515be8e73701bd26fe05aa7ae5b8c6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed10_SHA1_14(c *C) {
	s.testHashAfterReseed10_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "c55aa2c782cfe7c83cb297b33a1260b7"),
		nonce:              decodeHexString(c, "0b07e7c5f53d619f"),
		personalization:    decodeHexString(c, "ed906bc42d34327cbcd6d591e92ad5ac"),
		entropyInputReseed: decodeHexString(c, "8818a22d80014520becc74ea1c7cd93a"),
		expected:           decodeHexString(c, "bfd9f23832a9d3e1ca4224a43b818d406795275b88c27654130d7bc09614380559662339fa46319614a89f720678a86987d82de2120d27c2e7c4bd75b2b6bd52741c4d5ec01255f4e118af65b7f69b2e"),
	})
}

func (s *drbgSuite) testHashAfterReseed12_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_0(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "daf80d4e70d6a86d7abc89d4352a99d2"),
		nonce:              decodeHexString(c, "6c0c51a77833cbee"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e03101dbb133978f967632ef213ded4f"),
		expected:           decodeHexString(c, "0bad3bbd05a2c6a2398f42809449141c064d6aa41da66f2f749e65bd0a1366d63374adebcb41a24d7ff262413dd63f93483fad1b027f9a83a39cd02202bdb1720d6f85c9c8f81da65ff37ef5e53c60d1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_1(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "126d155b8bd02ddcd5cb78862bf84831"),
		nonce:              decodeHexString(c, "a65855d4192eed9b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dec6fc448cd022026f6cb5c9dc184d22"),
		expected:           decodeHexString(c, "c4e68f4c618d65b14730b92e4056e94bea8afc9e8b0eb2d3f4216c417fc25c99288a439071aab676235efc941e6caf7483536e28b7b3aa23da249cf84235cec76e0bf72a72af24f5dd0f0e51c5724836"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_2(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "431371789d5a197fadecbe0ed847a851"),
		nonce:              decodeHexString(c, "e1e66f7680e1a2d5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "941c67afcae9c2a012033ff801d08f6c"),
		expected:           decodeHexString(c, "41608d19686849e5ea0e4c8e10be24dabe0c82392f1a8f7a776e22e2eb8c612e9e103bbd6c8f9654c51f45218b6559909a695a6ac298729f6befbac28e482ea9600b788f47340ef99a4d6a9796d97b0c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_3(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "d79bf5be36dfc58e38893b5fcfd7660e"),
		nonce:              decodeHexString(c, "8e6968acb23bcdc0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fb70a98a722e98f5bf513fea6699d1c3"),
		expected:           decodeHexString(c, "775c29ce754fc4d25e7b288817401ca22f45ca60bec308890f979fcfca33d9fda5970422b79cbb30c68b32e8ba832b7cb1a9c47397e3b62f00a36cca6472f44ab6590cb60e1f086933653274b051010d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_4(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "b67c9c80f5d849c3818d6450a2610934"),
		nonce:              decodeHexString(c, "905683bebd4f858a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b5c2579c7fd4cc806a9f5dd2becdc412"),
		expected:           decodeHexString(c, "649f08a9fc5bb9540c2cd6c67863d9437f84fa133a241f95dae1fdb69ace602368558a8582a08b61b4b3cbe119a2a8fa2c90b0a95f360c0ef2e53abcd337f5272b6af1e135de793f8524aa82aeb7d969"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_5(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "fb4dedf71afd509d4cf81a055fd96f71"),
		nonce:              decodeHexString(c, "efe11c98dfe54e94"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c981d2c468deb37a2429369eac52a730"),
		expected:           decodeHexString(c, "5d8897886013e1a32cbd09acbf00de5714cd40795fe27d60ad866c159d7a75f1161f6eb6dd2b8238f72e43c79327c13b1f85ce2d3a50abeaa2f5f6b097df36fa2ed6250b4b1291f2981ac45e656cdf95"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_6(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2a593a65dd5be58f2f0d7279b2e51c70"),
		nonce:              decodeHexString(c, "9dd9a0e5586e96f2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8e1905c43da672c1c02e632f010a0ee7"),
		expected:           decodeHexString(c, "997cb33d413cfc231289d0b1df5479a9fab8c7f18f83e14e951a1f9287cc6e88b3229def2a0a0af0cd59f837c8e2eb2118b02c168023b0cdeae4b9e4b042ce6f9141c5f520d51d837807fae32104ab33"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_7(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2717d6d07dcb45c21163986c2a27fdfd"),
		nonce:              decodeHexString(c, "c3ac8354b35c431e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c72901afd34bfa85efdcc70b013bd575"),
		expected:           decodeHexString(c, "1031dfd089f0ebd379fe159e7557f148cda61ce6915bd4a95c06517069bff106707eb81cb8f22bd06a47a8a5e36da3b5c37d2b477bc5fed4658e0bd72e1c8806b9afe378c9dcbe72ce61461ca610efe7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_8(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1a0c55315a0addaa456f1d8b1497ad75"),
		nonce:              decodeHexString(c, "67702e35a409cc14"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8c815e0ad5bf33aed81e33087b1c0edd"),
		expected:           decodeHexString(c, "f2953585673fccd82d364dace7cdb7c100a8112a9d04902cbc966ec3eeacd182ee9039dc394c12f20171d1e99fecc22c58d7137bb023cb3cb1d9e0dbe4a8a06857e3dc0d73afbc4eb0b0eb1ed1d534f3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_9(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "657a91b05e832b701bc9ea0f58747d88"),
		nonce:              decodeHexString(c, "e1e52cb87a0783f9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "df1324c51e8bb6fdd4de809f130ee20d"),
		expected:           decodeHexString(c, "c2f0978318cb112f1212bf948ba9978e426272bfd4177b7ef7fb7c7783320209505636b16a35155fb8515900aaf86c98c1c289f6ff4399ebec63ecf5d9c0ade5c4a88ae54f04a18589e9423084893663"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_10(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "44f0dfa4a0edd9e464b1e0c2e3f0584f"),
		nonce:              decodeHexString(c, "63da40c20da0f5d3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "27f250cdd67ecee02c84830d40dbbe6f"),
		expected:           decodeHexString(c, "06e51a5f7c80eef002ea3547e64b430aa0f5f6345b093644c998b4d917f4b83d0610df52e0b3090afcd74409ddad1462f24c59b812a9626e72d60f60df38091ba44b9d31416205d63f2915b5f3c3b8e7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_11(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ff89b0bd43dcb902b1984602efa80f7e"),
		nonce:              decodeHexString(c, "27b7810ee1022089"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7715fc44c1c6ba6ca48d0723214574e5"),
		expected:           decodeHexString(c, "91aeb666797fc48ef6e2d6be25fa872be9787bc5ce0ffd06711dbde86f9eeff68e650a20e193de06448b8e2b0d35d2fa576280459fa416c64f4fe9c789f2634471c8e6aa1df420fa6d56fda63928defd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_12(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "e39f149221e2d7826f97203b3e5217a6"),
		nonce:              decodeHexString(c, "9c9cc918e967c8ce"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "94ca0d22a0f97f1800ef4aa044f30f7c"),
		expected:           decodeHexString(c, "2c54fa55f536a0929c65966efed2a0ee6312521ec3e688254afc3af0837a5bc1e550deccf63c13b601bb1cd71e2b3446813b8a340ae5a5a47731002921e90bbeaf6b9835e37958d265e3f7eb507cebf5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_13(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "9867c540fccf5942c382f8e7e383306f"),
		nonce:              decodeHexString(c, "1adb7f48d8140c27"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8567e12adc711930ee3626c8774788af"),
		expected:           decodeHexString(c, "cbda8dbbb61a13251411d3d18c51cd9c65c7d58016f9be96c1a99cfa30ed50653a8557c14d72f351d27c6084527bf266d4af931000ac1f2d8ec61eded90e8119dd75eb1716ee559893c927afc805e0dc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed12_SHA1_14(c *C) {
	s.testHashAfterReseed12_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ab4b1daf9ee4ed51c585bb90c6ccb4a0"),
		nonce:              decodeHexString(c, "432a0c1c722e9722"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d28284b85af03ffe3bdccfec978f478f"),
		expected:           decodeHexString(c, "c17a7fb26de22c3f8d1ac64c8a7b2c45fa693e981c5cff04ff2ccfb628a8d526effbee45a6b3ec35cdbe910f20b1e6f8778fb8f1570565d26487be1895f9b666398b1434341eccfb638dc6872622a874"),
	})
}

func (s *drbgSuite) testHashAfterReseed14_SHA1(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_0(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "1f3bfa1a0e1f1c87cdf899103fe53eb4"),
		nonce:              decodeHexString(c, "2db008a1e1fd4c46"),
		personalization:    decodeHexString(c, "1843f02f67b62ca76b205817ece829c0"),
		entropyInputReseed: decodeHexString(c, "9a68bb46f10bb4e33a555a0011893590"),
		expected:           decodeHexString(c, "0d24bb0d9c24492d8eddc63c0d41e07d471a59682b676fac11f426afe9db9e38df95271349541ce1bad71d280641e47448dc4671679e0729e25a400fe7bc4673d32f23c85c67ca0e0e40a68aea14c149"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_1(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2127340c16f6d9b9547f12b9ca4152a2"),
		nonce:              decodeHexString(c, "1504e7a897368684"),
		personalization:    decodeHexString(c, "375b5e97ad94a410e2a87e00639ea0f3"),
		entropyInputReseed: decodeHexString(c, "16494343cd5f7cf3cd7fce7bb44cac54"),
		expected:           decodeHexString(c, "c25bf2ab607dcb508d0e5f4ae058c5af1b69f1c67bc01ee3c8da6c64f12b97cdef04342b56f0b777beaa819b1ad85700bbec7042ef8f5ebb7b6b87626e6d7c4c2f20dbbfca0c6b0d1f02b1f9a1e7b0dd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_2(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "03a526eac6667d8fc50bcccc77131b3d"),
		nonce:              decodeHexString(c, "89ac8cca35d7360c"),
		personalization:    decodeHexString(c, "dfdf1129c867154c8fb06449cef55604"),
		entropyInputReseed: decodeHexString(c, "f5c69275583a8b137e73911613de32a0"),
		expected:           decodeHexString(c, "e6c6ca6b8c3f9fc6b60b9ead5a3d99a311b36c035d057600a639853ac838037ab143cc9130d833047492acf1f6ab5d310af848e17421c7f2ce1b27879548357b327fbad8f2ff19c9c511cac74ff9db28"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_3(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "922a1eb491c5aa96255a425a557b3a0b"),
		nonce:              decodeHexString(c, "dfbe98a0625f6d27"),
		personalization:    decodeHexString(c, "3b1661708dd5136adb3b90276203807b"),
		entropyInputReseed: decodeHexString(c, "fa41b9d95c60bfcc18740dcb7365afa8"),
		expected:           decodeHexString(c, "491b2250d85f43b81493d77441e206b2d24a442d826de6f84feb3fcee0f3434ba1279b8f6f40036bfc98a54335b0ed129fb9a1b5b9da709792609b7318e2c6513ab139bf596f40095162c0135d8281b4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_4(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "bfd1cde72e3018e38405fb78e780424a"),
		nonce:              decodeHexString(c, "7b522e636704aa30"),
		personalization:    decodeHexString(c, "68dc04bf3ba9a49bfc8f5d3e178eee90"),
		entropyInputReseed: decodeHexString(c, "0ae631fbebf31311c70db5218055a109"),
		expected:           decodeHexString(c, "03f4152f569d4e75171178390dbc3375f5dc8cb39a682dda250eecc8cfa94c81d98c572f5f8d057a7bdc651a009a67badd1c5c353ab56aaa5611bd5aa32d1e14264375d72a9a57480b0a8094551dc38a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_5(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "aa6468f37fd732892f1aa494bdfd33c2"),
		nonce:              decodeHexString(c, "1188096a0d03e7d4"),
		personalization:    decodeHexString(c, "eb3205f89962c9298ce89032313b4aa2"),
		entropyInputReseed: decodeHexString(c, "1f19abae74321faeb81ba6e0b856e10b"),
		expected:           decodeHexString(c, "a22fab2ea7f42ccb0ec4ae8ca539f0e5066465730144cdd3b1cb2a9a35981cb91d11b2c580b61b7f36663a8dfc182dd6a9fa4f2fea4b1115eaef4c2dfd80049a5816523435dad83c58ed659ec2ee4911"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_6(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "2afb7f99841fa8c4b7aec208b558723e"),
		nonce:              decodeHexString(c, "0d991dbcf3fb1ca1"),
		personalization:    decodeHexString(c, "07ea27928db183899fe85861bd337412"),
		entropyInputReseed: decodeHexString(c, "bf24829032f3796e5d8ff9024623750e"),
		expected:           decodeHexString(c, "24e82522bfa12528eabc9006246a4917438444e7ce836146c6b8735afa745a258c9c6c444faade0f2f9869f48ba584b175690ab50bb8cec953ff7c4594bba4890b6b35d1e0912e0fa098515eebf33af5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_7(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "8610922bc82818d169800d712e08847b"),
		nonce:              decodeHexString(c, "07b79840f4ab8675"),
		personalization:    decodeHexString(c, "6848ffca7a62f868f995763e0a6fb474"),
		entropyInputReseed: decodeHexString(c, "d7fdb5c31f04a27e2a29109b5e9ef9e0"),
		expected:           decodeHexString(c, "21a015772a341bdc2ee658bb599fa34e7226b8878a60a6446a65659224c9b57c4a5d9e49dc616525ccd67be36bace3235e3b260276409236464a7144770bf65f5930ab2bac61eea030d7dc5068103418"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_8(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "190ec0418b24810ab222b79d2a7293a1"),
		nonce:              decodeHexString(c, "d6f2d3173bc9a10f"),
		personalization:    decodeHexString(c, "c7827724c8a85e09854f755eff774ce2"),
		entropyInputReseed: decodeHexString(c, "6ed328044dd8ae29b7fc31cea8a201a0"),
		expected:           decodeHexString(c, "b29330f84fa192c1ba8d8b2c67314fce779ae8d735c2681cc4a0c7d79eb1fdfa301eea4a37dd55b8b28faac3ba6caebf206c826b190a5c05c63dec0d3bde8b5ff0414a587bf0e4fd0591c3732457d61b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_9(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "ee118811435c2ff1e09c23283a915adb"),
		nonce:              decodeHexString(c, "072fbe922ce76004"),
		personalization:    decodeHexString(c, "7f9fcd1470e9877fc97f6fb181c34e59"),
		entropyInputReseed: decodeHexString(c, "eb7db32f1bdfeda21fa9b1c1d38a139d"),
		expected:           decodeHexString(c, "75a3c2daa08fce7b74a27aaedfb1a725cc66283ff5ea0fe7accb4d30155a90686f3b0a7c31b602e5140c38e6ea44822854a5419b1d563afa56b4defbcde59d69feff80b9921cd67a873f66e32c8c80ae"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_10(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "839cadcb77a351b0aef7a8d86a65bd6b"),
		nonce:              decodeHexString(c, "4ca209b825a220cd"),
		personalization:    decodeHexString(c, "806978904e4f037a94c5d53e5353539b"),
		entropyInputReseed: decodeHexString(c, "668639fca0e047e3acacbd04e8347108"),
		expected:           decodeHexString(c, "4215bad99cffef8fa4cd0a2759abdc92cc1b69a52389cc41ab24d5b969a012cdb4358c064131b7784ef0efd1a7400e254e4946851b7025454301aa32b581d3a3df22dcfe6f9659089f662384ddd7d706"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_11(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "dc2454760ceaf6c01ba54393d4ff6606"),
		nonce:              decodeHexString(c, "19b2f382d93710db"),
		personalization:    decodeHexString(c, "8ef2b249910b4c57a63d1c45ca7efcd3"),
		entropyInputReseed: decodeHexString(c, "3f4d0810d07d33b854427cc29c1c531d"),
		expected:           decodeHexString(c, "71543b5891e69d3bd54321ce8fbaff09a3f17593b94a19f247436f3f9370eb06ab905ce94533a0b1b97dd5c69c63733915904236ddf706b9cb3a58b7bd478d2e8d80cb51491b329b4f7c9595f323dd8c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_12(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "60bda9c5923d3b9de66a9914c447b663"),
		nonce:              decodeHexString(c, "e5f70aabcc2f620e"),
		personalization:    decodeHexString(c, "fe21f6ed04774f9a93232470a9268317"),
		entropyInputReseed: decodeHexString(c, "27364f9af59947d6c03e9a8ba859899a"),
		expected:           decodeHexString(c, "cf0385e3164ca12421709589b86958bf5a83f312f71595cd6ad8edd7544a67a024aaa475e4cd2e515dcccc3b8c14811885944cb3efdeca1ebfeef3edb94d6f71c0215f0618b3677a4316a67f52ccefa5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_13(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "523460ce5a3f54c013074d0df90759be"),
		nonce:              decodeHexString(c, "07f779b108a52135"),
		personalization:    decodeHexString(c, "afe0be933748c61a838f3dded8ec423b"),
		entropyInputReseed: decodeHexString(c, "dba4660ccf5613fbe2c04a6411fb3ef8"),
		expected:           decodeHexString(c, "4c987e74c6d0eb96aae2c1103ea8ca6d30181aad261c3ce4494741f9154adc6199d14f99581c75d2cfda2429a0b1f57dcaa9b008f2aee8d38ab09496d383fd258de76cf890aa1e5b860656db8458268c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed14_SHA1_14(c *C) {
	s.testHashAfterReseed14_SHA1(c, &testData{
		entropyInput:       decodeHexString(c, "3e9aad8f60a69f78552e62326de71d08"),
		nonce:              decodeHexString(c, "a129fd429f6c002e"),
		personalization:    decodeHexString(c, "64fb2750e55bfe3c580ce797b4982a5b"),
		entropyInputReseed: decodeHexString(c, "9a1ed501c2e2e7fbfa7179b49983c318"),
		expected:           decodeHexString(c, "af3e4545aa85cbdf1049bedef9fc8d07d24bdf004ceb1b0d0271beb476fa265a8140ad36482e339b359325d69a2cf8af0dfd7eb86c3caa9cc5c70629c00fb441043e3d32b33ab44f856bb51abfc80c13"),
	})
}

func (s *drbgSuite) testHashAfterReseed16_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_0(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "0201719d6919373269b6df1b8126e5a9f22c189b44b7399d"),
		nonce:              decodeHexString(c, "3481566fb30d10f0926b90ae"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4fc18c7a495cbfc2fcefa7ec41b470b773cb6e82ec98a0e1"),
		expected:           decodeHexString(c, "12aeaad94d5e21d17d97a59584fba1c9f07f2b7c46e01da88b9b6f594098e60e4460c74f7bc0e1f211e606a58ed993177ec81895b6ba58728081c9eb88e308b3f9626b2cc67224a23fa8aa49a4ef84d61b48ded338d7b21dfc05f034de1f0b9010635db93f559d9334ef8d5c8725ed43"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_1(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "02f3ecee144ea1ca9eb45c57229455d7eb1c6b5b0abf8dbb"),
		nonce:              decodeHexString(c, "8d35898b9e69be26453cb6a9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a2d2a92d768aaa4cc7525085a0a3434734dc8cec257f3d7f"),
		expected:           decodeHexString(c, "3babe89c6fd6deb4f9f50f2f23ab9e41c769a9df218e19e12307b0294f57f29c7bd3f3f3322948eb2137411e673aec0ab1bcea581934fcc30e9799fec5a9947cefdd258b7f515253e164499ead86d54f36a6c569f25c7eb200362dcc5da944df807550d0dc69401420e687f3235e7187"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_2(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "a9ba2b14482ff35e29ed93e50115fe6038c11cd7a9f50677"),
		nonce:              decodeHexString(c, "aba1956b74b2bef42febba58"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "edf91666713ec05f78fe4ac80bb0c8cad74ae1a8e3550587"),
		expected:           decodeHexString(c, "3b347dd03c5e57efcbe1631e370f82202a6d913f4af29ad9282bf2d985d0d35d2e4eb1aa1a0e846405201ee87ca5429025a14889aae7b3f07a156c1646099119ffadbbe7bf6c939a381c6a141b66afd1c971b4d968ab39e6eadac3445e8a32df64b0aa30e4ad1b66ce54b86ea0a09fd6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_3(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b87cfaf6c456ab4faa887160fcdc5a2fdadd8b0ea8dad2c6"),
		nonce:              decodeHexString(c, "0ecfa48284dd9a1bce94df6e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "65582473b84c3ed62e5cb6b6a5007896b7065d9c9b32a09e"),
		expected:           decodeHexString(c, "a9d66c6b599461c43d5b2c4361b25f6432b158a856bf74b154c1a0e4d69c7e84f6e815b165f539bc910e7b8d8acabfc26a39301b48c4c61ed9fe52cf1e5b1ac9f8288c201c04eadca9980fa1c3fcac34d15bf08bc6d743875ae4b45e4f58344bd0d5f73afe26938dd0ec257b0f1a7588"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_4(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c3753158874e033368698a7e069850c4f39f23f2949f2b77"),
		nonce:              decodeHexString(c, "63ac598ed2553777b1983683"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "946e55d92a6fcce4cc4f5c7f598e4e85c8ece5e4bbbdecb0"),
		expected:           decodeHexString(c, "43c35c08f6a8134a5472c5e6de1e0381bfe303de02df7af7f26a87803b7a784d56fbf63fb58698e265de03b9c3ab99e88c0e65dc71e619124255b252121b2d5cbd50dae44e17a89418e6466a10a56d3e73baf68e15200b82b9a059e9c3e210156e123a1f780a1b151b42121de6169e06"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_5(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "1db75f62e6fc289f1bf9c58e3662c4653b61a908dffbd5cc"),
		nonce:              decodeHexString(c, "192c4df14e80b7db2cc895fb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "305a9f24283b5b043e4ec82116f80f51417675b616342446"),
		expected:           decodeHexString(c, "f1206eb7f187f3b055729ae2a8178d59ba04e22eda6bb74adc7a46710a07056dc7fafa588084f200a8f7eae213ef093814a201d95d53fb102cea7cb02f23877f765ad103fb8e48fc6a6421e0f67b7dc0c95facedae63c573cee90e85432f524c9725b5c3f566abfb478c826ab1c92891"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_6(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "6fedf27c610af0565308a8beccf608a7fdd835d7e9a02a2a"),
		nonce:              decodeHexString(c, "ac9f248066d2a9247dd02a29"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cc4e4805213af43751acfd4391b8e9b3bed2570b208fb6cc"),
		expected:           decodeHexString(c, "5daf8b651762e1b4675c870fb8b9b0e92dc85a8dcadce763a1cc48cf1f9de0c6e834fac62c1b77c6305078ac8586805caf850f012b53d42619423aff027d8072a0c087cb7e349545a6c383bf3311b4d488259c387c5c95c41b9f9edf78b481efbe9bcd03f98c7b0db47c45f42f601aff"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_7(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "af4096fb34eac3d8304b3ed09867d8e941134a0a55f99142"),
		nonce:              decodeHexString(c, "a56cda38151a625dbac03d31"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e871eb5953fcfb04c4b6b9234a6c14234a56b4ab068a1f6b"),
		expected:           decodeHexString(c, "06b9cf494163ffa1d0a3ab0d364bcf7911f03a97d4ad01a9c2837cfae907f17948a2f6f3014bbdba045455d6a63eedec6857d5ce3ef30ea33680080bd0b3a11d39ead356f88580e4483c089d4303986b339fd6243dc53ff0c86025e83010e6924333cb77c39c9b9e95645d56394738df"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_8(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3f843bd0ebf7e4edd76c6c2f6edf013c39c1af19409f3860"),
		nonce:              decodeHexString(c, "bb8b49b54e639554db9182be"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3c73f86a4efc0add813f6cc47ee9c4f3dcd668b58b053791"),
		expected:           decodeHexString(c, "bfc4d4faec1d7d36ad6c2678d38fe8de6da2c716f649eab882aff04c1b6c31b5b6698fa376cb601200e5aa093a3bb9c2527fb4738a7af62a0df1643f48eaa3a66305a3ec42acb3bacea3de510ec04ed5c1afe4e23501b46c26d1428980a03ce9b39e277e06100f8ffae1b44d9bf29f8c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_9(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3ac6ca86f4dbc45cc9af2304c19d873235c741571274af68"),
		nonce:              decodeHexString(c, "c8dc8319aa1c49c6ea6835fb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4f4183dcf3fba8886890846b942e8823c77262e9cb14c8a2"),
		expected:           decodeHexString(c, "3b03482298771728a4978e2fe019e262e7cc2526502424343ecc89aa1e87ec6fc6a521959c7510c5109bd58540716473a09ac084649314dc9e6f41188c6b5f65874576aecd60501bed97e2f0588b0099835ccb6ced10b0e19488ff4fd394bba8ea209f95be935279177cb172848a0a75"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_10(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "dcef48f166311a619f59d4cfdc5ee7bc7346d3394cdde36c"),
		nonce:              decodeHexString(c, "c537ed309a5a883f0eef528c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ea391480ba5e25ed3a516b8a3a4a48c5b7b1e590d89c164d"),
		expected:           decodeHexString(c, "a9503aaed26ed82076b5bd13fd60358aee97db46a6cad325352831dad9288a9af69c603b8a4f259acee2a9ff613f22625f808a26ee9d79e150f41413358b7c88923496a395148a1d7d07b4ce053485594ec40549d6ce5d5c10cdc80ae76c8616f079815996ab926bab8dcd2439ae57ba"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_11(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f542a824f29c1d60e07c34b6019e0071c1982fa463be765f"),
		nonce:              decodeHexString(c, "76395bdc73d6887bb1f58c02"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ada21e48bcb847395c2f5da36691b0e8be957c901f7fe6bc"),
		expected:           decodeHexString(c, "49f68219e9da6f06794d2b31e442b4700bb4af52636413fd96a03b8eddf9a76c780603c72ca4801dc97d72f154c058de26f79fbc44bfc3eb0b89ad1972bbe890be6e6d5ff5b6e8a2066873157c1187e1402d57a7a34b9e54f483e248650cef3df1631526a142e73b9d65d1bbac2d3b78"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_12(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2923649ca4be9595cce5937b17559ced113c8ea350a158a7"),
		nonce:              decodeHexString(c, "b1c89b2f4c2f3b51dec56871"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7f1534571f0a7c27a10aed842cc5fe9281e1ba3012ce09f2"),
		expected:           decodeHexString(c, "c023c483abaf5619bdf0a21cf6e0ec28f4450bf017b70c0248dfb8777dd81426bb6523f00f537c89eb1bbf9693824088f43ed58d90573a2c82f175e55ee2a14b04855f73308014a643566f538e3a058b6afa758884d38bd9170eb5aa6ce1f7276174ae7810735c19a2968d22264e9db6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_13(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "5bb2b2a16e5122a72a8b1a2d7f97da6cca012d341e9faf72"),
		nonce:              decodeHexString(c, "1d13e2ed14eccd37f984b641"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2579f25ee498bce11eb9192a637f9fedc716626938298184"),
		expected:           decodeHexString(c, "85cedd05905e03203c43bff679954b47e2bf3e307df89bafaed5b9dbd0d54fd92186a8f09f0033442fd236fd5ed55b285346d656689bac52a0d194742776452d8dd295f919f48be23dce98723916cb7bda3d25a4e8399cc6c3306e8953720f35ed15fdd7483b7ee571e63d07fc4efe19"),
	})
}

func (s *drbgSuite) TestHashAfterReseed16_SHA224_14(c *C) {
	s.testHashAfterReseed16_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "31ed25e1ea468728102cb4bac6571cd44e93a1140630075a"),
		nonce:              decodeHexString(c, "6a3c3d322944239abfeb60bd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0b083b3d17fbf8b427dbbcd4bd9dfe4be635271f01ea1d5b"),
		expected:           decodeHexString(c, "fd452266e86774c37074474ecd0c8a54b49ffd2ebd95fa5fb9168fd0d7717480e350d312eae7ad9c4ab2fdd2e07110c84968124078d1cf64a2449728796a8cf1e6f6196bcbd50d8fcae6094a6652f8c5f3eec897102fe0dca937c1352fdf603eea43cacfc874c2cb397899d2b61e18b0"),
	})
}

func (s *drbgSuite) testHashAfterReseed18_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_0(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ccf03b9a3c5b772c572c8f6c02e107c962946dd7bc33dc26"),
		nonce:              decodeHexString(c, "1bfc3bfcfaf135874c0b29ef"),
		personalization:    decodeHexString(c, "aaa09aa0a501c73c89add0b5eaa5465a42407d231196c1c2"),
		entropyInputReseed: decodeHexString(c, "b5ef235b434c3145297bb715eddbf21d1645a9720e1c167f"),
		expected:           decodeHexString(c, "5c97763dc7bc2c0cb7bb74635b49c21e1d81d54ee1ddf1fe2413a5a7ed361779d7382788314b245b214edfb06c6569b1f5ff9d246126c449fabdaa716d8b540196a19d7d11a22ee132f6d02e821750ebe4054e7b303fc4deb10797bbf251d699beab7ee26596ee6de8feaaf5f7d7530c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_1(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "6b9ae3be5582734e2ed4b2c51029ced2d7eceaecc7da7a32"),
		nonce:              decodeHexString(c, "be13c44f8b7ba0221be45be1"),
		personalization:    decodeHexString(c, "68f90cf3c712c8419d60bce1672c4091d2091733c5b0bfa8"),
		entropyInputReseed: decodeHexString(c, "773def56eed59d1ba45c9aa10781e71789c4e604620b5f3b"),
		expected:           decodeHexString(c, "66acef742c657eddf5b5450db6a503aa80d1b5257ba81e0c2bcc0c0e62a0fff34032b94384e91c1d75aa04dfd37dad2d8ba275b5bc779c45e3f189e4c0c954d0437086504ece8c5ca0c3d90ea07bfdb7b21d2e71594a78906267848385d8f5f9b050ab099d9cb532f10afd913f6d3b01"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_2(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "6d48c344eee304fd79e7ceddef68434871ec89a7b82270ef"),
		nonce:              decodeHexString(c, "c36901d21202d75539eb2f3d"),
		personalization:    decodeHexString(c, "949737efa2748a833457f5c09a5e86abba79e9219fe5091e"),
		entropyInputReseed: decodeHexString(c, "4001a7f35ddf9d82ce957230b8f6256dc6e2534beace4746"),
		expected:           decodeHexString(c, "40dcd7fd3dda2cd39979bfeb1457bf470247c9773af713b179c4e38f2163f09dea722f3edd4e47170c96809d642853101b922644858fa41d69098b4b662e53b9353ed0200185c232adc502eb5fec8af35178d6410fdbf4f8e868d9c9d534d8a605e6583e2efb33fa2486fe2563e0304f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_3(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "9c19a272c65a333ec6bcca15b52b4bb5786b28eac7999d2a"),
		nonce:              decodeHexString(c, "b2ea2e7770cf659a6f1007eb"),
		personalization:    decodeHexString(c, "5b96b5166cbcfecbc94f42da81b19260e10ec9b7aee65f30"),
		entropyInputReseed: decodeHexString(c, "71f3ab9823f874275b9a3aa1e9f1399ed9bfd4ff5f1e7f1b"),
		expected:           decodeHexString(c, "47aa426971d6a19ac2853514bde8e9c4bd69ae55f6327d403dba8b341995c6691710fa1bdbc46517a4342e922728089a0659711d8fe6f95c2e2ff22222b94d1d2fd012e2262af1e8d9981628b017b64060e45e2d4ecf7522500ef753ba843b9d1844aa6a2a84c00442be38cbfc72d542"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_4(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f5c67e33043266c50afa48f7e0c37d5ef65e4cd7fd276354"),
		nonce:              decodeHexString(c, "302c97ed2579f4b719042946"),
		personalization:    decodeHexString(c, "b720aa461024d3dce03be545fce3fdab7b1493c779a70b7b"),
		entropyInputReseed: decodeHexString(c, "3d71283ec325d364a00a11312eddeea0685d0e303832c1b5"),
		expected:           decodeHexString(c, "094c51955da9c54495e4210556009212d8318caaf8e8c1d1383fb6ac3e937ead735a0a6e3a4ebff7e591751e664c215d53f23fe7dc0acac4dcfbd01eeb0f3025d34e6bf67dcbb8b7d0b57836edd795ba466652e52085607c3de234256b8c1716a98589957c48fd5e231885aa328780fd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_5(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "9f61fc258736822c94bb75dcbf822c9cffff894fc8b6a0a8"),
		nonce:              decodeHexString(c, "7615daa178f0accedabf0b89"),
		personalization:    decodeHexString(c, "0c7b38e496a3648779af3b8dd1293999186373a34c8e7c59"),
		entropyInputReseed: decodeHexString(c, "88108bd86212dd6bde6b57cb37fb1a0f02de3af422b027d4"),
		expected:           decodeHexString(c, "6ad5cc7cc4c48d0ad407060dfe9e5a005de52d72e5268c031a666d150ab61bf6c22ef0ef5d9b795cb745eb6428ae8a39025cc65c5ae27d2f861d46b55c4623fb92461fd587c480ae02ce06a78cb7e6191ab9e7e3e3cccc09eda13371b25c2bf0ba7d6e9f5098032b32a239fc6d8380e1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_6(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b70cf8a177ebca0befec3c479a6b6333a02993a08dd153cf"),
		nonce:              decodeHexString(c, "281434b8a15b898aa46c1e01"),
		personalization:    decodeHexString(c, "7b14dd867a630d6eb05e2cebd8b61b2c79816e305a5e074b"),
		entropyInputReseed: decodeHexString(c, "2558b17ecbfcda82ca41e70c8e185610566f938f0e5e8906"),
		expected:           decodeHexString(c, "695bc75bb1ba5ed8fce5212997fe09f26c66b6cfdd63a9230efdab95c52f9c010eb8453912ecef534251eb3cb04e42d170010f13b5e79fa0c4dc6a0580f1bbc86ffbaac168b1e1612fcb298b6bc7906511af5d76786f4d66bef4537affdafa2bb82142e318e8ca0ba1512c3bdf6a1204"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_7(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "5ae5cb9fa2e9548150f3c48bfc8512c03492c9d6fe839bfe"),
		nonce:              decodeHexString(c, "150642776f96edd9a1c7592e"),
		personalization:    decodeHexString(c, "c7dc71cd16fc523365ddd43fa2e98f5fb14ecd9f1a3dacde"),
		entropyInputReseed: decodeHexString(c, "55b29f60ec6005fa570679a9b13c984d887c4828ac54997f"),
		expected:           decodeHexString(c, "a7a1ec53b85b1270a302aca99760a0ae3e3ad5de3563d1b5c8da368f7aeec726ea8854935d94a99b877d6443188270c1971eb9078274568e9708956934fb0ca12232cab6878e13fe3b6402418107c9ea27cee238d635da910067d426d1fd7e4b75dc44eefed05a673b27be13658b9d99"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_8(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "a7c1e29d88359c2e18375a03677bbfefe765390855719141"),
		nonce:              decodeHexString(c, "514ab7b2b58a82cc5ae7696c"),
		personalization:    decodeHexString(c, "b75e10ea1ea39c00975b0dd12d4138258020f28baec19691"),
		entropyInputReseed: decodeHexString(c, "2662827203c244f83164c9c07cae2d2f0a2bac8cda10a6f6"),
		expected:           decodeHexString(c, "bcf2fbc24365422223ae0e6872c54a7ac394c5bc8d223d98618c0649b75e6c8467181c1d33edb2afc09c3afb9915909b85854662fec9a4a826c3f7706441faf2be82b1ce5bb0c2ca734cac2474d31eeca2e80f1cae427b85436693decb192ad4df48c35a9131ca86d6f1407deecdfab3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_9(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8cd19351ecae71ea9a0a02402e1afd4ecec07484c7e618b1"),
		nonce:              decodeHexString(c, "e79c1929c749680aa1dd0a8c"),
		personalization:    decodeHexString(c, "18ef6b5078acab9e3b3f324ec5b6e8177a55036cf87f42c3"),
		entropyInputReseed: decodeHexString(c, "ff68efe9d589a6a4bb96cffc3e9c9ded9d12e899b7464d8a"),
		expected:           decodeHexString(c, "e1375a41cffc68eae3114fd68f571051d6a27a7f300fb99a71a2f1e78d64f52e6e4b122e39929532377db29d6608efe144905e5554e3550bae5f50e81196a16c53f69915d171a4440ee373a4081d94b9e9e608fb748a56dcec820c72f7dc056ed55b9b7ec6e675ec7fe5020c8d42ba76"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_10(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "394d8a696f503b2ef55ae10e97780a3f36817d06c87d4e29"),
		nonce:              decodeHexString(c, "6d8d98e8a6488643b669c2b1"),
		personalization:    decodeHexString(c, "af9e9abcce1c3b8df84011e884ba8ded8c0f356129917c39"),
		entropyInputReseed: decodeHexString(c, "17607f949ce01f7b8c03cd39a7219c7dd1a0690c454c8a94"),
		expected:           decodeHexString(c, "6f8673b1c89433800c74f082711b4f40e762f0f6429ad1b9461fef707868bec7e0bbbc50b95aba593de810c84820e8b0907d98304e14fba2b69707a3924665e84ca3d3ddb3d4481a3f9fae6db7810640d536c86d6332f742b427b4297b5b0a4df5d084e80d82986d7ae179bf3827169c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_11(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "90dfc8f862603a61b28096438552d3a805e1b29b94b9a525"),
		nonce:              decodeHexString(c, "fab221ccf10c742099be72e6"),
		personalization:    decodeHexString(c, "4742467ca6d1189ab9146138ff837a69fe912340f14b1546"),
		entropyInputReseed: decodeHexString(c, "7a3cdf594cf16edabd2ba83f27bdbca6ebc82bdef5a7668b"),
		expected:           decodeHexString(c, "03a4b7a2ce6d085b0e809dcbee779a80822dfc9543725783154ae3e7d932e5dec70268bbd4de2eda7b7877c45052c29bd3b5e9bcb97936e29e52f4e5a722156d0e607829e7b1cc10bb100e6b635c201d7a3bab8875b73b3756de1c310542d482566a6168ea4fc0a7b8d92de225f5edd5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_12(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "72110904d5e985266e814280c77983cd70beea2da31ef476"),
		nonce:              decodeHexString(c, "983ad78333e867cac9cdfa73"),
		personalization:    decodeHexString(c, "96a34ac6e0d19c471bcc6a071cb130ceb8841bd2e9727af9"),
		entropyInputReseed: decodeHexString(c, "054c194dbc7a42baa741750870ceb6033ee6c8ef5293d2a0"),
		expected:           decodeHexString(c, "700111fa475975a00bc92db8d620edb0690d6cecf8733a18c403d831a43affb8dcf27f0c99da78991d2cbeea4f26e69b250123c08f3c9bffe8348931ee27291c40e7ed0bb74c3779c4e133efb5bb6e1cd1490335b34cd166fa25ddd86c080f2f6501f6d2fdbd0ee96828c41eb5dcc008"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_13(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ce010a29d81278f97ef1c9ce0f748afcf21e3250b43ca24b"),
		nonce:              decodeHexString(c, "ab4c3cb1f6d8a62b8492e457"),
		personalization:    decodeHexString(c, "1c69f502aeb2484f126443f4ef5f0b9201226d2c26d650d1"),
		entropyInputReseed: decodeHexString(c, "bafd1c600c64a3b083ada052a4e4ed3801c1e5a2ec6d9116"),
		expected:           decodeHexString(c, "b2ef00f8d2fb49372d79316f6ac80d853daa0879adb7ebd03f286ca807a45e76ef5fa8270a3c1e6e9d0920fe2fa4556d5afae3023ddc2a026d34bdfecf3e1312e7b25bad903f970d30cdf567dceba29215cc48eaf5a42a5e2a7060e99ecaf5e38752b9639dd54fb0ff31881267a33299"),
	})
}

func (s *drbgSuite) TestHashAfterReseed18_SHA224_14(c *C) {
	s.testHashAfterReseed18_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b2d50293ed125632300a93b46dfd29b17100fc31a5516879"),
		nonce:              decodeHexString(c, "c2b331e9d8e760ee14992ad3"),
		personalization:    decodeHexString(c, "6e13d450a083f98771418e6b7f42c34e6fcbefdad2c7ba3e"),
		entropyInputReseed: decodeHexString(c, "85268d65dc5465ff76d2673218b12afa2aef9e07f40e3581"),
		expected:           decodeHexString(c, "cd4f63b88ce42fa6eb815132bed6b611bb3e1d0bcd2d55c439fb5de4b8965b1ad6fa5daff103846bff7c695117664306604fe417261ba05dd91131bed364a7d12d45c36a5305a82b856c26f8e72abf707b67dbce330ef6c499ec8a60e0a58bffdcc6b0ad7c5ef7f3fde1c8d898e6c719"),
	})
}

func (s *drbgSuite) testHashAfterReseed20_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_0(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d210e4e171dffe64f61bcf60f0b3a753df0cd9c99f74e2be"),
		nonce:              decodeHexString(c, "8c0498b516a0708c49521d8c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4cfa84acb50c721f91ce51b5d6c3ed892a72381d9ce52f5e"),
		expected:           decodeHexString(c, "fe51f4946be29d9bdc62075bc89236942585f2a857d943fc86f2d2e975a4b081b073156d17c49c13b69a2b0a1f609f70cfae31d023b759d926c448a9b7e9906b1b959ca01a768e23fcc96b92fe98432819a7492ff2f20f4e166dd60f6d4ec285752b161d2b0487816523cba128bcc78a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_1(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "fa0300d2cf7ca743951825407c8114998a2b840a7f8ed5dc"),
		nonce:              decodeHexString(c, "5e0e7f3807c863b258717224"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fa3664890242d76d0a51f049851307964cad0fdb84397a97"),
		expected:           decodeHexString(c, "559a4478ea6ed883f41f446dab32747ff786f760d15c6da1e197b9388ca3678fc058f7bf5b5aa6498a83333c4d2f327ba787bd6d4755e144f198599a9aed9a50da98a108178d870303325ed1e87d5892a21ce2e4d714fe79c313c568704397f86f1357e1429b5aa4af95b3c973e3e969"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_2(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ed6b0aefc3ba095e0618b3a335f6f3ca0246cfcaf7c6704f"),
		nonce:              decodeHexString(c, "435dd259b30e428462279e5f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "144392e141912082cd77d434013303dd285e95a4c4a396c3"),
		expected:           decodeHexString(c, "ab9c68c7aa6dfdccf7741191c0e5b08225ce0bbfdcf768be213c4d09b3f0a3a7fdf02f5c8423ad623bc1d94d0d6a21e5a7f2566be586bd918de711e12c58861517633238e11383bf604e5ecf60acc3025af91994af19fe7bed5b6638ae72b823ac02befd029a51d5339284f66572868e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_3(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "06e91937a3ba2edea8e96f596ccabc7ca7f0a5259e58e697"),
		nonce:              decodeHexString(c, "688ea6f65c974a154111bc17"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "aa4a32cf9847d1e232360e296787a9ccb4b024d04553e284"),
		expected:           decodeHexString(c, "f11d1bd7fcb9276562a6bee413dec1f17954ac2f73c1f32829c0c7993ab0c5025a74e7108b7a314fcafaeccc806b59b85e4a30f6bcf92cbab12efc09f5ca5bbd6bd92c90899fd698f59bbcd02031c3c59c10d1d8e513e0847892a79125cbfcf9cffd28758cfb2e5670fd3a0067aa1205"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_4(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3b9110b1a13447aa9b91c86b9e9b45d439846a230bc97c3a"),
		nonce:              decodeHexString(c, "155c5520f2a982a0b999eac1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4766e9161e2611fb20f55d1627bebd148b7e49fdcce17171"),
		expected:           decodeHexString(c, "1fd0d4f9170a37a97b7557e5a0ad6fbcbc71923e4bf58bfed59274c43d4107147fd9a3a518a3345bb73e4c92f88f1aac594f53e369d5705c923c81f03fec57bcbed00f354d3646185bbe9cf0cea86e57857ac126dc13a21f5a530e8483afb0c0a7f9bdeeefc47814c7c7a220dfb6f7f2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_5(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f74fda113eb91c2338b8aaf8a5cccfd63c45bb8535283371"),
		nonce:              decodeHexString(c, "b868fa8077888db75b60eab5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "46a91f48255b4596af361f2b47c99b00363d5885bb75ab97"),
		expected:           decodeHexString(c, "7998dac2ed1ae0ba3c69848b50fc579d4e14a25da41041a73dadec43833dcb8b8dd9fdee41c318f27990eea45a90b5d78940cfde84105793cb1ec01683c6e74cb6a5f87ffa8864ad9e480ef58cdf8b24e33c98fd474583473acb2e8b2b091d94297c0ea5323821770324f7499f70be9b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_6(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d78ff32ebc91778b1899bd456a4aa20e3fe4477ba8caa823"),
		nonce:              decodeHexString(c, "5420530d0f0e8b6391e3e283"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a815b44623b010d6a253d83db94366c85c117212856a79f8"),
		expected:           decodeHexString(c, "a71e8cb4b7bd640e4efa224854058eaa83c375abfbb15dc25c4bb7ce0943f369bfe477a38e348a7e5759e3b336d914e712a3dba999df54850c7a7c0afe019ee22d9d3916fe9168fcedbef58d2c5849798e59dcd2a98c66014c6aa2362ca0d5709fc06278738d44385650ba340b924af8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_7(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e12c424cfe20fba6443ff626a2809d3e1ca24aec23db5e65"),
		nonce:              decodeHexString(c, "ef5ab5cd07de5c96cbe19fed"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "328a55d87fc3acb62c7f9a2638a36372be43c6a78a243a53"),
		expected:           decodeHexString(c, "522a2aaf3d18c722ae0f1b8900d55dd6dc2f79ff65e4e305d93aa811d7102c2952eaa9e86e4c9e2660576bec4b144eeb58dde664d22539f6e2195d005cee6be43f3d858a8919b63b9214239c02f829ab8a33db12826ccf2c3547c4d6ad081fbfb8bf8e582722ff755575975e993ce412"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_8(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "30e4fc0706e2f09a9674c817e668f1cc0fbd675c33cf6d82"),
		nonce:              decodeHexString(c, "0ab86985ae29c4f9718fed04"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2a6e06c1a67bed1cc14eabce978440e738a4ba794f542007"),
		expected:           decodeHexString(c, "75c1c1ef4e44889d857368d7c1a01de01038e75c933e34c1afb94f5efb3326130bc3734fdd28dd5326b8957aa8bfef4fa9579d74d46c60b69c458969e74cd161830cfa68a5e36291a79e1e97388b80e86af42acbf23e97064cfb2602a0c4cca8bf7c106c753eda58294c05e59303a6ce"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_9(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2283d036089ea11ac93f8fe87191eedbd458b99952a80d40"),
		nonce:              decodeHexString(c, "41c099666fe0aa063e67fb87"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6b257b7db4061866e3fe9c7e5300223d2c144c81f57a65ea"),
		expected:           decodeHexString(c, "dd5ceca413871aba2673842218dd30e90b6b3f629357db543249029c45cd7362b0e6050d25cf065d036fc6ac56cc1ddb13d6b8b7f83efe94b54c704d1172c3e8fff28da11bd20d62e09e7618f433aba31b0715f0a750f0c7579435e5c9609e9bae5e5624f71b64ca8e050e77233e1b73"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_10(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4dbbc736e6bf7c10e6377b1699d1eb9899a64d7c32bafd3c"),
		nonce:              decodeHexString(c, "33bec5ea13f76d0d64cfa765"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bebbdb72c75bbca211a259aaa3d105502c12f4ae916e2c0f"),
		expected:           decodeHexString(c, "0473fc3d80adaaa646443f6a1170047f31b192be560c574ee0cd4f4aecbd6ff1b9e4e7f5ffd565777e4b68f95ccd3a265dc4936b3579857f3828411dc84d271a0c03b7b5887f96e9ba49d5c8795629ebde051bf002916f4776698612162ecf5746a155f118532487374d960237efa4ac"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_11(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e5ea2f47ed3d24a31ed3e98b6f36a2fa79c2781949f4d7cd"),
		nonce:              decodeHexString(c, "9a2d51307ab287d0ffea8bdd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0801996f2addb24efb3c03aa2382392f9fad64e9fe24d478"),
		expected:           decodeHexString(c, "6fd96cf56231054b94027549e3f299d37231effd5551ed68957d963b905f4baf679bfd835ddad8307fcf890053956da648aa7fff474c799cd346ec3d8109278967c48e5c47e9e1e349850bbe5adb60f33f9f58dfa1c34b08c1a019f161140f5f73cb60e09cacab7f1569662051628baa"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_12(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f21a6b02889570514e7a08a8ece09dd2d36747690da21865"),
		nonce:              decodeHexString(c, "e13420c49ad54211afae3a95"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0c843cad73dfa0c1f616b539235377af8e86e0e8ce796769"),
		expected:           decodeHexString(c, "643bdc4047813540899100b6620509917a2ab63c4da1776d2cf84ab8205d7cc98d4602306c6db4e9e22152e5fe1af276ac6c520bbaeabda55e3561ca3fabb5252155381c36957a90efb8e8ae9da0dddcbcc9e788f4759ae0f7c93e8809d10968ba1d1f6d3bff950b7d383c096b729ec4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_13(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8e12e37353678c9063ae7dbcc712f3460b1e268c965d7170"),
		nonce:              decodeHexString(c, "7d5963b7453429088927659e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c2306edb0f6c245ff91a57989b12c41e2f230a9a364d4d22"),
		expected:           decodeHexString(c, "dc2536d633a4e84308668bdf008a5699789631cd21c67d608d85586b481c657361b350fe813816871bee0da9098220db34e0284fc5a20afce6467793eaeca10a9734817a73ff946d4be67bd0955d147a24300b0393d05ec5c6a047b904efa7a2daefbc53a24d218fa70fc2eb08c019b2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed20_SHA224_14(c *C) {
	s.testHashAfterReseed20_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "614b80f9f8c8915bac7a08e6d79ec697947d1506a04afa65"),
		nonce:              decodeHexString(c, "c840df0456706776f0447d99"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "461d2b699e1b97efd009aa2c89062690d9ee347464259a4b"),
		expected:           decodeHexString(c, "b33babd4472d420eed89b7287001e85f22e8d7303ef6171c6632d9f720ad47931e4f7e9735bedde238db2448b8d8efa90ecb9df0fce2bef1e6b3603f03c284040df79b4ba52f6d6e4a9abbfa5c902767bed77110f1a65574f93693a83302b0425734e9e6c189e38d3b49ad8eaebaaec5"),
	})
}

func (s *drbgSuite) testHashAfterReseed22_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_0(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d711f3fef717c55eca14bdedb76f55056c7c70a15c6a343e"),
		nonce:              decodeHexString(c, "095473b0416991b3b94aeb10"),
		personalization:    decodeHexString(c, "4d41373345ab632f8306de0e926936a6dff1682111ad85fc"),
		entropyInputReseed: decodeHexString(c, "a1b2d3291ef093efe6b513ca49b6e91b5a92dd99f532352a"),
		expected:           decodeHexString(c, "53d05540741a824f9d1b45b91da704064b2d1f551ffcc6392ff17c7378c946ef39e39108279e2dec3845862afe595b26aa262c98c9dc9de9e3eaa6ad7648a923ac0d595262577360a5de8007a641c74c567f0ecd6682b362378eedfe11b527fa428634054376ef6084ec2596696337bc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_1(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "890e08ef78c61c5eac8b252fcf878c2e66d1e6a964e56637"),
		nonce:              decodeHexString(c, "ef771e233b36fa1fa2da6882"),
		personalization:    decodeHexString(c, "8a7f68ab1c2b86fcecd14502859abd853e839af25afc2f35"),
		entropyInputReseed: decodeHexString(c, "05496bea60f41d26f29b7626071f1628979d4dbb9d944944"),
		expected:           decodeHexString(c, "43cfce747eef5a2d1fa72b2b050650c14218339f9679e07dde66095fdecad4b8a2e6dbb110be5c8967a453313abd450fc5a1f8f9d008571c3b0518c4833a64b489f519d56fc4b46546288c6f3bd02a2c39a3a47181e60ddd1abd27e7360c7ebf41732b6b9bea66d6eda9b1c5517b27e4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_2(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "32a70a976b3c3da73e4556a8a261570fb8cd042ac0c3527f"),
		nonce:              decodeHexString(c, "7f4eb46c86f1fca2d90d4307"),
		personalization:    decodeHexString(c, "0f374c92e9787d18786314b851ab4dc2e090c8abd2bd3c96"),
		entropyInputReseed: decodeHexString(c, "a9ce1fafed80758abc0d3decb42a63249124a777820dc962"),
		expected:           decodeHexString(c, "bced7e5f69463d5ec0c5d9e0e73da2b4becd16680537ca5d3c68a38e9f980671b8025675745892403266821bfdfa14eb47e0585f2f043ce513f6d720b42679f22c728d5495e64cab4bcd96eb74045bf3f82495b6adc0c9b4c9c3c74b11968f5965c0b039131009a3ba1bfe61e01689bb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_3(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d2fcd18f9f340528ba58367242dc1f455cf066d7d24163eb"),
		nonce:              decodeHexString(c, "01e5786bbfca3e97b1f528ea"),
		personalization:    decodeHexString(c, "0abee53d57cb7d1467c04ef542e60f7ce2232b71151b1821"),
		entropyInputReseed: decodeHexString(c, "303d92464e9c05e3e36d16e76cc56d7a697d1f9f8a81bf78"),
		expected:           decodeHexString(c, "df0ab84ec1961189fe9ebd61f56da9649529c09bc9b3c2682ca7aad98972b4b406afb263e4754bf4296f2c1547591eda0eb726ba64049d85d86f64ad58668b0110cb5313aa71d85bda945d79fd70a9d16fe0b0e00f1a7ad0dd202fe3190a94fffee7177234c26e1f94fc26f720354d85"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_4(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "cb1f8b0f14fde89eb431432f8e054b2a16e35355ae3aeab8"),
		nonce:              decodeHexString(c, "3eba30a26f7a3466144623d9"),
		personalization:    decodeHexString(c, "c29f919f478919b840ff5a10253f8c52ffed4a44fe8d885b"),
		entropyInputReseed: decodeHexString(c, "60e18c0628c58524b87423f37af4193f65aab2825a464346"),
		expected:           decodeHexString(c, "afccd0118a8d1d0bbb624ac9c096c788fff70576b4a7f622273d558a2e3d8ec14ee3d5fd0cab6afae31e1510153dba832c5d5258116eff513f1ce7cf2220a01e40fbbe8a9841563f6f222d7fe8a222d0b052aaecb4b54710049e3d38c617182dce3bc0736fbf460396c910604f2d8227"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_5(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "861adf9135889ca697d0e59ecda8211cb740b7cd99c121c3"),
		nonce:              decodeHexString(c, "2a1bc3b0c64599024f02a556"),
		personalization:    decodeHexString(c, "bd4056e7fa013c8e2077c1498e7ed1c67069528369cf5d99"),
		entropyInputReseed: decodeHexString(c, "00a9b1baf6fa9fab6a991f220e2c7b323a320e60eb066178"),
		expected:           decodeHexString(c, "1643ca0e7efdc54b37d4b06f92ba0c7a312eded6c1555f260ef4ccf7e7ca83ca0c20589b4267fb0318d31a4aaead512d0e4c237b2d7aea553702e3119b0fc9d1e99b9d269f03b564a446bc233e6bc39b148135af8c4988236fee5d10e0017771c1170e4d64af96e920d550c359865682"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_6(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "0115a5cdb6d027faf1dd6ab03ffa557d18a9703454cc27e5"),
		nonce:              decodeHexString(c, "4491637fea575157088dc7f3"),
		personalization:    decodeHexString(c, "fe49c14f2c4b9924bbe139d986b7d5b3a979a3d4c8376584"),
		entropyInputReseed: decodeHexString(c, "3645563e66718a9017c1d34d87ad13b4b08fd2edc0dd1bf8"),
		expected:           decodeHexString(c, "1da4a2fff75d6bcd07436a7608331cb5f6107db961ffe41fabad37f7bd2a4801e6fea507704f8d88bd53df15a4e926cb76a459a8fad83129aeb96a6454636ae8f0231b58e1f035cbbfbec22830f19aa78bedeeab683e0c171916ae756c86056067bc21a50d26462f5a78dea6ca034bd9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_7(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "01840d9f0ed0ddae998a851c0abae125e356a17ca14439c6"),
		nonce:              decodeHexString(c, "2b58bdbe72a51b7dbbcd8872"),
		personalization:    decodeHexString(c, "175d1b0217dc5de6438053de4ec1f851f7129bd313adcd84"),
		entropyInputReseed: decodeHexString(c, "1082a64831f874f99663636f9520bbc06f7bee4060e68303"),
		expected:           decodeHexString(c, "44367c2d4e8497959c761b068c49a8dec3396af8115b9c479d79d167742fde836a1d1e773b6fd417a3e34fd055cc993cab79ddf8d35dfd9eea233301ed5a7aad82c09d4b9d62e39bdfb9fd0a130da6a1697a68a23e94fe2c0c2e8430ec0b2a82b52b87838a02b07b95ce73c69f6744a5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_8(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2250e82a49bd80aa6f621854973d0942cde4fc72546fd023"),
		nonce:              decodeHexString(c, "97d5bfc148a95282ec961122"),
		personalization:    decodeHexString(c, "8b360a46c97de1f75465e2bff838cd4ce36ff72b6e01133d"),
		entropyInputReseed: decodeHexString(c, "295bc0eeeca72dc412c7e858d24af775d1d4de3ca707e912"),
		expected:           decodeHexString(c, "c93087c289c80c4397f14c81ab8d3a30c8369173a49b474b7d2aa03fddd72816a88f72f7fed6bda8951b07217d4382ecd3c50d56a97044a6ddcad2bd88ef11803eb9724231db110ac5952ffc1c30b16cf3b186a2efe40af8aed9057b4c39275f8f9b73085cdd5183fc0059a363d5adf6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_9(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "db23c9f7826ea8bff768fc1a34d3ee6b337dc30f0c266535"),
		nonce:              decodeHexString(c, "b232e89be692e2635b5557d2"),
		personalization:    decodeHexString(c, "d66b2c4c44c531df105fde312ba3e1295264bbc3f8e06c54"),
		entropyInputReseed: decodeHexString(c, "d7c77bad04e20b800649aefd0673c741b9bc4e449c6a8474"),
		expected:           decodeHexString(c, "8632466994fddd3d6a1f4934e7769856268769e2d6a5c0aed36b1d23e0269df7417a204cc0f7dff00361702a84451c8727ec74e269d156dd9daf5e6b149e8919627a047f78287018a73a8ef99de22403351fff1d5cf4a2ee9919482ed7ef47a984cdf24e7502e092448155b3335e9f0d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_10(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "84117099a4b2c75123df9cd1af47b3ad6671e44c7804d7fc"),
		nonce:              decodeHexString(c, "37c99d5c021ae6dc512e227a"),
		personalization:    decodeHexString(c, "72fad5b294925b9f500263995ef0ada26dbac0cc9d143abb"),
		entropyInputReseed: decodeHexString(c, "19e87a49462bcc005c66fe8f8ff1afa8b75f631fee4b77d1"),
		expected:           decodeHexString(c, "3da78edf869ad67e96ada47f2f0d37bf6d24b48ca6a5eed6265d0c9feca9f2d3ec748b26b4eae400c40491a4479f62e96fd30e9cea6b99c9ffe007431243db4f0a22df21effc4658d8e8789d8af5ead01baac596e39f85fbf887a29bae8d556b09332d0e7c3a2050d98d0faafbe123be"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_11(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "043d842f86de74d5a7768030487877a27cd2f3b21491edd2"),
		nonce:              decodeHexString(c, "d4c031dc94b7d4f8dae66916"),
		personalization:    decodeHexString(c, "577a7f5704ffb1487c79deb6452053db7c784fd3eea0bce6"),
		entropyInputReseed: decodeHexString(c, "a7966370fbea39c586d07936c2d4ab6d351d254abcdb5169"),
		expected:           decodeHexString(c, "4a61527bf5802a35e3227916bf783adf33998fdee4278ec8de6bab8edd8fbf9b3701fa833bbfb5452e4535745f2b6420151a9cade5851e4566e7e3eab2e947ab6b119338ba80b8d2aeb9b991aab6a7c7cebfe935d1f2c4775cfccaaa24412afe26e0757aa7ddb7d61ca298174e663855"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_12(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "53c531efff4d66d9a29bef4f5d575e4549df56e364b3e881"),
		nonce:              decodeHexString(c, "ae17571fda4db4ecd3d590ee"),
		personalization:    decodeHexString(c, "d720c21a14484ad0f66fe2ff0836f227d0de1b2dfa70386a"),
		entropyInputReseed: decodeHexString(c, "635c0efb998d2c762e0915f215e686b7f8f5665daac08c63"),
		expected:           decodeHexString(c, "918c3ab75570e8c7c5c6cce870168f67ed80d114e5b7912ce1bbef952149b97bea8cdaec4494de4b82aea294329898d2e0b2efb26c4521545916a0bcbf8d6a32665d7d3df7fc58bafb4a62074e2553ebe4cc82954963f400da183cb3e56f495af9df09d661f82b3fed9c2f2bd70556ac"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_13(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "919e373cf278eaa9413b985cd51b460cb77457d47f7881b8"),
		nonce:              decodeHexString(c, "6cc71f8bca2b3592f514f145"),
		personalization:    decodeHexString(c, "b9a9d62d4721f72b60000a2a681f11ce77aa31ef8adb9dfc"),
		entropyInputReseed: decodeHexString(c, "65a4d9761d72de5ec26832cbbe2bb78f992fb8ee1c09c825"),
		expected:           decodeHexString(c, "54b870c134bcba2cc778a3c58040c624d10a1aa63b0f99f2f17efa9ad8d88832c3f904342f566a817b2e6b070c08baa9f8fb5a7ffec4b1c45f28ec33d6d96c9fa83b74214ea3c3a88463417a7309553d2ba62d1b7643c31d03bfd3ccda5ef6d4e8ccf9b94e61bdc56723860e07c1303c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed22_SHA224_14(c *C) {
	s.testHashAfterReseed22_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "7014b80e78362830e5dca5ff3159e7ae6ac1cd55bf14e5c7"),
		nonce:              decodeHexString(c, "3be28c9410f7f9caafadad75"),
		personalization:    decodeHexString(c, "847ace6726b86e491550181e0aeecd4fa39b194d1b37205e"),
		entropyInputReseed: decodeHexString(c, "ef5c09c47655838e01b4b2ed227f56d64604a5a9953bef4e"),
		expected:           decodeHexString(c, "80cc1e00cf5e33dacef02cbc669a987103a84164a58caa4aa5bbcf7e897e189d7bbc76a4dabf915d48dfb9ec30bf85df24f25ddcd70f5e55d23695147561bae38fc05288f3d0ab1b7535ff1b100cc878e8bce7d0258671b2980be2a50c6194a5720c683cc9c89276bd942993af2be2a9"),
	})
}

func (s *drbgSuite) testHashAfterReseed24_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_0(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "0e95b5397dc6d869dcc7badfc4f4b66a60d0d1a563720be8"),
		nonce:              decodeHexString(c, "b44d713cdac6f890239c0691"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4a1e28d6e886c33498bff6f3733afa7115740dc5dec74441"),
		expected:           decodeHexString(c, "f2bcaca024faf6c2701161ff8fda28d0174057a3995f55295b485ff48cc8b5e3bffd3b2f80a4a40a94eddfb0401ae45b47fe42a7e64dabfdfbf1ec8a10b60d4fade808bd5eec7cb4c0e6a2648787efd92a5023dfae9fcdb546cf9403057421c7224775315e2faa3fa3821a28210516e4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_1(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "6ee2855dbfa82b3a527f64c4ab6efd4140af639e8ed031b0"),
		nonce:              decodeHexString(c, "24b5bc283c74b0d533f6e884"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6bbe0cc2c4c17c6135bf6949c119d05dfd03924b7f7e32c2"),
		expected:           decodeHexString(c, "6e5c0581a39cd1a46682df0e316856f5e2b132b986e0d31635f97aa39379dada978f76afe53a52506b6185d524a7d46147725f91df5271fff8f7ea191fee01fa7cbb37fb2f39865e30146df24baa08f584bc9520472c4d8faf8727e13c150f97b08fefa62a02b655b5388c498c7a4904"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_2(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3af80aabd8d70ce6e0efca06a50bf7ff061a99668ed8cc2d"),
		nonce:              decodeHexString(c, "4cb241969b64628086f626a3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ffb4d427b861acb3cc1e006f30654e3e1b4fd028fc30dcec"),
		expected:           decodeHexString(c, "f0ae712d23fce72aa137f02ff6becd8ab273e6dee87c14cc9a21574b1e3d44f0e0ad15f9c407b2499bc320565aa294c7ecac0459fd9275013a30a2d32e39e3407efa0e96940d7d7a96ccfbf3575ce7a9667c1b2120c229e083c7f7a014a52764444e9515112750544f9177d4c8ac53b1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_3(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "deb6408cfe09a3ce9f9ffca31bef96f6eed5604bba85ed0d"),
		nonce:              decodeHexString(c, "db3cabe6dcb42348677805f2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "aa0b84a65a7e4980220b91a08d2ab5ac6a13c993a2eb51c7"),
		expected:           decodeHexString(c, "eb33a9952d2fd41a430c487b5f9e4cd9c3511836c412e752065ea080fa3168d3c68ae0575b0a9ceddf4d153fe4deb79b77beeb438dec9333ab83e1961f99290ebe813f4ceeb2993af24a708b24b38025f9d1ba7e0b3408d13f48b64fd87102031ee21feeb96f9038ea31ff599baefd81"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_4(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d5dc1a491ca10ede27c869c0ff7bc006ea7a3181c2d7bd6c"),
		nonce:              decodeHexString(c, "248a3d829b5f4d099f5717c1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "84605708b016fe6e782a930695a7c918db0d7f2b7192531c"),
		expected:           decodeHexString(c, "82ee0be6dd5133a1b4da542b9174ae9ccfe11801d94e55ea77e491c213d91d6f13e38d95b58dca0a7e3fe1808f2ed0590e17f754c7fa9b26d38f3213bb1e88991ee5fb34438bcb528342f09d898dcbb440538d56a9fda427c9916c7dbd2d5f786a287ae91af34ae6a12554e62dad606e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_5(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "75f1eacda08ab770b20059ea871bb1b38e0665a3531dcb73"),
		nonce:              decodeHexString(c, "fc7f15f496fa19e6ace28172"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bfb2e5f7aa3af5a04e68bcf893c30681a9bcd5f33dc9ee9a"),
		expected:           decodeHexString(c, "9edb85ae94f553390e8782cea1615970ccc6f7ab3ffcabcc9afe06c1d386b561bb025ebc7ce20bded4fa8695907335450b490f1c98fed81feef24ac3aaeb4308b0b717a6ef1d87d852ca5ab2cd10b92d49108edf8d282cb3fbe13ff743911328425a8e4afc6c1dc2add92801662c6f1b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_6(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c7a5326455ea905d1c4faae8da9b00c76bea482b8c0397e6"),
		nonce:              decodeHexString(c, "3bc85eccf8255c661468e2f1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c4b350d6ade507eac9953e541cb436ffe8ae938c858ac840"),
		expected:           decodeHexString(c, "f3f8d967e2d7464922cc6c40a7bf2c38ac3bb9fd3846aedfee59d39bffd9ff92b1615a0988fe2106d5d5ec565cca706cc8661c3c9a9b414d9fac267d7b0fd2d7e5ffadafa3badf0e76b9c3bd5a86379b9f16be5cb5b29ad56ceca909c28ec486086eea4748d446da2d813ba3121af13a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_7(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8628d1ec4ab783099dc436f3cab25cf6687f3be697902ab4"),
		nonce:              decodeHexString(c, "38bbca03b475566eeb6e7437"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4f8a37842ef35b7f8d9b673d0d799896e0b409220cf39125"),
		expected:           decodeHexString(c, "99fbadc9d25437e80d21ac9b31649a8698a42d7a9f00f4f809660c05e7a024488c29615802b8780de43afe760614e2b16ce8318f58160852563e940a3331707ed253681ad1d196597fbe2794410f7720bf9585ac91f6764a7d2ab4f3c0cc2e7db940ddc47069deb7545e2c6ff01c58a5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_8(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ef2f85746b12717a820bfa5ae6edbd1bf80b63e632afc7f0"),
		nonce:              decodeHexString(c, "646ec1ac1e959e4bf7fc844f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "18e22ba3dc2ecc5d99d70002b49610c24410b612318bc10e"),
		expected:           decodeHexString(c, "97340f02a1ff3ba7a92f2a2292f284f9ddc65c823e4e906dfce71af53eba9f2cf1cca0a21a80df6cc7f15abb14f42b1cefd5b4276c101ff6f64cbdbbb52372107f09926d3fc015df9d1a868486f430d3ad49b3483ea4605cba0927516529bdcfa19733d8a0f859c04cfee19d7e73000f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_9(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "55fe67eb28c03549309c72c382cdf74882cd7fffb3e74638"),
		nonce:              decodeHexString(c, "67f291cc51cbf97f42adbe90"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e1da057bd2091da5432135ea29d2df6fb27b4ff1364c0f8e"),
		expected:           decodeHexString(c, "ea9e1dbb9de2523a5573715285be43c7987880a07c25cfd412bd7adfe048018c25e043c541c7a30038b60bac242295ac849da7eee8f1a954ded3588e5d98187b70a880656228d1f92cf952571500265be159c8e0814926a09c23f6d9217642a51be86bf3bc253e24b08406966aef96b8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_10(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "34e5393e36882c17094bbb27f289d250f6ce454f669fcc57"),
		nonce:              decodeHexString(c, "40a937b579b31fdf9519cb7a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "520f7c23ec754fb54ef7a96fa241737353866e233655686e"),
		expected:           decodeHexString(c, "62b9a92b9bc5875914e56ae98fe205bc9e84de9baf2c520fee7f5530d8d61ce3e37811996407a077310df5dec7d258f8332bc02fbdfa19ee48f75e0554a1f3389ea2b139efb4aab91b88bc62c86c60ec9461a6367faf69a86fcbc60d3bb4a77b076ccfaceb09d7c5738476d486b04152"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_11(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "32f925a893c393c38897edafa033ddfa1594dd9f0bd6ade4"),
		nonce:              decodeHexString(c, "356bb5433205ea8c09782c8c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0dfd6631f203557c67d815fe2a02426adb7ac68532b1ed9c"),
		expected:           decodeHexString(c, "707c2602019f30cd7f05ae2c556176a57a9eb0b771e38c9ea5f313ed641fa87d1e548107a11563067b0f2e1217898a095fb97c7e8e2ceb2dca0d9ba811e598e99fa91dd45795b639e970fe9aa7284badd6d7e098dc8bff133a315c097949b9f6116f198da110eafbf3edaec306c3e0e3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_12(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "fce3063ec41d1f21add09ecdc335e9f35daea6886d24ea6d"),
		nonce:              decodeHexString(c, "54e529fc710a456d42484c0e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "399367a2db3090bf5e3b969f22fc8e9792764caed8ec4beb"),
		expected:           decodeHexString(c, "fc41d44c54da60315fd0c83e3bea9be9fb49a7522c1a6587976234ec622548d6047f86f36f34cc753e2f843531a25a84c113b5880c6d33f4c05eb82057399c575e4724d75a6e4fd102ed23908f5facfc0a76d37cb54c37aec06818dfd6134dd10fff7cf139f2c46d4e6be46fa0442b66"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_13(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "fa2b5d7344227d375163d6a64315694ae725f9eaa7a6b964"),
		nonce:              decodeHexString(c, "1153711fbd20064edeb1688e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7b29fe190bd45c14e6e0415e4760ae1d5bcb97d27b78c7b8"),
		expected:           decodeHexString(c, "fc336d6464d823c23b88802b36cf38c7f872ea73311b2d75ac1aea3fc1d3c1cf57ef2eff424563ac88e55994923dc0ed6ce6509ba7e16e4c7d1b7aa7d396fcb29d7eb64162648c162010c9fc833243ae33fd1957fa324d70b1185a3252d656250f4dea369139dcf74bf88ae5608d6003"),
	})
}

func (s *drbgSuite) TestHashAfterReseed24_SHA224_14(c *C) {
	s.testHashAfterReseed24_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e443e50dcf848e1cd5988dfb5ac14acfac0a1350570c3a81"),
		nonce:              decodeHexString(c, "873566ec7aeabb6e2ebd6e22"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6433cd4afd2f0efef269bb99d884445d05d2a355c1ab2274"),
		expected:           decodeHexString(c, "315349774ee632596ea68d041c45ed9ea134e31074af401314c0dfe39720e5721a073d8a502b93bd66ec1d84bb586965f1523e25b0f996ef8293d62448997004f39ca4b37a5fc907915b75f613735cac46eb0164ee7273602cb208a7bc6c78d8ce60dadafd5406faeb07e037cf010ccb"),
	})
}

func (s *drbgSuite) testHashAfterReseed26_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_0(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2bc55d9d061fae9c4d7ba1d67a3c9b3b30ed28465737d54b"),
		nonce:              decodeHexString(c, "8a59d8ab229af76551a3c520"),
		personalization:    decodeHexString(c, "41ffc5e336039a8e0c2f984dc66198106d06e757cfc2ae6d"),
		entropyInputReseed: decodeHexString(c, "26dbfa60142dc5e3d2a02e32291ffe111a6cfb9d97a687e5"),
		expected:           decodeHexString(c, "f219f77770c27457df92e94496fea69f0eaac39f65bee77cfaa0a4d7bd8bf48845980fbc08d6d7be4347310b3955a3fdb488187545201d662b06e6ae45efa6721e35b0c2c26c7f75f62a67133bceb59577d1af79af177d4b1e815ff453d0fbd6a5614da3c24a91add73b9ed8387a6839"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_1(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "25eaa84a5614b0f1f4a4b0766e2a056ee1dfbdb24bf757b2"),
		nonce:              decodeHexString(c, "460ed5185d48701d76579076"),
		personalization:    decodeHexString(c, "8360398f0ee5d5bf20bcc8e177985d0da5762f72007eeb8c"),
		entropyInputReseed: decodeHexString(c, "9224a9472fb9e72bd39abd665f385c932d472aaaaad183b4"),
		expected:           decodeHexString(c, "e9e8e57d2f3cfcb3bec5492e57537bb1aa8a65a06d991474062efb95af81179ab78a43023d1e46317e84addc4fd3d4799a72d2c7f48a82a7561c739cadbd986a6ac547d5cc522af30bd543a723dbd0b7a98509915df9133be0bc44e9082047592399bdd68bd97e43776badcc83d2ff0e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_2(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "66d34534bf7ae44153e3b85d98cd6856cd724a681348a93c"),
		nonce:              decodeHexString(c, "43a7cc159b2e17c4deb5ee66"),
		personalization:    decodeHexString(c, "da4e50d70535c994202d5ccfdfa1e05d32f34ef3b013a9a8"),
		entropyInputReseed: decodeHexString(c, "639ed258a54e3d3e9d9d20a7f66bff9c9bcc514479b064a9"),
		expected:           decodeHexString(c, "a278d0df3ffd93fad642a7f2940935cdb7e0f6c0613a45f2be28f771ff043ecca1abfe12ca90cc7df1593e189d46d6078a653c047d20633f40ead6dcb7558015342679135d7bef1ac35cfe559e63e0ecf824b927c2bac5962285add370f5c19f47822fc88fccdcb8d08ce88a7d8bf973"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_3(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2152ed34ef7ca2b762b21fed069bd3309b627a1342054d0d"),
		nonce:              decodeHexString(c, "e7481fe1de46f38a018caf2d"),
		personalization:    decodeHexString(c, "ee17821d3dc147781019fd926a9f879715382d93b8c672b6"),
		entropyInputReseed: decodeHexString(c, "f0d686cea91a7b2790b6b4160d4860326bc7fdc1f289f6fd"),
		expected:           decodeHexString(c, "83ccb736f08293091b9c46642dce18fb1b8c65eb083af01597a1ff16a9324781758d8359552e70196b80b2b72039469286836d4c2d49f65597412013d8d0c567899af4df757b4ec77c2c435b51b356721c2a4890b94490bfee1fea6ee377139ef516c468d28ae84b22783fe4f5016d54"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_4(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8f990c533228723a7cd7eea9129b85c4ddd29bb51b65d465"),
		nonce:              decodeHexString(c, "6710b84fdacf8442ba0ea30b"),
		personalization:    decodeHexString(c, "7006011e529b76e51458f212ee7887865dcc27c631105c49"),
		entropyInputReseed: decodeHexString(c, "76014f10653c04b24d8ffe7bf4ebbdfab0403c55f0ccc2cd"),
		expected:           decodeHexString(c, "386be1b336892e23c54608cd3cfc5ccfe2378b6ae1a6a4bf74c3ddf202499ffb1cdee7526eb58f5887501850b77f24ce626bafe0ed8754fae323758cf19dd4da7e91a50ee290f90a3be5aa3615374940f497e49fadbff485ffd52e5be40192074ee7dc15e3e85ed1453ceb53b6bc2354"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_5(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4c87ad56cf4ef3ab1efc2f96326e6023cc8e3d284a98614d"),
		nonce:              decodeHexString(c, "fe5a61fb8fa30ad9f64b2e56"),
		personalization:    decodeHexString(c, "c2102942a6bb7ef7b6c860f34ae56419ce7bc6ff72b5c7d4"),
		entropyInputReseed: decodeHexString(c, "e747026ada5131d2f2b645a0fa3bc47157689732016fbf0c"),
		expected:           decodeHexString(c, "b07a3fce14c8f02aea893bab490550fa46c1f2812f764664b9c686c360f0239ec623e429673236aba1e457fb9b8d8bebda9ef62afac43fb1dfa3a5d7991746da8276093306bafe0ee497a22b51701382801678f12a2dcc04d9557ad58efb7077a2fa4f98075e2a49f66c8c79b0c47967"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_6(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "270b3feb23ed732c140befb482eb575f2fc28e0a134b0071"),
		nonce:              decodeHexString(c, "48cbc3d69f2d2721668d617c"),
		personalization:    decodeHexString(c, "e298f86c9360616ec4537df12618df483564a72846ed14fe"),
		entropyInputReseed: decodeHexString(c, "2e090543788807019130b94f4d9ff161d2e9381b2970e5f4"),
		expected:           decodeHexString(c, "e6bcea10878138742bdfded287bb353129c80fee2b624f337a221b7c62c80a039331d25fe132dfef417a975425b31f84ca6f114f43537053a15b090a12231ac2618860a393e3edbcf7027edfc649158df1f2980afda003f81a188582732e8104375dd0bc02e23c691208f0137fc7204e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_7(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "7bd0b52cc9fb0adf28da9b0f99163af7ca55fef15143742a"),
		nonce:              decodeHexString(c, "c48332b739e2795af6d60fa7"),
		personalization:    decodeHexString(c, "79dfe849c956e190000a96c7246eca31cc9abf0fc2ad77f4"),
		entropyInputReseed: decodeHexString(c, "b68d28cc18a0be07f84a5928feccc3c945eed769b7fdf190"),
		expected:           decodeHexString(c, "8e730ce3d84385618951d3293404305972c0cce258efd29b53d6f52d4a2bfb97b9a12480d76183bd151517bccc907c8ce6f72839fdf5ad022a5db87e2fb98267a8cd6e519881381c5298024f0733f928dbd5fa3dd3910c4798c5ef285ecfd2988d9185731211778c6bd995a81204c026"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_8(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "e0b28f5dac42ad02840d0a258692ea629ea9f693b2db6275"),
		nonce:              decodeHexString(c, "24ff777268203949dea7c3e4"),
		personalization:    decodeHexString(c, "45c1afe8e1b9e1e2ead9b159feac7cbcb0d4adc70abe24d7"),
		entropyInputReseed: decodeHexString(c, "a5cd04ab560ab9efcbd34ef7778f5cf7b9559d4dfeda136d"),
		expected:           decodeHexString(c, "f9158eae1cee5371ecbff4293f604f81889b8b58010c296f8aebeb026582bbb7d0f22b715fd7d006aa4454609d20c0fe11eb2302700e3493ce61c6aa6aa1015a37ffa46847cb31470fb45181a552262202956287e2fe5bbd483693199a3c749dcb10694c918bf7d2b6baa3ffc16f694c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_9(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "b25bd89829a861056059a7d8015e67fac8d607e0eb026e88"),
		nonce:              decodeHexString(c, "602437ec70574062df4e910e"),
		personalization:    decodeHexString(c, "c1b86a1c8589e7fef01a663ab4a3582a5bd3ac230de17784"),
		entropyInputReseed: decodeHexString(c, "0f8467a5eb75c369dd4bd6e8005d28d287f92fa7f6ac6f1c"),
		expected:           decodeHexString(c, "3f6b93de0231be9202faec18f9d034e6b11fafe7d503ead76dab9d6a79f1dc0767de3a149ac2fa88dc1a23b86953e7faef129052a45e590ef7d51b4b363d3b375ed081c8e6665508945837e89157e2f9062e4fd9aba551dda7d75bbe228a8023b3639ab9949d68a545790bc091e9ae45"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_10(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8bd96e56705723e68536055ce515478120c775f53c0915b1"),
		nonce:              decodeHexString(c, "cf2f3cadf6e758b9d986ccab"),
		personalization:    decodeHexString(c, "b4303b8275639b96b4bd137d1af645a0f176abb1f75e7c87"),
		entropyInputReseed: decodeHexString(c, "b2675cbcdc184d72164f072834c10ae9836c7e0c125ac0fe"),
		expected:           decodeHexString(c, "3f852046e0be890063af5181f0f95fb02c712b8dba1e26732aa2f348ba3bfc6d6959dc01b3639358f14bb2c8c5ce29c1b168f942cd677af3e18e6ede4cefd7baa74ae70be525a91470758b580d628a29e1130ff64644852b9fcb12ddb167c881518cbd6c55135a484471aa30d2fe2947"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_11(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "7b193763abfeed3863623bcd2d630bc22dddd8988962bc9e"),
		nonce:              decodeHexString(c, "9cdb070cf10d4a51220e142e"),
		personalization:    decodeHexString(c, "d9c03817feb5700eabea08c7c0b677aa2097cb1663c44beb"),
		entropyInputReseed: decodeHexString(c, "48b35a57627e64a060fd6bb2c5fd9375414b3d237959d514"),
		expected:           decodeHexString(c, "2f2728510554097d96337765b8f03814c663692727e8d531d106f5d38a15ff7553a5901bb1d2e1855bf0799dbb94bf838bbf4d41c412d812aed3b6e68f229629028b0e2ee9ffa34a57ceca1be8e6d7b9bd4b58a9edd9c5fd8b984bf43666fe71ef1fea7bbbb9e7badd4c607f7a88c68d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_12(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4d4f2d2e83f863c5078707c628e1ee009ce61eff8d5c3c8d"),
		nonce:              decodeHexString(c, "b905848981e04b54212d155a"),
		personalization:    decodeHexString(c, "db7f8071bd81e1f76e8b507a2cf00b5d30a7b3de264b62a1"),
		entropyInputReseed: decodeHexString(c, "4cf089d4c2f3df03a4d144a77055c7e4a157d27d060ad4e3"),
		expected:           decodeHexString(c, "e2d3e243db409c1b98a699ee00f70df3b3a30e622d6df31917b919e6d565bce3f06e4b89e5e5e81fb1dd425a8847e160acfc0df2f0045055071e78dcc291d57bcf6e9ea683957a38d0aee189807145d06050bae3707fa9c42f65c9b7b952a45301cc87f57beef111451d6d787f7ed89f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_13(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "2989c7e4aa1e9ed277d4a156dd6742f5583ebf4acf467b8b"),
		nonce:              decodeHexString(c, "276f0ef848be591143ac1f78"),
		personalization:    decodeHexString(c, "22fb7e114a7a42ba6fd33729f2262e985b4b951c52952d19"),
		entropyInputReseed: decodeHexString(c, "561afea97db226d1afde44df564d39a6746bfadeb128ae79"),
		expected:           decodeHexString(c, "fc21000e033dc5da338c63c99551c07db58815cd1afb01c7c27da595aad1c60774ca0e3ea50c62e732e359d29dc9574a00411277f64da9b4c90deec2c91cfebb55b9b75ef91f7cd93b4a085dd05a44d182e53f7ffa50a38aa5f6a7e3cc4074c298b33bf58fc1965fdd2ebc812aa6c9a1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed26_SHA224_14(c *C) {
	s.testHashAfterReseed26_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "5c6dd51bc56405f56ee9cae35e417f0f16e94987583b3d12"),
		nonce:              decodeHexString(c, "324a9d981c4ba0fea4c0727f"),
		personalization:    decodeHexString(c, "1c04d7ed2ad9e0667ec83e00eac3278018206f6b4e614721"),
		entropyInputReseed: decodeHexString(c, "2f1f90c8bf6483897b86d02374997dee7193660b6dfa9015"),
		expected:           decodeHexString(c, "677ec3521bb6b5ed4b228fdb227833d57a63ea1b401c817d40ddbd7d2f70b3d874af677ecf13ff891ccc726c2e8316b200ad829e7febbef7fa9819ab801df5b147eaa149b3a9018511df0fa48cde9b989527caf9270c6d048f302fd81dad3f943c73a7a0eacfa2d7e9524a2fe8d47a3c"),
	})
}

func (s *drbgSuite) testHashAfterReseed28_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_0(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "dd32264f0e091b7329c16b3fe0f33db58a900a646f420a7f"),
		nonce:              decodeHexString(c, "8f2a5ca766bc07399f7d50e7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f8c404012ae39210122bdb5e478d9822bccad8f364f64c14"),
		expected:           decodeHexString(c, "4bc435ef95719ed095d961c86129c5877486f87823a6753a57a332271f2ab11d4b41f2fbf6c21e0f0af6a2af11e459f24412369c31511cee96f53f83d2bb26d94d4805168dcc7e982530d2497751348461c56349c45e401c6bb9abae95a99453acb3e580f93822d93699441886049baa"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_1(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "cf80e237af867bdd85c593047939006af3d981dc044589e7"),
		nonce:              decodeHexString(c, "f72186ae42eacd6bc2d94a07"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e1dc0d6917c48f778d7d59a4e9183fc2ebd5bc7ac7b317e9"),
		expected:           decodeHexString(c, "ee480d78dc6b15f3f6bfb15eec10abe5c260d4d1224e4ec9fb2c64c6cc80cfba24736b91ed26208e5bcb472a3b07effb2e3636a177eab2ebb44c2c47bdf907ae3816e3f6819985252b56ed4430a15127f363d3dd666a0b4bda70d6a4e96b183aac8a17d070521b5dbbdd391efdb237a3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_2(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "d85d39b2146867f1f307683c4a5bd05cb357a7cf38d87ce4"),
		nonce:              decodeHexString(c, "b9bceee9755ff17fe8d6d96d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "de205a4fb67118393411439b71c1a0eedf20756dd366da2a"),
		expected:           decodeHexString(c, "851227813526f934efd0bfe0a61659156b3eaad22c2d7e619cf42f6d4f8f6cdef69967f9c17f4ac4831cc0a02d6e6b362f41f41d61e46f6d452d035044ed2c5784c8852308900584deccf7dae84b59214156fe4c619feaf81ca1a23bc8227517cdfe7555ec5c66cbcad0398f704063ea"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_3(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "059f6003243f0cd79b9f0c32b4056f3757c319e966434b98"),
		nonce:              decodeHexString(c, "ff6c5920c55b5d7cb10b83d2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a09f46951ae68f3cb21d567d6c13cc5917c427c29beaf27b"),
		expected:           decodeHexString(c, "1dc23ea76fb5543208fc2f9f0066fdfc5a8d96f0505fcd53ea7a8b9d8f46c1965783c660869a4d5e266755e704b89552bbf693bf2c710a07ca0d23970cd33141f866a0f799938db361000a9ea2432094f1f59668e9987e79d23cf19126ed78ee8af26721ad7bf75692d02e414c1aa410"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_4(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8aa2d9df152233f225c83a6a25d8b55c26a5f4738476abe8"),
		nonce:              decodeHexString(c, "ab613737059589cc7c6a2f50"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ffafbaca9d80624f189fb5000542f7d73544497a9348599e"),
		expected:           decodeHexString(c, "8647afbf8a4b2b24286d075c1502c82e512ffb26018a5a37fe96d1f234f5cec78f15f23db750a79209e0eeb0a525e50b23b338b91608897cd613453ffa09aae50f257625fbda2c1172d951a66a764026be04ee5200a4eb00372fc59bcc080a8fa1cfd294c67a0202ddc5cdba21b36dc2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_5(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "963baaae11e5db10f8c2044cd025a18738b36198d6d95a95"),
		nonce:              decodeHexString(c, "3bdf2a0c81559b54c0d0990e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7b35e5e4d392ce8c51c9a1bddf8d7ce1eb4c7f78ebcc0724"),
		expected:           decodeHexString(c, "78d3a073e3dc2930466f8bfb69157917252b67b8707e91e260f2301d745559b5d14955a2ff5c7ce810a7210bdd226ae9325e3343262f095bc68e5dcdc6ae4413d7558f0544b6aeff132c1b7d943890f6dbcccd26b61dbcbe839af3607087d6be32f4b825efe1f00596b1db568e5baca3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_6(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "3ea6fe175bf4d51e145f2491461805c6b7b29ffd829e7833"),
		nonce:              decodeHexString(c, "81e68fb149d378891f90286d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2f024c09c66651dd4976a3fba97ce02d2ad2dd5a3885432c"),
		expected:           decodeHexString(c, "12938c288760dd34e1076dfadd603d8706ed432246c6dd0cb3c18c21fc42cd711b9a6cbe040da65710d61db1be9dc6fd938e4bd302e409f5402de6f070b9fd8e896645c2287b8df55d4847828372753e269bb0705550d7724b233d14b47fa7779f738bbb70a5793a0ab92ff805fff8e7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_7(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "f89d78f2ef276f7a49a7c1805c2bcad8aee074a3c56be2d9"),
		nonce:              decodeHexString(c, "0488bd1ff4a6d98a852643eb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9ff20a85332bb91586e3f57b26b05df036e76ffd8723dff0"),
		expected:           decodeHexString(c, "6758d40fec79a44b038efa922e07fd35991d5babdcc2508e7adc0a15bb0344b26e40123ad94cba160630efe3eac445ddd06c398329b4dea8e251cd6f9f251c7506369aa179e05350a87e58e45823c456f0211b5e1341828227cf762af8043bd15ba4c9dd5230b742a35b4da7ebb28772"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_8(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "435ff8048d71035097c1b126284fb5b0d2ec44b57ffb655c"),
		nonce:              decodeHexString(c, "0503a06339b0336ab99d7abc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4533498e6c559dc467aceb25c7b919d4e6c6995d2a81239e"),
		expected:           decodeHexString(c, "053a14584df77a14dea9f4297f79ac6fba8aedacecb10bc6c83d13595118c3a30d124a3fb5378c03a453f6664fbd0f4e1f7cabfc2b187dc0284a7b6d278ac37323bf7212b430102328afef1ccdb3be872ae2ba59c37cb2537d7a51e7eacf29747878e4449da15bd2b05c0a098f80c6d3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_9(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4a5700156d33aff5243b8d88657b16a598127e574cb5e220"),
		nonce:              decodeHexString(c, "43167b6e4ebd4c50a59aa9d4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f966ea4adf63363a050d12382d7068d6c9c6e7cf850be90b"),
		expected:           decodeHexString(c, "1342c78c7121c6b9363474c735c994f2c89100cf6c06344d326c05bf69b1ceec8d00823c1c816e03ccf4d13db674d7708a4c209f88404914da82bb1b6ed6fe01cbfa10c10a727989398c5ae64b7b57c048e631e3faeeab4c34df9dc5251d4e18dda3e4f12f3bc5e783d02ed83210abe3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_10(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "1c4405caf62d73d1ada68eec295ea86f0630aed709941763"),
		nonce:              decodeHexString(c, "2df6305cffecd5d821dd862c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f99f06dba62537afaf29c55965d7eec60c19ebb503e80c34"),
		expected:           decodeHexString(c, "8f043b04fae73acd55312abd4518fd458c6e869ce7d8f7d089a8e64ee9d4bcd06d15f2adf8862d923eb6d8d20fae3f459b7eb47cb0d9ab9b57bb465fb829e1988653d1e36f6f872666a82d3ce4ae7cbe332f0edf8b843da7537f1721a43d99997b270d3cbf75d05513643d0dc95871cc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_11(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c9a2b74f3ea0fe38c3bf769cbc679b3eacd3bd9659d4ede8"),
		nonce:              decodeHexString(c, "21011d88fd24c59123723349"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "72864dcf7710f41d98780c212aa31823fc3c22cbf4ad7a06"),
		expected:           decodeHexString(c, "02a24885060377fe17abd2c6fac586b8f5108b04761fe85e3ab9978ead09ddda3cf00cb08533e0e21d5bcdce7b33af5cbdd4564a024b84a133f7b43a868a2fa9259cd39d84a49ccbbd2b7493366f1dc26a770bdaf6ae54432282af5ee2374a747b068291f5daa96a9764f48bacf6ca60"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_12(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "bd752adb3e89d855cfcca5c51668e624bd41c03ffb0538ec"),
		nonce:              decodeHexString(c, "c7ac9c28b4a4d6b9180dbea2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "338dd6bb923d5d257a963310f11b5f49061691049eb020a8"),
		expected:           decodeHexString(c, "6359053e4fa37c05a71c375461636a4f73b8b9f2c2d44fcae4fe37887e43ebfc78a697d5043a74e79f722b9c33c3c31656cab14dca0b629f771387e285eb872bee0102835e7f034e272572eecef1833517ad1805eafc601ff31ed1022c7b47360ed7c03e5a557822bb4d1912cb4edac1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_13(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "8206d0f6129eda9a36aae6e81faa497a37adbc87178769d2"),
		nonce:              decodeHexString(c, "6ddfb0e6a8383f60b0e08912"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "225696bbb7125ca68647d67b85cb047ac5ce8dd373676233"),
		expected:           decodeHexString(c, "740a12f60e7a0dde917210d1f580f7d02dbd6e7de29fbc3828c106acc308bb26d9a9f37e78fe47f55aa68dad12a5295ae092ee0225dd8cb3530d377f53de719fb8402b8352c9cfef167024a0b018243c13c647a3fae483c9d20c6e9d5bc4ce8e08c927ac7dfa3d18e3472aa348e43297"),
	})
}

func (s *drbgSuite) TestHashAfterReseed28_SHA224_14(c *C) {
	s.testHashAfterReseed28_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "815efa9d0f261eaf51c50d22899dbcba39bf202f7725ec6f"),
		nonce:              decodeHexString(c, "c7714ce6bc7483960073071c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "855c7271562ea2d2e62f00b2af47166bcd21503f84af4276"),
		expected:           decodeHexString(c, "5c9db0c5b3b8a313da526926205fe52c5cd0e54f5aaa40b74269432cddcbeee2430d4f36c739fc157614f3863e0213166df4368b073c7b6f18c1519acd578f790ecb729b7c35a8137399d4f08b2af98d2aca981d36ffbb70d9bdba9d7ffb54c33112db8e036360fb2634b4a24d5128bb"),
	})
}

func (s *drbgSuite) testHashAfterReseed30_SHA224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_0(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "ff7de564180adfa8c569e61c11193b68a71987cdc676f1b8"),
		nonce:              decodeHexString(c, "66219c14ea8058b53fdddce3"),
		personalization:    decodeHexString(c, "ae7f41a459141a135ad26596e41c845c7d371d1fb9916db2"),
		entropyInputReseed: decodeHexString(c, "b391be47c3047c82eceaa06003911a445b67516fcf0ee982"),
		expected:           decodeHexString(c, "c94026a647ec67a8cf3cac7b9f7ec70d78292facaea89070a7b0ece435525e16c744f6235775ac899fedcb0f43326d1845397978cd22f8800e6a641c2bab6d56261c154976bcaa769dfde96b50efff70789e120197258a6f5af456f34bcf2db8d2a90a824ae5c4e5a1effbdef93aa0c5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_1(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "16b96835b9f25792958fd9ff8c50573c61a2818671a1b1b6"),
		nonce:              decodeHexString(c, "03c00436aec8a2fd7e30c467"),
		personalization:    decodeHexString(c, "fd840e727433105ae5250360866d85e08c931118938cdcf5"),
		entropyInputReseed: decodeHexString(c, "f2df6069f0e0e32c291f376aeaff443030e73bb94eb07f6f"),
		expected:           decodeHexString(c, "9b4a84129f3fd094222f637f7356682efdcbed25d5a328398a983d449e92187ea88e122a2dbbbd271c7c4020ec5a241eb7fe5bb4fb5b6d84dc6b82357ce197d51516fadafb0602171c6ed982d621dc0df6df52642cd52dbe1b8be2ff851d6c5c4e8e602134735d5b1b8b972939f2c249"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_2(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "23993ff7f6acabe1aaf16e88a0dc4f4865b9efcd8e5cc95d"),
		nonce:              decodeHexString(c, "1b56a5b578fe1383b6027596"),
		personalization:    decodeHexString(c, "7eddbab0a50f0022a6c4da078ce91b612b129663b6724d5f"),
		entropyInputReseed: decodeHexString(c, "fe356095e5c1d855563d09923854948933679b876ec44587"),
		expected:           decodeHexString(c, "6ebac1ef67c15135c7aa07bddfa780c6a0a24e3e55d81b77642b0d2fa44037c72ff3215fcc85c95eacdca155a433776ccd350f51c086f6282e77a8ef9e5f70595198368cae36d92f64e8e15028fabbf48951d7cb244022a0d35582d0cebfdca705792f54a30e18e1fccf3c85e6d37007"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_3(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "966d82bccad23e769d61e6db32d8b820c58a5adb22dd9f21"),
		nonce:              decodeHexString(c, "b60718703bc8623b2d5887c7"),
		personalization:    decodeHexString(c, "f9314060df2ac41fae0e365f06ac2ad4dd282cdcea3db544"),
		entropyInputReseed: decodeHexString(c, "cf87710075deb015e61a78064654c42f0ccb7aea18b98eef"),
		expected:           decodeHexString(c, "c9232112fa9acca6a826f5628bcc54caa644e3efae6b39fa7ae0d20beefddc2ef43394af24b2cc0fb6592b8ae43112145c684b632ca289561040abbba8079d82ca4758bf05357ef524d08e2dbe6310c2722eb472a9b33ee07a2c408b06cfb03d0f8ec1ff787fddab044b62d5dbb4240f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_4(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "7c2f96fa61e00b6763210fd031241a17e4448a867750768b"),
		nonce:              decodeHexString(c, "442fb392e1be5532333692a6"),
		personalization:    decodeHexString(c, "e6b046b4a28da9337993a27c7ed6b7c4bc75897472b0a6c9"),
		entropyInputReseed: decodeHexString(c, "099cfb5393f04d4e506b7214c0e33f67e6a2f387bf78de05"),
		expected:           decodeHexString(c, "953fd65283748dc4a911d3fea9259c45c4dd5a567db537570c3677d2c878218a2faf1c16ad7d3359136e946ef664ed16c58d680a04c751568e339cf32d2a908bcae0cd979db576fd8597b41489693494dbb9f5eee26c0dea804561d23ebdcec8416c858857b8d5c671344a808ff5f0e8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_5(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "1553d8b919183068d8a3c8948a0a8d987497cb460f7d13ec"),
		nonce:              decodeHexString(c, "c47783ee7636cfa1697a0121"),
		personalization:    decodeHexString(c, "5cc3c20ac4817fbefe0bdbf24bde8b81ed9aedc9024ba5ac"),
		entropyInputReseed: decodeHexString(c, "e62be7d3aefe4ff150c50911e2cde702fdea82b84bb09b64"),
		expected:           decodeHexString(c, "703d19db87253cdde4e6064def735289c85f35c7d557e825a2eb19b555f0b47030e7a2a1a344542754b7d478d1ba7f544a8d31594a667868cf6b4166caa097593c6d54e4776e244e6c701a2e10601228cfffec217ffcf15ff3621d86eda093d8bbe6a910c5478cbd5cf55f4bbfa969dc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_6(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "eb80cacc1f6f45dcd380f17ea8f64f501f49fb1e52b30d92"),
		nonce:              decodeHexString(c, "42f972ab765f7194dc9d9371"),
		personalization:    decodeHexString(c, "54327a9024c5c1f680922458e64613446e5ed81870d95f34"),
		entropyInputReseed: decodeHexString(c, "7bfa0d3c09a9b69466af31e5b174427d52dcb268f3318971"),
		expected:           decodeHexString(c, "35fbe6141526686141ac69fc3d89e92564d45ab6476a9f9d76e80516aeea7497fcaf657fd84346d40e7ff2a598e71feefbc43a56525bc88d3bdd3b95a282ab5db534d6d64f1e87cb216c016a1d5acb2cf30110a31ba126ab0fda8869d24c28923fbf4e714b0dfe7d1667077595ad89a2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_7(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "7cad2dfb8bf4ad272db0cda9537eb40dbe06dc356c263c3f"),
		nonce:              decodeHexString(c, "d4e561888170ac166e78ca6b"),
		personalization:    decodeHexString(c, "68bb9ad149a5ae20740b5affe79ac880181be1bf929ab662"),
		entropyInputReseed: decodeHexString(c, "581b5c9577234b5e55276b0eb992eec2e1def03b6ecc0426"),
		expected:           decodeHexString(c, "417382a610110bc53f6c578294435fbdbd84e7cea4878d17c63c8d87fc3edb11d55f18a7eaa0aab5bfb4376960071c274c44d2f44859467118db4e768a664bc4f3e1219527efaf943557079c1f8a6023d284c308c3a4a0581ba9ac70dc8375699810b0ca62e8d4e72f1fd3bc0ca89d21"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_8(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "1a5c99f4a98dcf6ad69c08aaeb3b88d1c237c50d0810d0f7"),
		nonce:              decodeHexString(c, "de5c18c4a5908266dc45361b"),
		personalization:    decodeHexString(c, "87825f8cd9c876f7310e152d24e0393a0f2bce5823c66c64"),
		entropyInputReseed: decodeHexString(c, "481d7a63c7d37a34f56811c17f67245071ed07ce07bfb55f"),
		expected:           decodeHexString(c, "8a994b32c6374b117f04383e7167cda12241d839940646f0a78e3d12d29846ca6bd235b7a62f6f0ce320c3896ada66d00b7642746a8ecc0bfee86fc192831bfd560cc8995f1b51d7725432c6ba8b816bc3ac5801f24e0906e9a841d59fee76774eb6f07fa4efc6c5d3dca1bfa16b83c5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_9(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "34a758c36df940c0e51bec4c6aeb9214ba1c8cd2ec075bf5"),
		nonce:              decodeHexString(c, "ccc669e97f78016eb10ff735"),
		personalization:    decodeHexString(c, "9a91e1e67cdbddf97f75c0fcfb164237e340344829efd718"),
		entropyInputReseed: decodeHexString(c, "4c5a1c7a674ff92541926d538bde9767c55b0b03629f4ccf"),
		expected:           decodeHexString(c, "28a304c21f3189bb5b942211189fead684dc9385bd89286f526343cef3e87515f8494039e2c29b0a37e113ba061882eeff151a7b230923fc8366510aaecc46c3a5dc380ac35d852426709f20990beb16105d74e86413e037232df05e5fa830c060ce2f9178ad3eeb5880d06931c6816f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_10(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "c235091aa2be9f4434b0685e4c1e3f4cefdda78116269b6b"),
		nonce:              decodeHexString(c, "083b8e2b5943d56544ff3439"),
		personalization:    decodeHexString(c, "849b3ead281c249fbd987f1c3fd38cdc9542aa9c5ab15f0f"),
		entropyInputReseed: decodeHexString(c, "f06fbc5bed3c61158b71f53783944e5dc4464d2ca27ccad9"),
		expected:           decodeHexString(c, "2e3f5bd813c292bc272c38086704099c39d177fd27310b35fd5bcfea1fad9c3ae56ebe68848cfd8dd447d80bf903ae08e37daf7e3ef3f605f494f69b4b7968faeae17501fcb2d986c071d3db6c204109d7f12e6e575d3bba5c2e0bf2e673e40de19791dcae47d0d8840fda8283fc193b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_11(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "be1af96725f7398894fd4bd5024eed4a1396c937f1367613"),
		nonce:              decodeHexString(c, "8070a375f410c30a2f61a4f8"),
		personalization:    decodeHexString(c, "8f6e48e7b72cefeb1a404384d8f9bf509c99cc66eb8aa806"),
		entropyInputReseed: decodeHexString(c, "80322b895702b31e0cf0394127d75e3e426731b0062f2f6b"),
		expected:           decodeHexString(c, "8510d68648dd8ef59c3ad76269dd418add5b93b1b627936a6e83fc0c0842b1fd9dc948569f1f9e1c9f626b7ff22e81e750d4c8f0e6e2c9fbf2dae137cc70b22f63d20c5d20244d49620ba7a70390d31fe603398904d3ee07589ddbb3f6f88fb9fd7a227bbe779b26a652b1a86a25e8c1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_12(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "6b1757a5d51010f18c5070b5b2492f40e9d06a6393bdb548"),
		nonce:              decodeHexString(c, "c79474a64bbae9240e126644"),
		personalization:    decodeHexString(c, "25b7536bd7f96de739028724d46f7cd9e438d289e1a18beb"),
		entropyInputReseed: decodeHexString(c, "106c34afc611c7931af46b38ac479132c0886b7aab760457"),
		expected:           decodeHexString(c, "8dc4f4b88934eacb13854aa6c52400777f367c0695cc7490d2c0f9ac28f32c8c117b04a95f2e07c16ceda85a31617d13cac14d8bd24fbd420ade1caf9dd4761e0ee720ac8edaa2915a57b87c8fd65025f9f94aeabfe45d2d92e96e34cb233a182f9cddba5deb55c0726bc8f59779ceea"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_13(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "4e6c90caaa3cd25a329d13602acbaf08e0263f815632842e"),
		nonce:              decodeHexString(c, "21036ed420026b38bdf91179"),
		personalization:    decodeHexString(c, "0bb0fb2145c5a2c1a3a3540d638466cacc39ab7402df3dbb"),
		entropyInputReseed: decodeHexString(c, "9311d047fa47bfdd000ef3feec4a88b41e926b780a78c2aa"),
		expected:           decodeHexString(c, "360c0011334849b0a4d76bd31fe9ae2eae79ff124b37300f602e147bef38540ed02ff01a1bd5bbc8a1537baef01afc2b998f275036ffa8ab9f7896d89bb096113b00505e71172396937bac735c56d8f0fdaaba6c9b01d50836d197c085e7aee9f79e2938f1cdc555576e639b23ee94c9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed30_SHA224_14(c *C) {
	s.testHashAfterReseed30_SHA224(c, &testData{
		entropyInput:       decodeHexString(c, "df51b3740719a6b72dd37c91b1a128b97a5dc49f6bb8ab57"),
		nonce:              decodeHexString(c, "a4ee4d3b127f06e16f0633b5"),
		personalization:    decodeHexString(c, "6755de9040b85728cae1eca13a070e16b520eb45b2687a6f"),
		entropyInputReseed: decodeHexString(c, "fc2ffb6c115feec3302a2656da30bf719b85b695675096be"),
		expected:           decodeHexString(c, "36db4354bcb9902359ac925b5615051b7ee09f0b017e244bee69524d4e1effa39aaaf1dc7b22230313fe04d859abe92b998b1803746147204cc49a215aaa56527b465bc7c73b53e5af0cb5a550fb7c0306ba93fd62490aaaf0129e0ec71b377b026ed59a066972171531b9b3d5e1763a"),
	})
}

func (s *drbgSuite) testHashAfterReseed32_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_0(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "63363377e41e86468deb0ab4a8ed683f6a134e47e014c700454e81e95358a569"),
		nonce:              decodeHexString(c, "808aa38f2a72a62359915a9f8a04ca68"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e62b8a8ee8f141b6980566e3bfe3c04903dad4ac2cdf9f2280010a6739bc83d3"),
		expected:           decodeHexString(c, "04eec63bb231df2c630a1afbe724949d005a587851e1aa795e477347c8b056621c18bddcdd8d99fc5fc2b92053d8cfacfb0bb8831205fad1ddd6c071318a6018f03b73f5ede4d4d071f9de03fd7aea105d9299b8af99aa075bdb4db9aa28c18d174b56ee2a014d098896ff2282c955a81969e069fa8ce007a180183a07dfae17"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_1(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0996a3825a456db3c5ae7c0058e6f9b5f4384074ddfe37b4ac68e2c98bdb54c5"),
		nonce:              decodeHexString(c, "318443aaf8c66f2b81e414dee9553f7c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f7d284583dc30f5ec4b16f7b916a7a89bced38bbc7d403ad358ec9196913fe6d"),
		expected:           decodeHexString(c, "4192e569be8f66820d20374efb53d2654f316c1f09c8e4b2a2fb783b0ff8a82c88b24791414b1a1f54bd00c9ce6a981d8d1d445aa55dbc8372e67e440b4d6f96b2e6ac4ee9657672aadab562297fea4c6d0b1ba066362eeb075a9f04da40c31d0dc6d30e3a236bf2c34dccd291eaffd16eae6c1cdb88712a913fc65f979dc742"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_2(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "3f1b92920c0d9c28718be72a695dc054ec45e75c4af04cbb97eaf285941be7df"),
		nonce:              decodeHexString(c, "b4949590b415d923671a70cf7a56477d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4ab6849c4477b3245a8668775ef6ef6f0496ed292088dc2d45db9658854b97e2"),
		expected:           decodeHexString(c, "ae9990cf69e44f08cf4af04786685f1c0051fbf8e518da98ca2d51cd337e0d635311335c944584472974d6e86eff7464d3ff55b2e007b194c8a6f7049bb56450e412e2512eccc6d23f4df28970309e251946c9cea6741e7b57802040d59db130e9a2d36db2ca0ee73634b525e41d7a6867954a127835ba54589a1d80ef0a974a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_3(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d8e6f5d4119cf450459185827ac2aa911941408e5a1c9070dd0f777e9f9b3edd"),
		nonce:              decodeHexString(c, "5e8f00b0884c0d20590ed3be6121cec3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7737a619f7073cbc4806f20f0dbc143ec03f05899ec0c7883b307187d5c6f9f9"),
		expected:           decodeHexString(c, "1f2f07dc89d415c41bd73777830e1d9f80cedfad17074b7e80583798ad843e6fbf6617b3d370dc6efcf97c776a82e5eca8d507609a7870e83d6c0ac7fcd85bb593b82aac2a9726d2785e2a62e939a606867db96501ace0cb6062526ffe28f8daff504ae0ddf31deb2a2059527d33443950eea4d56ab9b00c98ff3f29fd1d7f1c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_4(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "43a78cf773311c0a64c383616dc3ef8dad93187ee2cc2bd052186f0f89ba4916"),
		nonce:              decodeHexString(c, "3a2b43019bf9de164cce69bd30fb9e8d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a326f587c4711fba6cdad7e64358a0e93a95315df36772a57c18bf117528560f"),
		expected:           decodeHexString(c, "404f4a3e72cc2f228faa10865b0064652716e4729756dcf677ed16f6ee78ac41f2462497876efb313df5ae609b89f6b9394c37910565399f80bfbc3a0259df5760b27e6a9181d18c09e3efc6c949f65459a643b1e41395f86299dc7266515a3a1b1697a773c0d35e3d761255db5438f35a1e8c3defbe8ed87f723d4dece5dc05"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_5(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "7c99816dc9b3caa478478a17913aedd8b421e87912a899ec1d210a8eb2bd4329"),
		nonce:              decodeHexString(c, "5df63867dacefc8c6d6603cea10d0df6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "51fddeb33c017ce6ce0abba432c5bab52d76578feaeca1b9e89b227ff4cb44c7"),
		expected:           decodeHexString(c, "a5a765bc430f73d2b5248cadda827efaf73deabb7ba942e7a54bc70ba4100ed64128832cc5cc8d6fc3d05d4fd4a5f57032da91cb61a14efb09ff505f17f04895f59f871bfd3a9e0901a87e49e23bef769057b4852d17642944ef8e5144288e084cbb658daaf0866d8d6d882e7c7dfa7f1de8874dde290845b97a1aeb70e84d84"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_6(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "67dbd380aba64de1571d712146e9771f0e9d0f295a78411d03446fb66b389736"),
		nonce:              decodeHexString(c, "4d205db3d9e870ef8d6767ba98c4aa1a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7f9e3140cf1436e82f5c41e83345eed8362714e778ab539d0c247171941c2211"),
		expected:           decodeHexString(c, "7e7ef545744c69006bd456555627df005d0b954e79dfd030d77569414ecfeb4214ee9a76b1175056abba6ba1cd46da34a5797ebafdfddfcfe7c01a8be3e5e88db6c7b4c2945ea674890f689edc44161d6a8c25bf629aca6372a61b85c857f94c0eea83a2c86392c09e47c0ef54fc2edd30fd312d943a04f4ab0788b6ab21034c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_7(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b191d6d739bef23fa86849e0ece21d753bfd8dce2e8767e41ebdb129e1e00959"),
		nonce:              decodeHexString(c, "c7729c446731129c3b9c99f4afb092aa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cf3a0103714b6d9c0c8b55ce0feb2ea1baec5f4667cc9aaa66e3ef53856c34fe"),
		expected:           decodeHexString(c, "edd7933c4ad15d5d236e5bbe4a383c67875a44bab880dce95945c502a22b791812ba4ef5a3a5eae127c33447309336da075a1498ef7d740a556bbb2f63eedd3126d94564adbb3e95ea72523999135528d5140496f4f552035f5054e42e237e15d939963ea70635b7829cf16f6cb67898e791200cff6331ac93ee96cdf83d3fb9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_8(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "514d9612a96b5c25d2103a04c0e3b66fa1d5cc75f8931d4780647e231e261fcf"),
		nonce:              decodeHexString(c, "fce11e3fd9cd2f1cd3d03e15b52a3178"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0fe75d3de113029f701f0f52fc88d35881c70164d1900c1b7892731e3210330c"),
		expected:           decodeHexString(c, "5da179f8de082d3c5626e435cf8821e4561aaeeb7374f8af6d58b7c3c8ac358b939c9aaf803f5a3f43a0a68dbd44ef3f27f3703770c794a8a5c9c8ea7a5bb1dc60c2b4630b838657d2b98b8ee1535b4957cd066237c54e8b1e9defd2676247a3f4521b7c95d3be167b170fe0facdc369943e5f77bc15b0d699d3bc00c44ec365"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_9(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d0eaf48075407746b257a97fdfa2b48283367e99b1bce2d92e8dad6a6aa46ba2"),
		nonce:              decodeHexString(c, "87794a06ba9c513682a26494a1f3e460"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d1ca17748c45674b60aa6e0b6efb693ba0963b88fa89d0fa2faa257c19b4bfce"),
		expected:           decodeHexString(c, "4aaf6eac30e0149a0ec68d0001fd32776e73581a71d0b4900adf6ea1550f006c27819338df6045e636ac6759929182ecfbcf119ebb641ccf151e5f1e148ba882ff8c0933fb7752b84f7d84e8548e9dec0d404cb901a177ad85a97b4395d1a0f22a96f25bb1851ae675f2f41d98c817bdc181e47b124a25bd340833660077dc2e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_10(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "686857afef195d825b6a1be41a4ef72a1317e80b1212e6e7cc0e59d47c69a0a4"),
		nonce:              decodeHexString(c, "5912a733d43c96bfbb633318dd070f76"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "90393253fb69513565a68dc6e7eef1698b37df5075d8187c5786542eabb8b3fd"),
		expected:           decodeHexString(c, "a7470a0df817c8496ab68ef226952294b819a12672420c6c9cead4855f5243effcdebe9b12d4e9e5f47d6b6fad6bbe01ddfb42436691db2242ececf92105df10a63238d13e82442a26b239d676b9bb84bbee5c2b3771380ae67f1168f1068dc97e398355f2f57ef2d20a6c68a1124041a3da4b71dfde04c7ea41bec96bd11cd1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_11(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bb281ddea39b2b03a9625bea8a5a5fa42e779d1a5e7fec3705872b3bb1248288"),
		nonce:              decodeHexString(c, "dd516f4184fcfbfc4f9494c969bf22c2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dcfdcb4a3d1a4b00a7b8dadf1c8280558665de953ef7fc4f4a1058ac422e4bc5"),
		expected:           decodeHexString(c, "322b3d385aa200f8effa2904ad0fc92c2c89423c43f4cbd50e64468fbf6fc1212f0c7a3c5167295420f25579a39a4ea0240763d3791cfbbcabb269624f18ad3c103324945ca92661cbd532b9b1d79708b8f5ac9fa85efedf8add290fa032078f4c038e0d4f4fb485d94488fbc3a8792d349fb083c04f1072e14cf3b036874d34"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_12(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6b542a33ec8bb3a46e66e682dbe3431538469e091fff1c16bd3d1ffc3c24556f"),
		nonce:              decodeHexString(c, "471e582d85df71bc92cb670c2fb77289"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b017140d1a7a5a282bd27bbc1bcb77fa26377e2dffaeeffc8c8bcaa492e2e762"),
		expected:           decodeHexString(c, "8701e859a983a352ba0436dd49e0071e95d596213bafea1c92b6f277dee83f9e94c68eadea871c7f560f6f0fe1e40720dfd53e3de3a93d6433e2ed856bc3fdef673e52841e1c5f698c6ffc560ee9be7c1af0d48815336c3ccb47674a10de84aed7b7f6e99b32b34e4ac552850f68ee27c90252420e8bd9610c3d4e05a20f345b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_13(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6cc07efacf0f8db18c975c8a02bca7fbef13b13a63f76e4ff3b00f50131a71ba"),
		nonce:              decodeHexString(c, "270d6b577651118241081936d7d04e9f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6015eab74374ed7fcfa46c5921bed760db4b1169f733a814df9f00c1597430fe"),
		expected:           decodeHexString(c, "d920b20eb8685ce6380c0f9d680228e215e06284eaaeec7aeaaa46d8c03c1166f3d641d88f33fd760174b92490cb676834cf9fe60f1e7255b76fe0a4743f374e68f89a314f59a6b61a4b95704bd1034f7bcc08fb47da2ccac74c7ba7b05affc3183e57c1e1d38a1d4648e0dacc8c584b5e3413ece3e26086aebe3c531d838e39"),
	})
}

func (s *drbgSuite) TestHashAfterReseed32_SHA256_14(c *C) {
	s.testHashAfterReseed32_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "eded7253970c8da7c81e8221804d73cbf207e366f45e1cd3b82dd003526d07c9"),
		nonce:              decodeHexString(c, "696a322d37e2d9317e281d9a07ad1e91"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "db3f6b55ae9434a91c0ea3764855e34df859d2ef32e646f00c11d5d9bdc5655c"),
		expected:           decodeHexString(c, "d36ec4ef06f8a0220342787375423ba505971b5ee0297a29dc8921c7e0b3b000447771a8005234040996fc4421c33dc3a16234df5c4979288f6f35ecb9769e022505af6b93537740afb3504cea5c69485ab3918f0c25eedd7fbd78d9cb0fcfa011f9291a09357479e6865a94cbff1d640423472ee1860e499f167a7c72ba1b07"),
	})
}

func (s *drbgSuite) testHashAfterReseed34_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_0(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b87bb4de5c148d964fc0cb612d69295671780b4270fe32bf389b6f49488efe13"),
		nonce:              decodeHexString(c, "27eb37a0c695c4ee3c9b70b7f6b33492"),
		personalization:    decodeHexString(c, "52321406ac8a9c266b1f8d811bb871269e5824b59a0234f01d358193523bbb7c"),
		entropyInputReseed: decodeHexString(c, "7638267f534c4e6ee22cc6ca6ed824fd5d3d387c00b89dd791eb5ac9766385b8"),
		expected:           decodeHexString(c, "de01c061651bab3cef2fc4ea89a56b6e86e74b2e9fd11ed671c97c813778a06a2c1f41b41e754a5257750c6bde9601da9d67d8d9564f4a8538b92516a2dacc496dee257b85393f2a01ad59aa3257f1b6da9566e3706d2d6d4a26e511b0c64d7dc223acb24827178afa43ca8d5a66f983d6929dc61564c4c14fc32d85765a23f7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_1(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "c1ab40666e6d1e81520573714b665a84ca2332689fe0ae0718a9c81b74c85c13"),
		nonce:              decodeHexString(c, "6c1c2001b64b094754d1d585a0531a2c"),
		personalization:    decodeHexString(c, "74b2db2665a820f0c4754cf494adc617018ca391ce44b8b06d784ace3a839e6e"),
		entropyInputReseed: decodeHexString(c, "ae8b773c71bce1ce976766497a4df975a460811fec0a19e8326210397670bcaf"),
		expected:           decodeHexString(c, "f755aac4e2146acee080a84d201cfc2141a20744cd71a89f3d440432a81d2eb288aeb07f10710a622df8cec07c8aa5f84a88b4dd295a28953a2f589732cb43cae82079607a7f1ada3ffd4fd30f0c22281509d4ee93d18988e570fd291d8419a067a36e1098b2db849218e23893c3969542ee0c9ab0c00abb6fe72373461867ee"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_2(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "30c68ec841deec8350bb821250a815cd305abdd656cf0882d5573c8bd88465bd"),
		nonce:              decodeHexString(c, "55639c7f642dd5195ca5ceebbf9b5c6b"),
		personalization:    decodeHexString(c, "d7e5afd008c3cf9ba511783923e415e1f8278bb13c9a0565342a94584ff1649e"),
		entropyInputReseed: decodeHexString(c, "3eb2a99123ee921bf752ebff3d1bca724b3de8ca5b92aff9e7a95821b8883ba3"),
		expected:           decodeHexString(c, "f842406cf9e704f2798d4224ff395e27b826abe2174f534f15943a69656c034b6ab722977a3691e4a47295ae804cc2a479df894237750a8f97ed2aa65b9706ebfadc00bdc97a66f19ad02fc1b76db4b5ece558941ae458d0836b8f4a4bd6fea24e07f890c3b84c22b3a7408ed0888face36b713237b43c8c3724a2a3911274f0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_3(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "9100896a763dff7682195b4931123a746ef4d2e6c232c1ca5c4994b8bc0ddc2e"),
		nonce:              decodeHexString(c, "ee543d642b4fd1bbbc0ab997a7585ff8"),
		personalization:    decodeHexString(c, "5a0db70264f2282be5c08f6bcca690f7889b217b518809976a4a0935dd78bee1"),
		entropyInputReseed: decodeHexString(c, "5cc076431ab0f4e9d4d94f7e2742e9bee956dc3ea6d3d180c619c4562d9b6135"),
		expected:           decodeHexString(c, "640a1cb095256d3fd1232297cdfaeee11017ca81e0ba3f49f9c5d35454c39ec512fe079d165b415ea9d7ebf18cf89efdb5f6c5c8ff6d431b60a10524813371e57cfd4990d5713dac1beca254c5ade497eaee59c8574fdf3eef177ead5f8cfa491c7e7d0797d0322abe5115e33662bfa07f5d4f25a6bddae648c3220065f656ad"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_4(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "33b16c7ac65c36713b8de448efbb4cc7cf2eed5e970d3439aebddf11e44c87fb"),
		nonce:              decodeHexString(c, "7b8cba7ea83abdaf53022ee9c6988819"),
		personalization:    decodeHexString(c, "165655a3456ed7f6c9d8200cb89214187e95380c2765d2f89dfb5480d16a7b03"),
		entropyInputReseed: decodeHexString(c, "dfe32b43feba0e06d420e311167afa68f465092478181560dfc193dd8f0f0f1e"),
		expected:           decodeHexString(c, "0d30dfabbb2716ef3e27dab0f525869d2022a7058265ad738a3fc8b7ab99e771651d21ac3b2ff92cedbcb75dc82f25d95851747e81aacd5f1394c57b3c8a19edc47f18222e86707b3ae4edee20adeba058814913d2e8735d69741fe4d4d3532abafca554a53f8f4abd45665d292504f4512d526133710d9e29ee22c849cb21ed"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_5(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "e2a2697797bd0d4a1b55f7a6cefb7764131ab950c48eda9293ff8ca5aa5af436"),
		nonce:              decodeHexString(c, "4b195f3851dddcba143fbe9e80ffaa2a"),
		personalization:    decodeHexString(c, "e883605d6c4e1bf4b3d452ec42d7708a728199b38c53fc586eced016a1809616"),
		entropyInputReseed: decodeHexString(c, "22dce26b006fcc0bb6fb4a2d14ecd4e3324feea69788965d67e59f7e74b35d3a"),
		expected:           decodeHexString(c, "15fc2b130ee19e26bf807e2e75aafa936dd468591898f971de3170716a1ad6bf6f3a5634897d067daa34bea6d1f995eadf9a2856050247ac1b5e0f1c1847de3d09cd855397acf607ba08d41e35e2ed2f7eceb121aff0900100b2525795c4d1f32a2805b08b177478a6683beb897614d7de36e82223fb8efbfcc40bd4a2d9827e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_6(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5dd63044be8005c8f5ebf920986fe59d346c675d5ff2fddcf8fe85b8a6982bef"),
		nonce:              decodeHexString(c, "dd1aeaad8939df2f111237dc5d43d93b"),
		personalization:    decodeHexString(c, "aa040ec9d06492f1de2c528af3e8a10d5de9e6bb53f0e6bc81aa40aefbca8cd7"),
		entropyInputReseed: decodeHexString(c, "a71be7866959ec1aaa4a131b2fb452513f94eeb1c5e0cb36a4d5af2819843000"),
		expected:           decodeHexString(c, "5fdf271f7a2628d7cb1f9a507db41626ed699131ce81d4a0e16d85f4bba48457e34ba9892a2c61d0738aa89c2e9c5dd925a26a57f01fd0c1aca17fb37a45df92e4c1f07b264911fb7a658d4fed3e1d25c4cf1605f132891c6f0f28d2473b8f1b2d6e261c1ba6f8f0c7cda25ae84f78d8f4a658026f3f84a4db20b54d04253f69"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_7(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ab48cfb5ee5199d3167604baf2ba482d23e3ca6f3b80b923de1b7ef29edc76e6"),
		nonce:              decodeHexString(c, "1fdd89f317ce64c68c8ae166978df720"),
		personalization:    decodeHexString(c, "cde7a26630c6a9124a6b259e501ba55a83b20e7a9c6fe398dbea1e33bbc45de6"),
		entropyInputReseed: decodeHexString(c, "29c5906426a81e54fb7374137a177496ff31f207d1bab11c6c503dd325edcb43"),
		expected:           decodeHexString(c, "49ba08db547becd2683c46a8489f3fe8a1f285fbbdb9f359ed855915a925eb353d503cfe80193410186342c60bfd920257578fe88d53aa5060ea22b6a08650414f2eca0a50670aae88a00f9dd67a44b331f48fdd1d320af4398f84f08bbbfa443d173e2d0d0f832e25f1a9e2491f63ccaa16588115f551585832a90a3ae32168"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_8(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bf6813a79c9801eea31b856ef041a21da3dc5cb62d28052434cdb49d1587c459"),
		nonce:              decodeHexString(c, "0e18fb93777447242a3e83d17fd8004f"),
		personalization:    decodeHexString(c, "bc1cd8a5292cd2963e0c43c40b81ffd8c512a3bc904362c16b1cdf1d71c7d358"),
		entropyInputReseed: decodeHexString(c, "0ef05d593f3a8709b4d80be9b1badfb2a0560007c345fd978b64c424d4ebb38a"),
		expected:           decodeHexString(c, "550a5cf750aa0d1f3b284dea420a5931659a5ee1d01e840b9ceb3b37bea1a7da815b07e57eeac03255156e7e6da7caed79b292e3c2518648a3f5de4b19514270047ec1a99b8ae9448cacc3a6b6e17d5e2bf5247caf7e39084c5b66f0fad01ccb358eb182d7bee22560e59b66c56a31a0e32c94351541a775372f551c782ff494"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_9(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bfd5a9f709c11290ba98c9edf23e50833d30540621ec9b3a585b9b0d41bb2102"),
		nonce:              decodeHexString(c, "d41874cbb1c05991dcfe7d3bedf6d909"),
		personalization:    decodeHexString(c, "5ed8fd3d19df22b6fc3b3be225981be64d3719a36a19e189a555922fb52c2d66"),
		entropyInputReseed: decodeHexString(c, "6b3a88c382f511efcb83e649be070b1c3092577ca6e4cfb35f1571e1cbaf4454"),
		expected:           decodeHexString(c, "73ca665958f4bba1a8558ccb758c9a38a03b8ad242c710d66a0aae43e6f8d1e9da7d86f0f9959d0d9b6be043996c8bb794eb2fc902254270f83bc5a2843899fef7a5ff5b2e51c71423577d69057da81a0ad19d9049db6879971a70b3f073a66ac82f92b4ba29cab786b4a50fba27fbb44283072ac47357e092250f9072c5b62a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_10(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ab6bbdbc10c49d9361cc86bec4d4936364302e9aac6d172ca215ceb9e76e1d09"),
		nonce:              decodeHexString(c, "e4b583474d5fbfebee9e729acaa60713"),
		personalization:    decodeHexString(c, "6e0d53132be943e1351f0067feb2cce950f8b1870bb2832215d68c7844218d53"),
		entropyInputReseed: decodeHexString(c, "7fcb734b5bb20e923edf2ed204f898b576c5e0fb5309585d1007e353161bcf97"),
		expected:           decodeHexString(c, "5555a2c5081bbe8b8ac5e5ecc52112e71e2cc409364f8f6df0de7ec999cb0e8f1cc1c97b2168afa7f5e166d371e14dd2aacede910ecc868f26579abb0ff858ed6fe85fd8247ccb5fdc84671ec06c4cdaea922ed5dbaf3955ff6ed50c0c45493f9a653334c2d683fe9faa790627db750f3505eed51a0e292e1106d01fd9160e13"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_11(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "835c98328f161135fa2f6bc7f6bfa9af2fce407f63097e662dcff0e47a590f35"),
		nonce:              decodeHexString(c, "ce5c103044e2ac369a365a0276346915"),
		personalization:    decodeHexString(c, "76654d13a8e905f0cd7edd2821424e3d8514af769579ca1d805f03edb227cbf7"),
		entropyInputReseed: decodeHexString(c, "fa446eda616d0fe2a4e34e559aec33bfdb14f1eb41ee081dd1e3dbf5340b96ae"),
		expected:           decodeHexString(c, "48337054fd5343eee9eff4817b83cec13b34370ff7756f3df48aabe727b687a503bba15cb91c0b4ebe17509606a17c3d3d6dc51d53fac06847fe1c7e92fe4f43cd70a5b53bbd637274ed90fc72757d5a755047253da6f4a4d92770ac02d4811f7a1bc01889416ef81b4ee87b8e465f5846ce58149e28fda6d4c21737bc7dcde6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_12(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "924892c536b3a6951b48d1fbc46ea020be85cc8e9c31c435ea134dab9d40467d"),
		nonce:              decodeHexString(c, "a752494a84aef9b1e3b26f5739eb66c5"),
		personalization:    decodeHexString(c, "fe48e6db4b5b0b23bf61c4933e789bc81ed62128e16a599692053d9bc1b71d90"),
		entropyInputReseed: decodeHexString(c, "4d42d3c4245452b6cb1eca8daabf263485c51481edeaf5ed53b36f5b982ee59b"),
		expected:           decodeHexString(c, "57021d5b1eefdd6c9a197abbf4802cd1b83106c0999afd43a568b5b79f9d0aa7b2d475f013902010ac60a93fa020154e89b5a84033aee28fd1a46369e2572466ab8d986624119c747ed82aaf00572b34593600095fcf71313cf05e1006f30079f3cf8331934c19a76c05cd0edc6faeed284e396e397dbd7ccf93de25d6387af6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_13(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0779bfbc80793d19fe8718331cfe59a89c5bfab76a36314c28387d3ae7d40fa2"),
		nonce:              decodeHexString(c, "4ea104a180779590dd7b8fcb8fbc8664"),
		personalization:    decodeHexString(c, "4c899c0e62b7e306f0453b10661377e4de9a8b07afd06d5b13b9c94cebfcec85"),
		entropyInputReseed: decodeHexString(c, "09b8643f9d81653154cfd81c850967ac597ab59143003db2ea5c9d0deb2cb8fc"),
		expected:           decodeHexString(c, "552b1c43830bb57c31280638463f9812c00442b40ca353d513e766556ab9e78fd71ca6c7514af9ec9c02ab4eb55ccb2f1ef43cc9a40a1e178cd04b16818df25ee49f6e909663ac01bdadc9327c9f0b98eec57504c969be1e1d68372676290c0e6cdee682156b18d4e3105a840793fcb40193828d234e0a7252ac72c384425fe6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed34_SHA256_14(c *C) {
	s.testHashAfterReseed34_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2535cd6f0984da47deb202bff170428f19c9a38a927e74056c68260c5a4889f1"),
		nonce:              decodeHexString(c, "31eaf3a93c79e86747e67dc545421b36"),
		personalization:    decodeHexString(c, "97320d221299f61c2b2c2d8a0743aec748fab48934a5955a94dc311e3ff2785d"),
		entropyInputReseed: decodeHexString(c, "be4aaeff5884f5747aa3a125558f5e232d5f09ab4a8035bbb57c07c8acaf1691"),
		expected:           decodeHexString(c, "2c9947d385f855f1ea6b742abe7b6b692499a441c48874692d198a6030b604c9dedc2b9cb4161ba1c51eabdaee6dca9d741621ff358b962e0d792e1c74e24f4d3701b0ee207b0dcb64d66b34abca9f62741e7fa6fe9fa5db8d9ad497a09cba46cfc74a8bcf243c17bba6a28708d9a804cb71d258ffc3834d80927ab7cb4f2d5c"),
	})
}

func (s *drbgSuite) testHashAfterReseed36_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_0(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "a38b08f7912b07221ee08fb2f185b5a85aea486da67d9e3625521c490043c75a"),
		nonce:              decodeHexString(c, "e7eef6fd04112925b7df7340f073e477"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8c6109e09d49ed642991fcb939ed0e94311b9a742f630eb4a8f3d8483614c147"),
		expected:           decodeHexString(c, "66758be9fe3efec7a9c957121469b4797bae5bcc3b6e19e542a968f368f662811a13cb67dcfe7cdb03d7175096187a26642e84c2ee33809b9e36361beef125bc901bf6a91c8dc256f255522ef4d034e4b63b75515735600aef7ee3aaf3f7a8b1e8cd029a299c809f509b6a1bb5177e7e22122efa48e617282fb25b8c2549f25f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_1(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "929658dda75e8f8ba796645063f1cc178a6ee849032d9902ec090da9a280a8f4"),
		nonce:              decodeHexString(c, "536591342fd26757dafb1cbeed768c0a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e2093afee171cb35f0d04d898ed774c8a450f631a0285bff3c7c3a6cc42de2b6"),
		expected:           decodeHexString(c, "584c0fd6f2ea06f3fd3c28a98b631f92514878ae530bf61658981d5cbb9b50824110a27f8c3035187866cb886697f2da0608252a6dd6a8e8089bdee09aab927b001e83f045409b187610123f9aa36692c231e7431565fd67635e7c45dd2fafe183e12a4146ff8c3f86baf143856ae6d8d053bb3f47bd2a92b018df31fec0ac76"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_2(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "2b4edc3cd3397f16e8f5deedf587412b50fa321643192cadddc68b89ce84497e"),
		nonce:              decodeHexString(c, "f42747084740a2dbd690e15a3dd4706e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "85c69c831ac2c38756f29f3e01db209a7c3e316b380eae378725963abe97177a"),
		expected:           decodeHexString(c, "673feacf82c02d45fc11e1bb7529bb598cd792907574ab90e3fee7fac826d1dc67e02da048fba68f9efd1b6e5cab7da8aecbfd9e1c3bceb297ec97cc9ae84c7b727a44c27bf3118de96f20ec863759aa79edb4fa2e2456a7242c66d431b35aae61a2635dd53879bb0d37904dc56f1b4c11ce2e1a2263195f381522cb700a4d64"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_3(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f7a3813f7e40ff0cc1d8a1f10275c9aff1f29177c5cb1acf28368fba35c44ee8"),
		nonce:              decodeHexString(c, "22dc96f253722129eae2e4c5e5b7d148"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bec8d1b2841cd9dfc4bee2079a79485c545973ca9b0ed0f4cd232fe9ab4d849e"),
		expected:           decodeHexString(c, "0ba0649caad783b23c173a6bc7bdf43700242b074a8cf8fec68051ff6c8dd164866ba8e8abae318aa1ebd02268d3e2151d782d5a2d9bdade29037efe9f6a54f61cbaf3fbb3c22e318d4162c9266069525c4b5d2351308ea14fa8e66ae8265a05bb24c70b13adbcbad1fcd0d24a1d67e695e21420059e5435142c4e894562f9f2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_4(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "3da5cc9aa43b181a1e80402caa69148f3ff442e3b18122ba8486d98a046cb9e1"),
		nonce:              decodeHexString(c, "2cc86d6b829dcfbd48642c40e29d299a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3ef32a7c40575d540e24372e90799a3193c0daa8b61027b1d1a4d3a3443ad4de"),
		expected:           decodeHexString(c, "784a9c0b6d52b50c9c777ae9592b6a5750aab7383e00f3602fc0a9be250a346dd1aa6833dfbd7cce8bda9fa62c0d4ba5960b8db6c066b127ec0fac84e30168c0ecba2429055f3e7edd78c735b0011b44ce2f180c389d7d184f730d6f993b20685febdfee39e48abe66e663ea0eea966dce835708e4dfbd9b5ced2a9fbb088bfd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_5(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "cb072244f1a3ace81a03b2076641ee8c0537f08022732c049875041b75ae54db"),
		nonce:              decodeHexString(c, "2e05fbf45c9cce7b22b6759065596f0a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eb2803ddc2655d8106706585dcd3581ebfd5a7f14f95d5beba0e8b73631912b5"),
		expected:           decodeHexString(c, "0c10846214bc7e0a4f62fb5753c35b02ce0b01c21bb44ac73be36d81a7340e432912d7f47c7bb7d7dc5c5c90cc83f5994300ab7ba2d216afbc1ffa3f770ded05045314e26fca1a3159a6dc04b30e3b5fbfff3c4be0996fb52484f44008d9505d2b734243444861a1ed472789d22b16d702fad94da93a9e0df01f6bf4c7dacb74"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_6(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "33d647e0b191f0c07220ae529aa84b0b4b6aac36aab1a6809d19b18167af6a17"),
		nonce:              decodeHexString(c, "39a71560d62cd3734d29f05e2bcbcda2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d44926120ed0f08ea2f33c2bcb0e54d6be25c62e55f04ba9be72224eb17ca315"),
		expected:           decodeHexString(c, "7960ee51d0c4d87752e32d3438cfdd48fd76f5857ae521705b1c485c4b1c7bd9f144a5e1991f8eefbdb8633dec4ea43c5327e5c9a736961b7be8d20313accf84cf869f515ba47b879cca9b2a4fe41b300537732f3a9ab8c674011c5f1da08db56b873e2a1b6dd4a9bbe6d36c17e006ee3ebbe5fdbc9a402825f1e6ca9d595525"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_7(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "55fb797a44a6fe1bedfda988fe76caed3729142c3a5ac7399270662eef583e0a"),
		nonce:              decodeHexString(c, "7fc0fd37812a6ea8c53735c8e906bfd4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8a4a61eb1fea0561c058d8ed2b435e181127b9c38b16829d46e2060d85130c4e"),
		expected:           decodeHexString(c, "889a95933a078cab3fbd9171da3746b789605a5345466c387b0b9f437777b19e37a1256239dfab38c1d18ced81868425973e25e8d3775d60fe46211c2c45d99f1f381a8bd6aa7809f767b343bd65629039b7e9ae6dc8a02a035c4aeb08cb6d54af1dd2b5d59ecbff9be9d6632a829af4bc12fecd2fb5379d748c89a98658abee"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_8(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "fdba0bac0fc660d5e76907f9f5618249afcaf5ee114830379ce02b46187856af"),
		nonce:              decodeHexString(c, "83525fe2d6edcb4174238d2015ead95d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6a9b2a65e0a88b8e0186608ea8cbbd0a015a3e481ebd106ce0ab3fd8973bc773"),
		expected:           decodeHexString(c, "ad2ae1de5dbeaeeb8be13882f5a3cf2726f7ce6f3d00289ded40e82e8a0557db49f31723c4dfb198680366fe698fb0ab877e957886f291ab4f6982395198f95fba9c17e471fec6f8f223845e18d2ba5f8e57967900e7d9c819e33cc259a0665b81cdc9e68f646f8f10202da22908236200a11356d3d77268a00b434d39d5494a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_9(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "fa41680f05ff9bd55ecb55adaf6eedcd7238f791e246b6608c4e32d9b7e676c8"),
		nonce:              decodeHexString(c, "ef608e368ab5f06e3a7c7628579ae236"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e3fc9a33149e6013f5c6735309fae85248a20b958508ab171afe1a71364b270d"),
		expected:           decodeHexString(c, "ed35e497523cd3c2488465b7ddc4640b884e2b9701707e7c23898f9d82006f2b5845260d3943712bc6ed7b734b6052eb88979f00ffd2399e04fd7bec0bb550036e4965dc4ff8937aad2bd5bf6ff1a86a178427b408cfb7232716ea1f2536defc9435d80a90d3a7e8171a7b26f1a85c9f93ca0cb6050d79efb62cf3e19861ace9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_10(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ed6d3846948c23ce34634699da5d329cb35956997f5e108a1b56e2d624b1842c"),
		nonce:              decodeHexString(c, "dad8106cebebe79f735af2607cec9023"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cdae82d67ba3a3af92e81dc453fc369b680d4ae88ded36d5d55a6f2ddc5aff74"),
		expected:           decodeHexString(c, "d1cc60302650f60a42664fff6b9eb6b6ecb7e9adc16621598ee1692cbe70ccc8b4ac0fb972cc1a7099b0017e65ff16e689ae14ab29add94887616558452afb5a541f651fb1551e795a13864f978cec1a48935e4cdcd3478d9b14ad232e8359fb48034fc948cf86cef569dce72cb273e9c9976626fa5ab5a846ac9e5a328cf34b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_11(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "e993aaa6aeba7550c14e22b1b7671a03a727708fe061f800ae0a8324592bfdf3"),
		nonce:              decodeHexString(c, "07948e98cb211b9d56a6e54a754f17f0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1ec08eafddca2f29a72ce2ded62360670508f30a58da688ec2414ed3b3cdac95"),
		expected:           decodeHexString(c, "8e5a98a6daf30666d8fbd740d96cbe3920427a089b4ae1cb26dcfc790f2d7eee18e26e60c2d4ee16139add6858d15ae6fb1b39d21cf8c93f2f9eb01c716abc5616541c7ded01f4d143a4d0e002d99462091d85f46bb2d29c1e41402a807478ca6110405cbc945c5e9415b92e7dde9837b1ea00e8e293d6adba9ccb76affced30"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_12(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "a4056be11297bc58a6a93bcfd6e14e1664a54943a0c66a700fb019e4f9c7e9da"),
		nonce:              decodeHexString(c, "5d3c277a30dacf7ad8c976c023a8176e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9b57cd8ecc0a8009f8daa6624ee15f6d8631e0fddb7a470d6b60ef0880c4f53b"),
		expected:           decodeHexString(c, "b624c24a175d0d8b071e28a8cda21e51ac9f3eeb156cacf12b770351e2e45735aee48eaf58752ab5967bd00de4dbaa35c9d04e264185414d0ddec54281e35c6fc96f645c0265e156a8c73627dfe908837a1a584bcdf534cf2382ede27277cb8e88d648bdf51bfd893e24f1c0a013d08c4acfca7ca1aaae41dec255a845351c78"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_13(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "4a609f79995e18a014c7ff98fd768a5f3a7238f4819d036a325977177788d4f6"),
		nonce:              decodeHexString(c, "93488c3d113753a69bae2f932c7e00ea"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6acb0fcf5ebf0c1ce474a51e37cacf589270f65157d4cb1ceb06812e93a020c5"),
		expected:           decodeHexString(c, "63ea85ce408b7748a78513fdc1df7072a2f69e96ae1e74ae81bb7a915666adf88705f745e8ce793eaac96fd22aefa6d15cb090027c5eacbd2519f1c004fa6e8d4d046ac64ed3b7efc64b02cdc1ebe873badaee220f76ce707909d35656067bbfd210ab3747c1da7994a639f1e8be054c0b4c6529a6f36e2a73a4a1b7d1f85408"),
	})
}

func (s *drbgSuite) TestHashAfterReseed36_SHA256_14(c *C) {
	s.testHashAfterReseed36_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b84e35de071f4dec9d8f9c2c7ecfe8bdf6036206c5ef8536e8db2ed823b113c6"),
		nonce:              decodeHexString(c, "27a97babb204a92403d65e45a307d162"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f9f98c4354dec080cc5667f759cd00ca31dd380130e4eeb93c74897800625328"),
		expected:           decodeHexString(c, "fc8bdc61fb9d86aba6422565bc0ffa67ee604dc30473601ce8397fc8bcb535aa095c03081dd12b53e20d7c2aa1237f73f831674250a24032b3b1e9d00e65e167bb29f6fc3e8ab5126c140382c7fad363a0dcf5faf8f014023cca0790c60c48a95e6321ec6c311b763d995bb6139f0b11727a730a4d23fa52937c36182c51a1be"),
	})
}

func (s *drbgSuite) testHashAfterReseed38_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_0(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "803fc7eafabe56158c73d966204cb3cdc735595000bcd056a0c022791514aa55"),
		nonce:              decodeHexString(c, "060a0f3900d5f4a288ae9760df85813d"),
		personalization:    decodeHexString(c, "9ac632293ef7d862d1f299654b9904175ec9879ac43a1028cce0c9439a31c379"),
		entropyInputReseed: decodeHexString(c, "0a2e7f9aa526e68b37c81c6b494975fe4c488a02c0930312623ac9b85147698d"),
		expected:           decodeHexString(c, "2ebdaf63a1b3d4310e01426105c34be99f5bfcf94f577d01dff73403198f51144e5aa79d5528cb2e4265bab42f591c1590b8bec0414cc8a209952e426ef88351bbe041172a7f1f7eb81e1823f6fa858906e6a89f857f2a7021c9b348bc0c9f1daa779e6b1afe2319fe3a6162d2fdc23883dc45db64400eb5a8d7a2376444a099"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_1(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "12460c950d9385c8b37a9f82c49d1eafc8ebf617dbff0f091f2f9940e52d6dd4"),
		nonce:              decodeHexString(c, "35eae10896e9eee913f393c757f109fc"),
		personalization:    decodeHexString(c, "5c8e05cd8311cbf986a5828a3616a1436df70b25652e47eababc5441743974c8"),
		entropyInputReseed: decodeHexString(c, "cc0174077d2c210c671cc93ea9febf3165ff63d5493f385828bb5f09fabd3676"),
		expected:           decodeHexString(c, "91a504055e6b652ffc22af49bfc08686771a9c67a07d97e5ae64daacc2cbb629db3ea7c793e1dec1cce74f7500270515e86a0ecd1f3b41af739fc7bb8ba0897e6d4335427e70af6ea9793d56bb35f7f1e05bed102359e1c2499efa731d6234206b1275d45bb659072a722e20d022ff6f59d6f092e0a558df047a11b4bea66834"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_2(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ff52088d6472d1791f3641c6d30b6e3f453017fbc895a051de085dc711fd75a8"),
		nonce:              decodeHexString(c, "1ba09cb3be54a9c2c7dd39896a3beec6"),
		personalization:    decodeHexString(c, "128adb63d9c02f1d56c2a32b516c794f99baa4abbdd7758d82bafb5df6139461"),
		entropyInputReseed: decodeHexString(c, "51003589f885bf5e7461a9bc6c9ceb52f46826d453189fc46ed08f370743e65a"),
		expected:           decodeHexString(c, "a24388db24678745434e5b41b76685d5bfe89e1200dd87ab92c1a1312b6485e96c4e57ffd9699ff3347b3e0e962b8407e987e5fec1f12e201fcf4ca9ac8aa091a87241ed3d27741ed89838350aac40276539ac481c16c9d69616ab43ae25916d19e51b8b98a226e8ca852e1e3819efb644ab8ee2cb31ff836fea206e9a09a26a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_3(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ea35aede92889fa3c711023e899738a2502860562973ee3c75ec33d9710a106b"),
		nonce:              decodeHexString(c, "2d42be53a54f298cf47383b27c8ffc89"),
		personalization:    decodeHexString(c, "fba36c00744ab922037fb900a200604acf68d361bd95e36f759bd11e576bdf29"),
		entropyInputReseed: decodeHexString(c, "41a830c067ee02cfdf74c8973cb433ccf0c128626c66c6040719e5c9e67b05e3"),
		expected:           decodeHexString(c, "00fe7791d0947a30bf1230bfb83557939feb381ce37067ab07a99f1630e24c5bd67128491e39b840332921ced88119f826573de57022e36369c7a11fc180c453f149fdc3972ee5754f8350d9330a9b455e1128e059fb649af280984786051bf158a5022652209e53a10af353f8b210e0884e8ff18b90f4e8ebcb12d9432d9a55"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_4(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "e92a31edd82c952e8a927e56a4c91ae2c3b48c5c16f34245791fe6db26377f4e"),
		nonce:              decodeHexString(c, "2cc03ba3f614d860d70bfb83b315d192"),
		personalization:    decodeHexString(c, "e749001e3d910d13576e65ab6f01f0d6802f9c0ec58c01a65f6c96984df872fd"),
		entropyInputReseed: decodeHexString(c, "a2330629b0b0053f13d17570bc941f747ef0d98c612e8d0c854297326754c17b"),
		expected:           decodeHexString(c, "41edb4dc68456acb1d2d1f802d58843bc9346e827c497848c758ca867ac144e723347a5334a8a0b817a7f38a5db10973b57855753acaf302e0cd1b161bd86ab7a2bf39d1279cb2255a47b4e24f49b5b798e3588b30e4e4799ed05d4bef20f1210edb5940ee49b90657a1a7c04d22875f44c2c086447079aebb5ae262d0c4e0ab"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_5(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "8bf2d53de988404d7d62a8535ed038e7e21a2b634841d65d4d55f9bd0a9f0847"),
		nonce:              decodeHexString(c, "d93a4637ffecfd0ea66d0a95cbd6e3f1"),
		personalization:    decodeHexString(c, "ea193e6fea5fd0d81ad66a4eaa20b327ce0884eb8906cefce14c2cd0701e6a9f"),
		entropyInputReseed: decodeHexString(c, "77cf6d2c3bc08a67453d3456312203ff6d4b4ccbd11f948d5a326cad75a2b84d"),
		expected:           decodeHexString(c, "8a8e4f2c23f420e018aba894944be09d717329b18b9a5f2b757f3807fe23da8329a37556562af0ccf1fda225e2241c9e290e46be1f9346cc15ce59289f0ea1989aa60d9972204af2a832533f56467bc28b515bcca20ec67938b6e9ef86efaadf506ca38f888b345f2c915d0020019c7580ab6df4fb058e09c29ddd8623b9aba6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_6(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "173bb659d72f18d689ad44092384e62470baa3f51a834e1d86491bb9b8e90619"),
		nonce:              decodeHexString(c, "2cedc51f0d9f4f61b593ff133a8aeed7"),
		personalization:    decodeHexString(c, "c35688b71247e6048abe72e64b023b085b070ae6c53b8dd82a9ed6262c38c363"),
		entropyInputReseed: decodeHexString(c, "a3a121994db6d3691da581c684757556ef76e60836474882497fa89a63c3c312"),
		expected:           decodeHexString(c, "316534a17c44e1ac221246a12f3b131b22cc03dfdf095b242bb456d795403e18f38ea746f0735220a39668521d20ac3497c82c2f3591be293369ea63d6a8b716b7ec1041d961d48477c40e353f79bfef961d97850507d7bfffeffeb26ab0c542a6d889a0050764dbc9d2d7a3e9d712228f2c8ed38dda52acd53d238e0210675a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_7(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5abb86af34b08520ab41d07c810819942ea59c5e73a579955834181788fcd03c"),
		nonce:              decodeHexString(c, "c066b4cf31eb9c6020aa17a5e1148fac"),
		personalization:    decodeHexString(c, "1a26290963ed0a3c511a256b0b5de7c2ac2de106ce849f795940aaa946a073a3"),
		entropyInputReseed: decodeHexString(c, "c75c311c7f595057d0fb3ab53509e2104ee2aa8afe271980d538378734a7dc4b"),
		expected:           decodeHexString(c, "2964d4542db17ce7afad482f4d84994c8b7e00813092d578fe8541c46ef5ac19d2645370f48f983e52a1525f330a9a7d78fc56c4169863b180e74b4e6dcde31d19dc4b5a2f2b5af0455c899291c0ccba8cbeb0d0b13358261349098d154e015a4dde2703b521e6c5ad3bf484d2de3fa2fd6faf059bd94ab6dec90cd2ce5b5eba"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_8(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ea0f9e0fb843b629acd1524084244a2f3eb6665f2d3a3a03106437963919d24f"),
		nonce:              decodeHexString(c, "7a8bb287860d772b23073b501fc78cce"),
		personalization:    decodeHexString(c, "aa42602b8d15ccf5173b2e0a625d98901478e5d7ca251331a13f45b97d2bea8e"),
		entropyInputReseed: decodeHexString(c, "202cbc8116d3455084f6cd216a7171285ee89e3db0fc0bd2e2d1dd69e3c5d08a"),
		expected:           decodeHexString(c, "95d32d209ccbeb7897e6240e9f0eee52230a1990085fa148db04fe1736841393252d08344568c91f27f3f50c9aae04104b05448d8fdf46068c30943db96546eebe78fabf34496a00de2166b8dfb163456b597ee08b12f303d216895cae627eaf00d37d205a9956da93b071b2a0384e8e2941e8a75cd2a26e7e0b9634b784a7a2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_9(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5ee8ce2aee2627e865f4e8f2e943bdd8e57388aa8cafc860ac5b4aa37a5a9db6"),
		nonce:              decodeHexString(c, "1424e610d8e8078f721940dba363627c"),
		personalization:    decodeHexString(c, "58303f56ea4a614ae3b51874a7e0dbd772848715085de6dddc3dbb55afb50bca"),
		entropyInputReseed: decodeHexString(c, "d8880643e9a1a57672b0ef5cee76c34d8664d29f9e0edbdf995b0d856d3d2430"),
		expected:           decodeHexString(c, "bd3d0ce728c3f762986cea941089e7f485e1d5becd5bcfdfb7449677586b9ab41651cd15a135f69141d156e8056a973310b510f516e6fd29ee9e0b3c63f6d7bece4b435e7ec9e294790737c2f3afe469e6d8423e09f2a5550713fedf9fe74e7316963c2387281828b289a7e3416a82faf741ef749011240861686e6e92d9102e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_10(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "c0e632dd2d50b11fcb2bb6ad2e88a88530730c4aa2afb7f2f3fe231829360ef0"),
		nonce:              decodeHexString(c, "ea6c50d022cdd7c1cc928fa3af13a910"),
		personalization:    decodeHexString(c, "8f9276e10df4215c0df5c52be0c47500d6799b6152a7f965b9166916626912ec"),
		entropyInputReseed: decodeHexString(c, "01e6ee1646facc2fe6da6618b42e29c1850b40c0900d940d69ad3f9e2a142118"),
		expected:           decodeHexString(c, "532f85324a90884fd76b22aca71e2196a507c48a1b69c75fe43204bca2abd27b9303ea273e06866590e04e30c0388858e753d7a0617ef13d39937a89bceefa1f93c090a95821dc905ed8aebce71a984275a92b7ad20d5c7d7848479e67b508c4be8e36fbc804951d69a4a324a1db0d0f08caedcad7525c07765064b242626860"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_11(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d6d5f9fb504eff45fa5af4431051b4e4e94720a43ace680951db5eb9f2a02c01"),
		nonce:              decodeHexString(c, "e07db4baec9bc979921e35f35429b629"),
		personalization:    decodeHexString(c, "0c91279bb5c63f0810f71b535db9f5f52b57ea9053fbc097e738571c5a8dbc4e"),
		entropyInputReseed: decodeHexString(c, "9ba2986819ccc3c510dca6498bf6613de1187666f9582dd174b8b1d64ded0a1e"),
		expected:           decodeHexString(c, "45b13893cbe4549bb83cca22d3113bc58fff4f7e302e937a8ed5bbe6e7e7aae97dcc8d660461ad75a884be79ef2d3a0df1a4fc11d76e7955aaa616c900ad11b498f91f2ebed69e405e4b6fa3c48a0a83ab2cea5f0449b3238df5b2e10aae496a74e5ee71d2a2f7309b8d5491bf2b29ae03404c3fe75fe2f5e249b05e921a5093"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_12(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "378f0fbc16669599925091c1dda19c197a5005f0b3db07129369aadc4cde9585"),
		nonce:              decodeHexString(c, "8ed8e0a9711d4808cfb758262ece9dd3"),
		personalization:    decodeHexString(c, "37002959ed2fa7370a1beab5308e90a37c2e76640bd6e776b57015c656eeb84a"),
		entropyInputReseed: decodeHexString(c, "dc8f4b2ab7f46b6e75cf085f9a6842259d608f3ddb60f09abf873d37aa3e3c4e"),
		expected:           decodeHexString(c, "b510fb1e5c94aadfc76f94219f6f6750521d819749e14e21385745be7726ffd25c7140c5ed2f0f7a201b5e2e39b6b5d5c375accbf8f569a475a3460337c6bd00c529f702bc5cae2a057f43d1f5622c66b837537143f835e26b9b68e8f09c4882eafbcdab56bcdd9f63b2cc62e1025f5746dad2d09408f28ea52b129fcf8d01ea"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_13(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "dcd9547a1a40e08dd1350b602cc28a55a12da14aa6339f81b768f5441da6850d"),
		nonce:              decodeHexString(c, "c19afd043b1972be1c34db1fde9cf2ec"),
		personalization:    decodeHexString(c, "b30ffd1d5752927b916ac4e25972e799e6255f3317a539ba24b6ba27c6fbc41e"),
		entropyInputReseed: decodeHexString(c, "40589bb316fa7e9bcd4c5a585aef3ce8086275e8089a4d8383edb984e8d9a9cf"),
		expected:           decodeHexString(c, "1b644b3d36511c3e2339a11158dab5e3b3b60b3c9bdea6471e3599605c93d5e2c40803ef75c80f90bdf04201e132f92599181b28a2880897f3901b5938c158da0f10a5df61c22d2a0b03bbbcec49018c059078cabe5d92da9a7d0d2d66147211870170d492c013914ec02c423a57039c4a1399ad59dcb50299e81e1b9aa9b8e1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed38_SHA256_14(c *C) {
	s.testHashAfterReseed38_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "72a5af6e8390bece748514d4deb0f0faf29f39f943dacb9c3c7c514692c9b526"),
		nonce:              decodeHexString(c, "a99b14d092d229af65054a511096b78c"),
		personalization:    decodeHexString(c, "343aef89d09a208c32db3bf7691192c7fb510ab85d308490fe0bd2bf1355f2cc"),
		entropyInputReseed: decodeHexString(c, "403ef914057620b24362c9e8f44672a2f345ad44db353b267eadf34460b2ba76"),
		expected:           decodeHexString(c, "a8455ab8576b4ca4167a8f675e0868a27515daa7adaaf7e9feb5f03fcae864f7c55e191bc18c702cb65ca8086fb32afaa6f6901dd4ab953ade8817a9a7ce861ee644f0124231e13f49b2649e834c23fa0f13c83acd9de89c562664920b6afb945ab6471f70fb4a502efc7fea19b446e15f5a28c0794f7689cb315032736785ef"),
	})
}

func (s *drbgSuite) testHashAfterReseed40_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_0(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "55f8e9e659f8570606a22404e520546435439272187a8a4f89a4fc5e24d34db5"),
		nonce:              decodeHexString(c, "f3834594c1251b36dd02fc5929236d7b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "286e19ee192b8c39788b218ded60e68151749369fe5fadf494d5972d8979a0d9"),
		expected:           decodeHexString(c, "cc2a08be3e98f5603309622e764544e78de59c4be74cdc55ff31e4c7f87332f7b90dd950ca27e200f112cb4ef4d4e2bbfe6165e7e7f3f34da62c81002b5f9ec4b09d3c2cf5f0674091ce70a6b50283c3109fc26ea0c001d787d42777719e37feaf8b3f2600a75dd944caf1dd09b5664c8cc73b23489e68f862539d71d871a8d8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_1(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b0c064afe88ed86bdb310777b98410e5af389fbf00ac554abe4b567ebd18a227"),
		nonce:              decodeHexString(c, "7106f2a36640ccfac71e7cf1042fed2f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9fdf5ccf8e8f0d6f1e818f181c1dde55586ebfa7d970e5c734aa6b2a845240e4"),
		expected:           decodeHexString(c, "ecd1bc17266fbe2a55518ba0ddb006e0b1c7e6b8276295f2d0c81fcbc7d4ae42ea59bbde0dcee9458b4f8bfadd3f170eac2553ebff8dda92d3974edaf97164a57e72ca3304c001d56ee5e07a55391cd2bf184d54db42848a37da261aec541c2d7146c980cc3dd38bbaf43b09bf3c02041dd8c76adc1438d4f379101d8deabced"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_2(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b7fa2264ae7a375afaae68af6a6d25b772c70f266123623ec65b84b91708ac4c"),
		nonce:              decodeHexString(c, "92e357d901d89b3ad35b6a218e1bd2bc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5d658330262c2ca399389c21c461aae4b75eae5e6e083177a63f3256f8ed1516"),
		expected:           decodeHexString(c, "02dcb2091f03eb35fc54c37864e70ddf10405a4d73edd220ccaf9061b9f31e87e85b0a3ba1bae84e3bf5ed8d8b6948a362d2e6cc76dacad952943d64813769305e30389e6cb420c8cb482d9258a5edff4d7e80d9f9b7b0d0123a31c3be7b863fb79e8e4df5d55a7063270b61e9a9d106c71e5d9f41017b5ee4483387a6d33ddc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_3(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "15163dcd9ac72154f7124d3aeb4dbcbc236938dbc541674e9b506c85bfbc6d03"),
		nonce:              decodeHexString(c, "19cc38bbad5672d29f03392e028e3bb1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d7e8588e42992e580f54d012be117d75d4b114e51e8f2f96557d429bc52095e1"),
		expected:           decodeHexString(c, "bcca7c876655ff1e159ec7931dc6f21e9cc61839dab75b5f91ef606c29b99a7c30fcf693f7886f28b953f7aefd2d17644e50631a809841869664ae6128cad5eea3659c3b97942d290f2525aeed4b2ad1958fa6ffbf0aee49a4245e4efd51bebf843b4dfc076fe3ba3db4ad48e091d2cd43d173879dd6d01e329cc5a7031728ec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_4(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "3176da18327fc42dca68ff3deedc2846a8925523698cb87c86d8fe6b94b78807"),
		nonce:              decodeHexString(c, "226a7ea014b092a00ee51cf6789cdaa6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b79ee0d4016ab5a1fc3130d0943a1d7bc8950d22ef98dbb30fe2824e78e1c855"),
		expected:           decodeHexString(c, "690890ad2e91ffc67df44bab33e9c3443411580fe1de3b6ddc7cb42ca05a931fa356c889073aabb3f091e910095ba0ff0a72fdd8dad1b557905783d46b5fc1a60476ec3078c64963f51353556370ddf3496acc13cb2c9c489289371476dbcfad4a948770b48e97abcb5a7cc537cac0a7f8056fe95e1e3ff3375e82d079b495e2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_5(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "1a29ef3b1822b6329af233fc2b78d879b000602a5e2ac08f124ae664d0d36322"),
		nonce:              decodeHexString(c, "bc0165c7b800ee3174122d73409baa8b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7bd6404383f2c690246383b82eefc0edb937f04dbcbaa489cffda5f168710b2f"),
		expected:           decodeHexString(c, "1d91ba51f2b745094f784a6c6cf317c3e5006b31fab49a54d6618fd62041f7dbc2f0083839e197d305e817bd80820275418e8b7df9d929ea48d60de332c1cb7b4bd361e9053b29a995eabc42f01a55c764d82ad88af4eb3f24e34ecaa9c8a49a6bb3f93a0fa5f595320a17638e287fc40e4c87293036bd0d38ab1c0574771b99"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_6(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "701424ea03ccfef83255e1f4893f67d3df604ae6b0b58269420ba63a292c6b63"),
		nonce:              decodeHexString(c, "742d0cab6195c0da7246f3817bd12de8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6fb174625138cfa4768acf7e610175fcbd9abeaa99400f9f417539794922842f"),
		expected:           decodeHexString(c, "6dfc046689958930118a069d1d4a836877667dba833deede8046114dbb5ca16cb34fe841a5992d3d35d663d6326a972b10bc8682bcd95e8d1f803756a1189df8512f4a6272be6afd31256160ba83ead766c2e38810419e351e5c634d68ec0cfaba217e629b008c9b22fce7d598a74b1ed97eca85cef93422e35ad44e3e942a78"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_7(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d48e66efe115f39b06b649bda8f5bc0f6aa32e2a3ce9fe42edceb237ee382284"),
		nonce:              decodeHexString(c, "f85fbb0a5e5294ca9cc1450712fd5f31"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "09cfb70004427f5cb0aba01eb9834eb9c9e3f4ac1964e68d029dabe352a9fc91"),
		expected:           decodeHexString(c, "da5584af445626e298e822e8be9c7e990f86b14b62c5854a1220f115450e412a05a354ee9488c774147f333797f32e88d7473fe9017289b00a8d6b9557e29c1d176b374bb7f84bc878e708819622fc177498fecd0116308e7479b88c25d80995411834bcf1133a455e4c937d47da1090b3137b556c07273851a7fbb8a028d9a3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_8(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "046f6c6c527e50e4429ebc431c2e8efcc76895af2b27ec372090a9cf2074338d"),
		nonce:              decodeHexString(c, "707aab08c0f7ff0ae84e823d4450f6fe"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "16b4a829ebd20c7aeb53b918ba7061554bba926e300a7d124988ef13a5ec3e82"),
		expected:           decodeHexString(c, "2ecdbff5cf0fbe2b4265154de701f331a5dba59d7a6946131021159cedf3b86f8bab98a1977dc4c3cafc064cd6f823bbb8bce2c75ffcef56a571c9d66bb2c1be3229fcda4d42a8ca4677427d3a84ad2fe70b96b990606db364a7faf5b58dab837d0b7280312fd2443560d1a03325b5204b11dd6c8b2ac82536546182eaf697d6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_9(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6a94808824a33ee1c57918af7e605092b9f60021b0fd1ea6f21f98936e639daa"),
		nonce:              decodeHexString(c, "86b1b04f417359b64afd8dab7f4b3460"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "90e756b94f2096f495d69de62333c1b6627aa727cb6aa082e0c049e213412003"),
		expected:           decodeHexString(c, "709e32e79e35d4390c5447da27f475e32e9de42b43b493583ac4bf78b00ec19086126a5875de25ca1d148ba58be45ef4886f7e3b071722d2e8cf296bf436d5de0bd8115199c6a0e92488d91b96082afa40998865a17085112c09f58aa1d2c495009560512d237b46d686a18ef14d6a4d6f5c562fd6c3e7da627694bda69dbf7b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_10(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "8e6c9dea6be300cbf771c6c97581599083e50852bea5639384d2edccc939b5fa"),
		nonce:              decodeHexString(c, "8daec979f91f11205152d66231e48b25"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4fa5541122ec689bb7b10c18111124160eb8540d39cb5bd47c45a2b653381436"),
		expected:           decodeHexString(c, "312ad3c7972040633255660db79950a87cfdb5ab803142cb6332de5dae9d7ea85d96137411848f8a2ed0ef764d4028a9e315a536dd0b6ea516e5729b1e91ebae7284d247f7cbd1a8efdd1d9031b8471917ec5b31ee1b3532c72d132869067524ee30fcada919f7b2430f68d5ec56ae2496e04bcfff99142fac337c8238ef899a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_11(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "37eb159e6444a5451c9e444938994af56830937957d761376c24087a11720ce1"),
		nonce:              decodeHexString(c, "2b46c95eb9622015e6c19b25351476df"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "45b517412d87817d8f31e66db28a7fc50fa0428cc2fdf60d221f0e72de974215"),
		expected:           decodeHexString(c, "c665319561afb904a3f34f1668f5393818d76a8ee61e3ceaf984d5a8364ddd45e80abde815f555468e009ac691b2015e2c3d4f14de2390a996a339e3a0a2798e34226796ad0e967700ad65193e914e15f6c21605161e7e9d45de4001c394263e52574ba3284c0660855f0ecde1bc6bdbf83ca930b4b62ee347ca5903cdb9b97e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_12(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "aaa659ff918e1868a8ef03e40d13d88ebb1d482fe155a830aa8e8cb5c55e7214"),
		nonce:              decodeHexString(c, "98b64510942e299f935e803c1cbee4a5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2823c143f33e9cbb47a8529b6165ee683f18e52094cf74706b8c1be07bd7c318"),
		expected:           decodeHexString(c, "a2368069f440f45385d4dd1b309dba5a0b6d6cec363aab9f08ae0a205b03cb6dc83f082099c576fe50b1b23749c04eaf1ab0122f43ff025e6c7748f23d8eea0488509400f45c12976ea2d452451640ac00d3c158c62ae9b9eb35f994b14f0997841de5a265bf522823c3429214135825d8c956e96c2cac2025d6f64c799b01df"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_13(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "e4b473f001c9d5dd28040e9deb8c3d3cc54607f8eb0e55db51ebc32fbe06cba5"),
		nonce:              decodeHexString(c, "fda15d14c96dad84ce4b92e2860e7686"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "474299492cae38fac3bfc58110c873d7b5363c7044c80eb545b95d9d1f11fbd5"),
		expected:           decodeHexString(c, "443f740bff85363d81c026ec0fd22dceeaa092490b65527da7f519c0d600a983039359ca27fa2ce30592c632ab0fc1f1cd736f665db8f6f2c23b196bf28c9a6bd2ae37d921aa97bb1971c8293a9d2eb9d82e583890d450521c48d3f63c3aa92fd5486ddac2b881c496dce784d0a33ad247fdb25e484ddd68d2eb45fb3786689e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed40_SHA256_14(c *C) {
	s.testHashAfterReseed40_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "49b6aeb0db302ee8127d192659c9d7e0298b3aff6a0d1ecb6cce8fa2368170ba"),
		nonce:              decodeHexString(c, "98b32c10ff894722c5c63a664ac7b982"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e856e4f2091f9a096e455499e043017a968217f220d239955483c83beeb48a8c"),
		expected:           decodeHexString(c, "86fbe0abe9fa81adfb72be061c7053a1046e71951b26fa13e7046b8d4d5d698a651ded01658fe1e84746efd98d98ea554813e1f5391bbad9f5b3fb11a27c6a945687f55022448bdd72f63ff9347ae991ee259f18ffd5c3c79d2bb1c976482819b5dff02fb17643b40a9a0895cb4fe531112f6bd32e68ecc279be451b5f440ef8"),
	})
}

func (s *drbgSuite) testHashAfterReseed42_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_0(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d176db726c97241c595f23c671432a634140f3b6230eb72b5c73393da11ba066"),
		nonce:              decodeHexString(c, "a446dfb8effae0ad42d2e15f18a1730a"),
		personalization:    decodeHexString(c, "b822d8233c31c8dc19d0928ed013fc88455e907bd64c85e8bb2c0dc0a4a4599f"),
		entropyInputReseed: decodeHexString(c, "0f0e9272c0c048b18053fbf5ac02885c45167df203f6c341e00fd1268aff4d47"),
		expected:           decodeHexString(c, "2a31c2496b890e1d71805270ad70dcddc9b47f07f009adbdcbc13744618265551a43858b23613f9e35d432aabf03ad40fcf82d161d0a9f768cd7c6d7c3ec761a7fc26b6a4e5199ac61b9731f2241299a34b25b3daef9a4ed2ad924431860cb29fc4cde4b40970b65d364bec8cc9f66cc27d1abc6619f238b9db399762f4deafb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_1(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f3bc07d82860873b2af2af12302d36c160b3d974b595aa1b19025be60761953a"),
		nonce:              decodeHexString(c, "76127b99d224b59bf642a3beb729571c"),
		personalization:    decodeHexString(c, "53d8ddc6bafc69eed4dd16448d5a0f895d20768446c7186bee6e358ebe283f1c"),
		entropyInputReseed: decodeHexString(c, "5f826a6e90c7ff6b0037d785664e4a1b370910af2190af90f23325326f29cdbc"),
		expected:           decodeHexString(c, "d4dc1874b4453f9ab503faa91c052350d021b7ca01be23c14e548dac39e06ac480d834d753ea140793681d67c02a9ce6707772a3eb0065ad65a3353e1ed377a502bf3c36991860fefd0bebd183f6025128f2244ff1efafceceacf34d45a1d0595edb6dd2ca4df8871b1768160521408625cf95dde22e14bcc64169cb8e34ac70"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_2(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "02aa754f66ace4d895b7dc743c02e2d22cd6cf07ec2a71671d825fe179b8b432"),
		nonce:              decodeHexString(c, "07464d3985a4a9bbea4d4e27e62664a8"),
		personalization:    decodeHexString(c, "6074f8c32edc390266e1793aef32b63ba05eeda5e52f5217a558af884c61d658"),
		entropyInputReseed: decodeHexString(c, "866ee621493e03932db4f4f29cb14fcbd749b7e7d80153deb787378b79a4dffa"),
		expected:           decodeHexString(c, "7943dce1dd028052df335be48ea0ba54458f4c0e8db57a80d8ee39842bb2e24b7aa78e1b8095a72042e586498d87ba13c924d302901e3574f26144d774d7e1e2225d7880bedf4955d203ffff02c8036e21d650f3716ff392b8c2ef3b6c2631ae0cbcd68172ecde93282b1a1a27dbf05ecd5743ec24d44b110f7ebeb514b0a535"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_3(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "aec82330e35a2e52ea5835dc96edfedf7de2fc614c1334938cabca2f0ac085e0"),
		nonce:              decodeHexString(c, "5101fc43799bc1980a5390058c038d66"),
		personalization:    decodeHexString(c, "2edd21f0c3359fcb2f43f4b6fbd82106ab28e98293523cb5e688c57cc302bcdb"),
		entropyInputReseed: decodeHexString(c, "236a0c71b3268e702107bf454b06336f9f18e0cb3e89ae5eb324729131a9b03d"),
		expected:           decodeHexString(c, "aa49be101140ab260eda0a46de641154bba44a2592ae1124b0c735b1cd630fed831b656335bc11098f2f56d3c1a143dfcf4f020c07fa68c21bbd4a5d0078ebf42b7d42959248989ccd99ab69524210ada69f85c06ee8b7a67336a0d7f8b64e59073212f5cbaed627450f12e4ab8dc58d5d624dd87dda63e9fa19f6855172e8d9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_4(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "3637734e553063dfe6d309dfe778c552a318ab0bf61d0e738161e9dbd5fd3d78"),
		nonce:              decodeHexString(c, "32c623d66c0b70b2d7a688c3097290bd"),
		personalization:    decodeHexString(c, "eb2a9afeb16bebb77833614946c0e5dd2f6fdaa949009619ccf46164e91dd1fa"),
		entropyInputReseed: decodeHexString(c, "9cd9c944e3047be9d5c62983584c7dffd02a55bcd16e9d2b349424342db91674"),
		expected:           decodeHexString(c, "5e1726bdf2900b40cd65746b80fe391b9c6e6c2392319aa1c1c4ff9d85513c61c28e54f37c4463698d08a2a66c078062be5300e339948dadbb575ad7d385974ad4fe7e7ddb1b8fac384284432671b4ed72f1a6de9bdcf485606b25d9dfeb96846377b3cecd88eaf871923e94502a9f803afe99463970ef812c2332498f060d62"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_5(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "05c18f3068fd825a0c4a9ad646c4b0f8830c0b1050d52708fe5ed8411f75911c"),
		nonce:              decodeHexString(c, "c14087aae80adc115b52a9add4578cdc"),
		personalization:    decodeHexString(c, "4b8ed94e6b381a8484c3e4312eb3032c9ef2520c296169df57018d9edccf91d0"),
		entropyInputReseed: decodeHexString(c, "539162353b72bb490a90dccf208a615e76579aa4180037461843274c9c896081"),
		expected:           decodeHexString(c, "fdd7f81c0e5e8d9cc6f3fce2a0e5a4f92294b2b59dbfa50d894421b24ec9605f5aeb974230dbfed8ff16ac2493769b2ce2da5ade87b59d4fdb7579fc356a2790ced73f1de444d5f373784aea6cc9b74b7d639cbce0011013ae186925458865b91b679ef918d08660e5cb811f7f2673a2b6243d3f0b328d6d694c37b4b764facc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_6(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "7d7d3e2c3476bb2d8a212a7156957fb39290474f141da9acffa6f3d90ad743e7"),
		nonce:              decodeHexString(c, "32ec82586cf1334d9f5ec764e1160e7e"),
		personalization:    decodeHexString(c, "72f28afadd87569e59e67f6622583bfb70758f73ab61abb0bdd45faf2f2c7af7"),
		entropyInputReseed: decodeHexString(c, "924def90b5d23a77329813c8d480c2fa441578fc983fb53dcde084e86cc57c3a"),
		expected:           decodeHexString(c, "028c5f267abb8200ab49b2d9f36f33d050bc3f74cc51750b893f1fff253d943bc7b001a18794d1473e4e642f891c28d783586e8a73def44c991d8c80482e1a393b7669069d545180abe79520cc0eb6c90fc36d48df3d6382b6c68fa2fdd734da01e445c9e2751de38b53dcd38f9e2f83c8b94d3ebd52e526b6ff39633131cf85"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_7(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "867321f9161fdb547a8b47cb03c01eabda30f6bc18a641e5cb19f49884824613"),
		nonce:              decodeHexString(c, "af8c724a91277b518f99426d56927272"),
		personalization:    decodeHexString(c, "d72c53cc1ab51bf8765afe77fa22b2cdc37ab1ce4b7d808e56cbf5f488f2ec67"),
		entropyInputReseed: decodeHexString(c, "90ab02a2b73c134bd9a98ae5b2bfa02271185e77a632a167868f19b2d543d535"),
		expected:           decodeHexString(c, "5fd80075f7dfe3033c96121b349b8f229ff141776323f903ed97736166c7256c10c3da2a68b04a23c195ed8ecf6be350a6a390308a0fc881126a87934a87a2fb0bf3c76a80d683457504d26514572a35f263d53414dbfdb8d4d1189d63080df6d530d03040aeb48d1682bd96da841fecd55359ee911704715d598c5cfe5bcea7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_8(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "64b1e454243b242eda6c74b0fb955370d891f08b2a5b777dc4f3375ac59a2044"),
		nonce:              decodeHexString(c, "a4727232f6270cbf9ced91043f8c06ad"),
		personalization:    decodeHexString(c, "d9684c41f99076961acfbd9dbe30a9f49bace6ab511d7ef0433a1a5f15439f8e"),
		entropyInputReseed: decodeHexString(c, "c718e80ab722bf1d78ba0a1f95126d5a6c35b7eb0a2a84ed6e23b8e03e33c7df"),
		expected:           decodeHexString(c, "9a718c716448709b7a8e1ff6d5a690fbb9295d3855454109fa7619c8716591512ae5900c807ce53ab6d40383675e7ca5c67acd9674c8428a43288a6df4f44e145a13ddd48a61fd726c2e9dd6c41914b0aaf4630b76768162ace444f369c81fc6bde6d485be9c34c4013f06682b9aeadba69001f81775089e93e1bb90531b8673"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_9(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "3cc9e3fc24e8fdf85f63310b30a2662181b2d72191b68e060a3feb9c3e632313"),
		nonce:              decodeHexString(c, "e043401bcd90565f7cb7ad86a25e3696"),
		personalization:    decodeHexString(c, "cc98fcb52ec7bfb720935ac6a82ba73981212b001a0c1dd382a39abf1363e7c2"),
		entropyInputReseed: decodeHexString(c, "03d22cd2d99f07445e7556d58ad32bb01e447d93c4f31a5ecb7b1d3ce9faa952"),
		expected:           decodeHexString(c, "f754b05e133c867240e5611f4315e4f167e4aadb177632357820427161682905fae9cf55442f017598d529180be26dda7a51c37b96d561b1cb7dc33e3b6089b5397c5336b813e946c285d34c1be61294a83efef155b218237b7eb15d05262f13c1016213d99e577acc1db6b6a0c6743a0a7914b971090d89ca437cf4533668ec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_10(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "8f31359dcc6a496f2e701cd927ec513477326917d37014690dcd2c25228e42db"),
		nonce:              decodeHexString(c, "4dcb2ecdf2a738d91918990a4e342abe"),
		personalization:    decodeHexString(c, "68617fbf87200acadd713fbf04c57bf8878f83cbd0b0ca00fcc9b9dadeb97621"),
		entropyInputReseed: decodeHexString(c, "bf87c32157a8154a5ce6795a3d270700bdc41f90ed8dcf0a801d2d43620f0410"),
		expected:           decodeHexString(c, "c191f9ef1b475a0c1e25ad59553391d9a3f8e6f757492adf5d3e39e602c20e795be990d71df16f9a9cde5f5d88e9b62979036b6039ba1d4495e3c3b5d2a49962373bba2d3415254a2ca39bca23aa2eb1b6fc9d3276c683c80639365a8f461e881ba544fdd05c8ffb14df48398f12a0197d1b8a428692d08c0ca77384f8778893"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_11(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "20f08354d63fa46fc6c8f0a4327c6ede286c8e46ea94489559a7d44c2bda6c72"),
		nonce:              decodeHexString(c, "84bf091dd0f5a8a96d7d333282dbcb08"),
		personalization:    decodeHexString(c, "2a601e2926bd66a6f09ea7def48f9ec66466ccdeb1d83630731692be2deb2566"),
		entropyInputReseed: decodeHexString(c, "842a9eca79dc4bbe8a95c5f5a7328d0862e23504906b415fea6907c57be30a1b"),
		expected:           decodeHexString(c, "55499e627c91c47d2e322eca5e68ba75006587becd2cc99fd8b65673518848c8f6960afb12134d0d25fd14979ee0890100bb7cb8f40c26f8480b810386be4085accd6dc6f5113d51bc9fa1f8d9da8742a4d92eb1d03388bfe5961099c7e7a6d710f97b3a19f8762439228a12438a1fc450fab74a316f0fef3f4d60fa0d5e0d34"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_12(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "feac5b160919b9b370240ec64940057bf2d4a377e41f1c83757d0ee68335d045"),
		nonce:              decodeHexString(c, "a1578aac939b40cbc9f26bb0f3fc34cd"),
		personalization:    decodeHexString(c, "340e3816e70af3096764c67181b0b44e508ee678ad01b75f106eda343ff6316e"),
		entropyInputReseed: decodeHexString(c, "dd0803d562ac7a0183f1e89a1074f827829d328fb245c2c7292f8c07d92cd25d"),
		expected:           decodeHexString(c, "823c6aaadaaa657b71e49cd45d51f9b544d1112a84261d374525cf94f717ff2b500809ba1fb0a4e99a9668352e293079b0ea2ef029bd65de15deacdb19ebd447b43fc92aaeb49d12e87966edc3bfc1bc11160b24d94568357c89f49871c5abe08e472b09f5bcbba8d0f33e9cba75f76d63010d42df7d4a284d378ddea59656af"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_13(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "fda666214f6a340150552a647f15990cb6908ca763ec5286c8c8000117fd15aa"),
		nonce:              decodeHexString(c, "ae4cd0ff70130e972c9ea5c4a1d2636b"),
		personalization:    decodeHexString(c, "13767d11a39f6ecc192a079ddfe4fde5b88268cbd62ba33049265bc03d1073ec"),
		entropyInputReseed: decodeHexString(c, "f2c663c25e0a30c6519d1dce960934cb50ee0100075c7b3fd8764557c97fb9f4"),
		expected:           decodeHexString(c, "983c3460b9e4d1cf4e5da7f7ca0f52b5f45c332e2e46b2b4b226cff0724442ed85dfd12cd4ee307a18b3f69fc30c3d8f0df1a0015dc6e77325eeadfcb3b86425e81cef127e99da88bc6ea1f01ab2919c9dffdfba0b12e97a80f77f18ca2a020689e68d5dcb1a95c55af2553d0387912ea7da936552a14c1cb4bb749041d39198"),
	})
}

func (s *drbgSuite) TestHashAfterReseed42_SHA256_14(c *C) {
	s.testHashAfterReseed42_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "e2b18cfef8e9d99166e3059e02fd4a6665d2cea66a643337ac5d64d3942794d5"),
		nonce:              decodeHexString(c, "a15cecb330bbb1e43997c84653978793"),
		personalization:    decodeHexString(c, "a38d744d1863a32810123bb2c03b654fc2a85c0338bbb240ce2133f71b0ad6da"),
		entropyInputReseed: decodeHexString(c, "8f572caa4474e584fbfe6c5b657a2b7575b19c39245fb12a0f4840d6646b7dd8"),
		expected:           decodeHexString(c, "fb081804a1dd90d918a4726c93a56ab0c9739d74921806c05c72acf240cf76bd8228a1ec4f60613be60630335a7964b3fc06a552e103c02ec666f0ad92de6064dcd0e92baa4101ccdef50ac1d70e0bdd4d8c53b0392398f9f48942d57ef9f9192a8eaf608dea08940494177fe7c0ebe00f605cd04ffd23b856a1e5c8477f7267"),
	})
}

func (s *drbgSuite) testHashAfterReseed44_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_0(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "1ff2e1224ecc0209b6d10c6f2e37ae1aa50277877969d1a9297a9c0c4be7bd97"),
		nonce:              decodeHexString(c, "b2ad995861210b4a2bf17b8d1aa7d45a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "904cb3b7c3a9a47a178905fec0a947c56d8bde27dcd13dd20c8c265a9a23cdd5"),
		expected:           decodeHexString(c, "c86c0f7a98a82dfdc7393ca2489b2aa500bc252d317e1609999e327b3af2edf1dc08ae70c816603f66e69102df00d104b6cdbbada6807094431d092fa4fb39cdd39906e35cf3c55f9c5614c6f04deb8337e6d32d5d146faa76fdc0f235dfcc6dc71768e10d5b1656984938212ccd7a874877b6283894e8d8c62398ee45b65fad"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_1(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "a546812a0615295d117d1196ae893048ac6a89ac184c19e4232b5071dc95abef"),
		nonce:              decodeHexString(c, "7faa20dc700024eeb8433bee1f07a760"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c9eca3d43fb3a3dd69b4e2be87e63919ae815d9458366d7c16c1794e2f89a6d5"),
		expected:           decodeHexString(c, "66bc375d9ba8ff44585a87d356ca6e174381feeef7e74fcad8ba449222f4c2c5d9456fd280fef3b8797103c15c38c801e96ea50f8a5b339abe3ecb646478c1b08b875d8447a497eceacc55adb5caff32d01e3e19047fd16d2c1ab6f7b7124f0a24b75e3700292affa4149954cae934b91eb7038df811fd29f9513a15ed80dcc4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_2(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b46f9e405478ef1b3f5aa9721865dd0d5941c3354cbc22aae331a97a6abc36ff"),
		nonce:              decodeHexString(c, "6c5972f140e6ed1b5439f4c6889365f6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d20393a7e9af4594b08f7c3b373c29699d30ed666510f2a7d83adc02d4215a15"),
		expected:           decodeHexString(c, "483b37e0d132120586977db64bdcd9b8569dcc95111679f7c51cc015cc62266ad2d34db5f6542acc01a6bbfe6b919956fa04eed0ffc781023d14522c00a480560228b22b33974395e6a71a5a01a18b1db9c391a486ef8a8a4777078132ffcc5d6772764210b363aa5e0131f39b30cb26d44f5b0d6d158403573b22b46275470d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_3(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ef7110f7de9e38b51e2f40330ef62444c6c355763c8aa807e7c9c4b262231ed4"),
		nonce:              decodeHexString(c, "87dab385f835ddcd2b8441c2b4eae419"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1192e75d98cc596a860c6c20092c035db5fa1cc132ab324de2d55a33cf2aa25e"),
		expected:           decodeHexString(c, "360c9bf276ae2a6b546a01708618697adc1cd9b9be198483e366da91653b419914fb1957e64aa7080e5da9f24059c2dbbdaa0b84d24a8c5db7c2ba52fc1a5315bf409a14aa5c88036356b9dfa36461e69d82731b08639de1e78af44e9bba08459560b9f8a31b8b11329f5ffc745e09116bfab7dee8b8cc8841063f62241428ae"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_4(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0e97de682641c130faef55e3c907ca2a3e7ebca4f925fcb900717ceb78dd80f4"),
		nonce:              decodeHexString(c, "5a7afcf43ed6b38e4df581377f18348e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a56fc190695e6bd3576800695df8c6442c741eae8ce8cd40233ce212f1f44e54"),
		expected:           decodeHexString(c, "094bd0c3921904598051147d69b146e1f666931aa68e7cdbbfa283cc70965d7ad116309b4fbb1308cf509183f07f746831ef90789be29052982b6fafa008c2d6098547988998fad80c4bf54abee938fe5e9c7429fe5ce30e31599c3048222b13f3cbbcb607b6a1da4a9787c51c48b1ac4c8aa0e9b68db4202af3ec49d95d133b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_5(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "7ee466e3551f237fcb58ec5867a390368b152a833984fc4dc4183ff85aa20e29"),
		nonce:              decodeHexString(c, "dd973b97447ccb91f6a9362d9e0865ea"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b5301777760303ec25e44f00cf152f230836c736fd11e02e2bcd897c8263a069"),
		expected:           decodeHexString(c, "e7463dc9f6b8ce7b3e49514099d27854857812e88e22cdaf016c7ed37254ac26e5e512d039bced76d4a4f1982f1cb9f7a5996e551d96518c1cb3467d335a116a37a0326fcbc9633db266b63f76c24ad963b01b7af8109cc2ca626dcf0585a994e9263861a4d0719ea6a18234f98e4efc40459d408b40ffb08367578efd2d7d1a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_6(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d2385852c5c6155fa303d8e3f781bc63f4fb1eed95270768e41654c6fabd8fbe"),
		nonce:              decodeHexString(c, "7822c35eabea5da463949a4b7bd61e33"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "66ea25d238c685bb796e1aeb414162e168ad6feae1571cd6aef80c4fdba63ec8"),
		expected:           decodeHexString(c, "89a5d28d6002ca0040edadbf4cdcc5c29c7fac6be29e392c1deca578f87d4660d0438bf0bb4b7f8bee8cae8b2d1e0a4e94ed66d34aa1dd09a959196c7134ee6804645ffe6b07405dfba91a91d01855dd99c79f64a817f4e516c180e3c67982b7daba1e3b923d63e56bbf333dbdb593c808e5d039028e17bf90120460f29c219a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_7(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b42f35fb21dbe8699fd509bcdce843d272330635543f46dc6876744c0876054e"),
		nonce:              decodeHexString(c, "d6a303f462e036e835594f68abd2bf1f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "778c67bee069d331784e05a122da94cc8d371a1504d49951c0f1febed8617129"),
		expected:           decodeHexString(c, "c2ab909f94743581b4b87dadc590fd755e1cd4dc7017996d2ddaaa5161f0e4a9d33582dd783953c0141f6c1538a18c1a7436461d8528c71f2edb90fce3cfb67abedcc15b38ec7998162852f1300d098cd99b097b022216d027c273bb23c0405a1f683563394af4304cb9d3b4be6b5091fcbdd99e0b0ace9ac32aa7e5be4f1cf9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_8(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "5843ad1a6d301cc041048b326389669b1d2e208c6c5d119bdce5361ded3a31b2"),
		nonce:              decodeHexString(c, "85d3094c3570ceeb5e341baff8f33e8e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a2bd04efa70681c17e8cf26ad6ac9af5eeb627d804b57d547ee2720df051d700"),
		expected:           decodeHexString(c, "721c42ef800e80e148976677ad39c200b8f51e205b5bfaeb76f70b8f4c21463369366f0bc03df06ae256393fe14393266e86d4242ac27a93b4a805e300ca8c1d5f2735dab3529023d811ea4105dcaf6f4716e11e767ee20d536c462aba70e1045eff5089173e82cf9262110b371a378adc3d3cfe77b7ea4bc4683398a63ae91e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_9(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "807e2df37d4dec6bd438bde7e8ab9f177cbbfbf952c8f2d13feb04503d6dfaee"),
		nonce:              decodeHexString(c, "fa04ad1c39aa647be41ed1782cb8bc9c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "21d8bc6b50d1f5a8ffd4aa65cf867a2c9e92d9e355793c606db74dd873203508"),
		expected:           decodeHexString(c, "cc2af6fe5a4902e6e18f1ef16288e6f1c668a3a0e3d510d5bc99c2a3cb0571797401e8acdc8f55be4afe58cb1a99aba35ce43d02e3b2f2660cfbc0f67ff6d8dc44875aa8b3b24bec5e3cc547a2a0973cad338c9a8f5b443c6206fa34e098c9d8ba36a698ddc241e7e13b50bd38150ed23c6453ee713010bfe738d74e332cd847"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_10(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "94ca5a2acf0c9800e24a49c589b01a63a8f3041f781e4edd4169ca362fde314d"),
		nonce:              decodeHexString(c, "40aca3c6311f756960944bc0aae76d0b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6e395f3ff2aadff1befa28cf186c74493dc16af7c85e92add81868e10041a402"),
		expected:           decodeHexString(c, "c9d7168261e6559240a56f6bb693617cb65a28abf85056fc645b14cde35940f03c1ec34a73be6233a3502d44218fee228cb35044b7faad4ffde6e0ef5adcce8552345fc3a63a961c7d0cb95f384b015d5f33c8039a9780ef77a0cdfc2f4419a7fee7200299dab9e810f07433b1ae8942ae79c7d6d74353abf497e6d8806b3822"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_11(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "ae1f463c7342a222d8805018ae790f42da9cda8550efcc8fa119733256224f10"),
		nonce:              decodeHexString(c, "a1cd25b51e21db40e38e0e34bd622c7c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4da7a36c3184156a565fb5c150f9c5c4b376b57434f6a82f1ac6d0bf33d274d8"),
		expected:           decodeHexString(c, "458bd55d52eaa4152c777b7176f895945bcf209e39abd94c60e6b21a885a3b7cd342b3cbec8f29f2c3cc4dfca9312543514f9a59e989b6d64576900fda18c34a992e1ead7a4a96d3e4ac1c68cea73ec26a57a51bde8ae94ae864e7fcc988b6e93a583eb6b9a009b9e22615b370a71b159848865f52cf7336085e8e188e892e52"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_12(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "08209cb4b12d4f33580f0aa29059a25d39132b7447abd48447d3dd9171e57adc"),
		nonce:              decodeHexString(c, "0989d2402e30e55e10bae1f69512628c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "59b66a1a21fbf1fd03474eda8d895f4bad0b233046147962d7728aaf18ac2094"),
		expected:           decodeHexString(c, "518a62c194575d3adbd6d270ed00f153519ee0758f40be05234a9bbb077730b0e78ffe0fea7f913c039a81cf1a5f51c60d7f5c56de2dea0e125c733489638ea674bf72361fe416c15d0c7063919b6ff249c4c157fc9200260e52eda3be4c2c0936aa0bc503cbd0c3e56c1c09d72a4312485f3a9240032faca8bed734f493c7ba"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_13(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "f959d95b43fb81c37f802e2084b03f2cad03f71fe8cadcb626d1130a7276c908"),
		nonce:              decodeHexString(c, "38786171d85a7acd6bb79058614ead8b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "50b23baf30cd7d47ba0eb91a54ce31eb6325118c778e170de8e9a59062152793"),
		expected:           decodeHexString(c, "6116a4eda59acb603686df345c507b89f84c3dc2985af6d327540ecc72efca0a5e9caca2326479f5772893da404d48093ecd8d4971802547064d8a1e275a429581c8a40462da812880dd4d863fb90997f71389896fc8a820fa1f8ab835d7cbbc2b031c3ecd5e1094c741e4efc483d2fe88d8c729b79442a4d433ceeb1a146dab"),
	})
}

func (s *drbgSuite) TestHashAfterReseed44_SHA256_14(c *C) {
	s.testHashAfterReseed44_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "bc66b8d0e870ae156e030973772e021708a706124b16f391248c3c5d8da9e53a"),
		nonce:              decodeHexString(c, "856483d8e33e8143f7458b43865e198d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9a95de457d3d82467f9e67626142466a7e0d33255a9e50476bed14c86dae07a8"),
		expected:           decodeHexString(c, "63752b0404ebd38ff5a5614d51344761f2ea0db39207a75569567ff917ab4c867ee34d159561d19f381e4c77f9f762af5070daec03f5323ec3e990ef8b73ebbdfcc56f2f707ed28cbb2815241ed239e7a0d5b5418230c67d508f1e263b107505dc993d1c5e677729af8cd76458abcbb08c879b031e78ee84d31b7003ede43dcf"),
	})
}

func (s *drbgSuite) testHashAfterReseed46_SHA256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_0(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b5fec6483d7cdc74c6c9c279e79311fca9f323d931db499794ce09004e1228f3"),
		nonce:              decodeHexString(c, "837e5e3d05643f6bde744721692054a7"),
		personalization:    decodeHexString(c, "6861cb769312bcd7037a3de8994188db143e290d9c00c2ac8a7f09af3fcbe66a"),
		entropyInputReseed: decodeHexString(c, "b734ab49d73d7b2ef08490d82a1d1189fc8dc1c5f115e173906357e91a8c4a8d"),
		expected:           decodeHexString(c, "879bdbadbed240a1ce2e39de864bb480c97cfe281020126874f9394a985e0e019e723f680d764cb35ba32355ed666206c181df80ce6f79be3345e7f2f544017ad1c6297ab7ad7cb62548216ea846f0cb73d7a21de4a12b18224679143f99b7afba2f9280e4c3e0dc70d00ee00cfe24033d9cd2917a9517065fbb8d5ad6395b75"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_1(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "cce1b49b5751310cb61cf4ea9a0b1350185b82678c23288c67ca624697dfadee"),
		nonce:              decodeHexString(c, "7744f6276622810d3fd69ab68dc18733"),
		personalization:    decodeHexString(c, "ae75fb4d85c65e22b2a7ac5c1c2628c593ec612e541da9d5a5e1efcdb8a1fdf0"),
		entropyInputReseed: decodeHexString(c, "d8f8e0f0b61c8570c3dcfafad65c046f8efa569bff9a62807a004b69cf9b7053"),
		expected:           decodeHexString(c, "278234906ffbcbdf5ee18e4e65a7718a57e34661628a25aba05c4db98a277e3cd833f4a5ea556af01af9b6db30da671ca1d929da1781168da45ef97d6b118b1c251c164b03f2607bc50ae05fc2fe091362e09cf6401b374bbd92345d0e7df098e66099fe1009d263f0eab6226e71b110cff8a7d26c2d64cddac1e2d6c0ee41fd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_2(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "67e238bea9338e6c0592fde45165ce9c865a294ab178db7216a4e4d61cbf9a52"),
		nonce:              decodeHexString(c, "140863215ed4c6d03d11adde69bc210a"),
		personalization:    decodeHexString(c, "c0fb641ba485266eb1540bf6b15a2a688e278d95b4e3185e778109c4a9dc49a9"),
		entropyInputReseed: decodeHexString(c, "a9a53df4b264b8cdc885bc21761e504182376ab10091a8b57aa79fa2f95b3545"),
		expected:           decodeHexString(c, "1827045282e9c4b40faedcdafcb6d5369fc4a45937e41b107b834f8d9357cc2581dd408d137c481450831baf6a11a142f20dec4a0955df46446ccd2357ff99eadc31d58c8c0da30df46d5bb3038e1b1278ad208a44739e11603b91e99898e36318d3befc80c025b393993f8c65236eb2d8d60f44042fd9b577be4c897c82268a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_3(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "833d1bda2935c2df1b607d734f27cc0591cc556a86524567b62ac3fc0d66116e"),
		nonce:              decodeHexString(c, "5a327aad1d36310a46728a5b4382a793"),
		personalization:    decodeHexString(c, "1edd70dc421b9a987a59139d348c76252687e5d52f0296d968e258afacbe40a2"),
		entropyInputReseed: decodeHexString(c, "32827d4d8563ed5eb39e2f59bdabf6020ff0cb62641c6c17a4b8892d325ab9ef"),
		expected:           decodeHexString(c, "31c76b02ad2e6fc491003b0994160bc530a1ce6a83734da6a2048b7cb6d9b7d8014b270a3bede00f5b2fdcb4e9edd83dffaa3f00cc7d41388aa92f7ba41d8e6cfc642046c0614cf7bf47a079f1ddf8cff8b61e41dafc9f4e4a2757127716605e86f90db27afd18ca5d363bf21f452d6e1025f30c5dfb2e3e212d1eb73c114509"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_4(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "b2a5db3faba61b70c81bf51b7a3b234b13c658e36c143d60111cce8f2eac93e7"),
		nonce:              decodeHexString(c, "3dabc2621c33b5a3ced398db211b794d"),
		personalization:    decodeHexString(c, "58f9b8af5cc93bd6917866d4e26542533436d4375fce9f04bdadb68ad4c5aaa2"),
		entropyInputReseed: decodeHexString(c, "965663652bcebf8921e028179120cb743028b4d8896fb8f462178e722e2c6536"),
		expected:           decodeHexString(c, "58a032665be7a5d821b4497740950f9b205d85d2bac6c7ff4f803b9a7276cc774e011215780a902b3bffedfce5b28a6034aa22aa179d2d43c2b429b0430b8100756d989e81daedc6feb60e70532759c37fba6150ecb17baea1d9995ca00f3a80f02d69e437d7eddc186d3f0ac12c0879be7554e443aff9826f3c71bb6fcd891e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_5(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "29efd76e53d8cb29df9833a518de05883821b15c812f8bca92d0c7000be84c0d"),
		nonce:              decodeHexString(c, "23746fde8a04e09f03c1d6156aba9e02"),
		personalization:    decodeHexString(c, "e0951ec005d3a5c44ca917d68cfec5c0a62df7ab417fa9ae991a90c3aa569c39"),
		entropyInputReseed: decodeHexString(c, "18e6af8b393bcc93ce3c5f332d860eb36d5747953c4caa5e4586217fb4147388"),
		expected:           decodeHexString(c, "fed892d28ab0b913f6f4153778f4680eaf8be22878ff179940c0aa6f58398802d466cee50d20c04574d0e75dbad0aa00c7f1e3a68ce310de09fbb52b69193fa0b23b0c84a82bebcac8be15a537b6dee0cc23980146a488dfb98ac1a2f3c9c9a3b8eb8b8cb58576e09e60bb944d4378409d53e12ebb99dea0d22af3aaba1df4a5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_6(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "0b4b427b783400a48ec96dc90dccb8938179370077ac87ab9a28a289ff958c18"),
		nonce:              decodeHexString(c, "afd6330426cf1ad39aec47cb3f19c2b9"),
		personalization:    decodeHexString(c, "fd08793af6baaf785f921702e1793400885aeab972819454ba77b29864a376d6"),
		entropyInputReseed: decodeHexString(c, "40826e4edc2e46c8f30a1a4af0dc10d86fae425f9df3ac375672bb2a440f1120"),
		expected:           decodeHexString(c, "1b505c60af3480cf66b1fedab69a7eb382f376a0fd0cd6fe7a448d961de68ba90b0311534823208243d45e42781324d43ee630abccb1dec543cc76316b91123822f3c7f488947727fa5698b3d1769264e332d87540ee088d92dd13e7a7b09dc4c1497bc31b3d46ae824bc510ca53d66cb2dcf5d9175e5fd02eb53d6031f8056d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_7(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "4211f6cf6db9b318c11fa4a248168f73109bbf2dbb014f604483e36ded455536"),
		nonce:              decodeHexString(c, "0ac0215e549d9795a7311ed2ebf745e9"),
		personalization:    decodeHexString(c, "f47541b6043a733499ac1a3999a0027d66337112c7423b2a28109770afe00047"),
		entropyInputReseed: decodeHexString(c, "e8acd28b61f7590dfeb304212dbd3fabd25b18386b546a83e7973b6dd247147b"),
		expected:           decodeHexString(c, "54debb2eaaab220df613861b72f610c4872bef53c36a8fadd127946d97697bc7360e30417935449da60869185fb0722842f30a5f2cfaf873cb9c096e9b6eb92e0bc86d1fa0dc68881439e61f028923a341cca7a9625d00573ebfc1c9f30325f8a2b27da313fb9ab60df83271768c7ad35bd431e93c3f2f4cc7670b092927b634"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_8(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "eaab5b65f8b0f600789161ae43824c6f7620c16aec127d891cbc1803d0088548"),
		nonce:              decodeHexString(c, "63a83f7458a3c8607f53bfc2a1a4636e"),
		personalization:    decodeHexString(c, "3756d7ba592982881f2db5ae576e4087a3dad8176d4be47759cedd660c21ecf5"),
		entropyInputReseed: decodeHexString(c, "66bdcc6d2730063216210b3c5d506f119e49464db599f40349420263298c168a"),
		expected:           decodeHexString(c, "81a2f068fd26c0dea5fd798b053d1cd248d2a449b2bab88310b98884483bcdfcfa020f35b12ee3ff24b5009aeade3342bbaf9ec3b77285f88bcdbd4b6f3a343e4fd6c5538c11d3668a15248be77bc7d8f4e26ae2231116fb702f21f5a8ec92c2d21e7a45bf4efb7f1a9652b4876980240da9afad7c236849979855f8045666a2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_9(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "507411227df274a32d4f4a42fc8058dbf659b6a29958f8881c51297f0e8d2672"),
		nonce:              decodeHexString(c, "74c497a191be48687d3a0f882516cfc2"),
		personalization:    decodeHexString(c, "f15fa96ec490036e82c5bc45884fb7f85e3134461f66f62274e65b93ba2cc1b1"),
		entropyInputReseed: decodeHexString(c, "ff3b83df614a9db66858e2aee24eab8169622264397b02f845c6bb6b5aa96730"),
		expected:           decodeHexString(c, "f689d8d5dad219816f4416759bff5b48b36e54f1dba06f3ab3f8e109c4faad1164e71527985d08c9593185b45840ef5ba5be83e35551b0c4c7bb0e62663a0798eaa301d51a774bc61239936bbf4f1cbc5f2f4bcda0e9d26b872efddf23839c89965f00d2ccfb1b2bfcd66aa471dd05ba923faf2093c59ecf9150d8bae55e3e44"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_10(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "deae4cc504cb7ebf4016005740b0e1a6cd2ae53d86250878bd7c9ac544b9a60e"),
		nonce:              decodeHexString(c, "db4108249d2394917e5e16f9cb3901ba"),
		personalization:    decodeHexString(c, "5f225b83420d09eefe6d5d64bb4d2c2477b1466b88979b5173a3e151a21d3d28"),
		entropyInputReseed: decodeHexString(c, "a0bb590605464e4b2c44dfc05b55ec575fc1002980a502a9fffbd503a15aa024"),
		expected:           decodeHexString(c, "1a9e45c61406ecc73d48e80303125c16c3b2c383c3ed919664e5354b16a750a029e259be7956d98bef9fc9ed968df8e9e6e89b973bbbeca6bb29b9d66298e10421bdf05bcd52f8118baea407c739011b4f5e9b10eef06745cd27f780723770f4b7271927b52b786cabdfc6baa7568f3109e750cbcd1b483c8b2d547166c8f322"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_11(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "d7d42b877f8218852ee0c0337dd9c3a1c927cb0ee419bf036fdb86be0672be4d"),
		nonce:              decodeHexString(c, "884bb0124d8b295bcd50b352da505a50"),
		personalization:    decodeHexString(c, "7da1995b6b54e9a35a38eaf17a6619c678c38435e99770673f4b22b17654e429"),
		entropyInputReseed: decodeHexString(c, "b1195320b169f8a726faba9f27666547a9a613098e54e37dc6d6dfcadf42da21"),
		expected:           decodeHexString(c, "0583189e41455fe4dc47aebd4e40efd78d97540ec1c149e23bc963a491683b304162f67410fbbb3d051290b9cde09e0ad923f150becb35425a807bcf017c6f00354f8560c2d1a8dfbe99a618040eb122e03296da22f63f4f152faf7c013920e9dbe6c412e436ea41832ab2de227fbcfb6629eefebbb40258df06fc7080b6aeaf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_12(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "123f98d097955df998b23880a7a58b1e2495e20ede4018b12019e32731c0676d"),
		nonce:              decodeHexString(c, "6512a88d5cdde4044f31a889999ac844"),
		personalization:    decodeHexString(c, "78e33620337cc95cd69e7c0678d87cfb680f28e5ed6e2c71043e0c96a6e5361e"),
		entropyInputReseed: decodeHexString(c, "e329d04388924f30cdef6a3d311e9446c94ea5f98056d11cf15aaee73159d2c9"),
		expected:           decodeHexString(c, "43c80451d74a51f9c337059d79922016483885adf9acc5e6635a778bd4659c6886577c4a366a8a1e7b5ea8428aa47d53d83d5580ef4698793f7da8f057db6796283b0538e8baddac803a2d3332cb9b2066af55a4d7c508add2874e9b7a0b67bbeb1ad516257f83bdaf2a99fa58bf18b971072608162fa234b97226442fb17051"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_13(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6652d6d1fd863f87695f535508e5993cbd66f54e60ec68b1471dd35e327a1158"),
		nonce:              decodeHexString(c, "b299e639776275f40143345eb76196e0"),
		personalization:    decodeHexString(c, "cf4c67760a55f8392665044a394d9afae057dcbc80b7b3b1ffd7e0e162cceef0"),
		entropyInputReseed: decodeHexString(c, "f1b8b2b0f53c8f27f6389c297a6a2f6ff7252c4f822619904d044937ba6eff4c"),
		expected:           decodeHexString(c, "e0eff94958c69a6117563515a0353c8705ed946f716d874ac7cf5ab67bfaa6a1395dc4722c33437f25e3e6c14afe229d4f2fd2729dbe59384d398a06a7bbdb275cb44257d568599f1f2ae87716697ac5b003dd2aab0796bad51058abe6ef22ae5fc48e90369d3ee13f2aab38f3e87340f1ad2c10f0470afbb7507c7327c92a02"),
	})
}

func (s *drbgSuite) TestHashAfterReseed46_SHA256_14(c *C) {
	s.testHashAfterReseed46_SHA256(c, &testData{
		entropyInput:       decodeHexString(c, "6f37b18d542ae6e132e54449a3eeef7de3339112d1f9d99eab9fac824f3fedf6"),
		nonce:              decodeHexString(c, "646fb89a9e57fd890ded39a5c134f918"),
		personalization:    decodeHexString(c, "056008bfc336170281063a4d14b3aa899ebc57540f2dcc6a06aca05bc66a8dcd"),
		entropyInputReseed: decodeHexString(c, "4dd1c625bf842ba6af3b57994094d749b6902ef5d09f1a1bc36b6cffe89e715b"),
		expected:           decodeHexString(c, "3c7fd08f8d25c4719fd08945593f28229a6ac54030c78e67af0350d59782781a1154bc0d8322323a0023d8164eed3e2c60954df4d0cb8eac74c1b26963dd83bceff5dc2f125a0321e48c60a677673f28dae144438230fe2cb8929c43ec79baeaf5c01e22d6d199312815bb6cb5e39663c9240b202a7ef6b2ff06a32aa78a7bb7"),
	})
}

func (s *drbgSuite) testHashAfterReseed48_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_0(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "2d3e072e78b3d5af2d60424b37a1ca56b24ad1b1fb27a9c327db0651cb75341c"),
		nonce:              decodeHexString(c, "147d214920513cd539ce383f810d9551"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7597a56fdbaa0cb66cef235ccb6bbb423ef2a2f19e5a65a7b86dd11d0cee6cd4"),
		expected:           decodeHexString(c, "5d3d1c5ea9e8c219d43511288fc65dbc1a2f6284c59b26d4375f156b75d383d01ac6773cad41bf5b6d9fc41416933c0459f9b6d481412e38e9dde34cec3529a313d2e7815bc5c29a550dfd6be3365d0f8fbbe3a33bc07b6b96351834462a2e624d4ffa0bd1bf9adda378f4ddb6d4f6a99f7e3fa2556e52006b40fe9caa30ff4cbed3e574e2b3752680ce7117ab880dd3890be9c19f6442b0e2e04684e05f4fffd90f97112f0766a589ed82c07af7cba239c36a3d2bf52a25df2c84678556cedf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_1(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7d1214060baee8c87c7d1fac9ae734f3108c0a72060fde971afd70a5281aa08e"),
		nonce:              decodeHexString(c, "7eec3656357ffbce815e77eeb114c347"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6ac3d36724ad82afd5a9c9e49299a706a0ca2e4bf399c2d220bd20985bd8f39d"),
		expected:           decodeHexString(c, "1f7787142f1246802223ed7386683a20ae8fe62fbfa923800fa8b94873fc7ef2cc5490d56a3ec070fb6caa0dce5db5b2709dcef5f36b55e06b83faa4b6557bcd2b9208215ef9d22a1fe9b5504d02a18db05b18bd6cea91767365b4e7696f8bb064a79000e63b3479bfc8f7060cff2aaf01ec87f58ba02c06a32b1f81c1d9a83300890d17dac3f76a63ee733e1332be959d08addc49961ae19df69c39560e6b59d65d5f5457b8bf5b1ec77d0003926765fc084214e8684045e5dd91312b88afd7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_2(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "faa384b3da916061880ecfd8e8a87da317a1eff2fbb1a3369d3bc98f725d446c"),
		nonce:              decodeHexString(c, "050861f172c57613861c4b8e1f5d42a2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "833770cc3ee64c56cbc284db6a746dc232d278cc8ce1c5fe5940b18d8855caea"),
		expected:           decodeHexString(c, "e77c5c2b457626db18d6c28c8fd61e8cf1379739f8164a773f2d0e67d5a218dc455fcda374d84b6f1caddc8514bd1dd32b75e9135fc740cf8aea0f2e33adf4fa3e1b5f3181329f75a8dcfae79c737ac67961912b4fae9d92a9f8f0f6c1f8af031e7615a80b512d9f965b6484944dd74ad9a3bf9d035cac28b533f482fba3a7e48d958c6ce96892fbdd54af9f02f61242d46ff73185ca5358e65730722f086a7e29a8a5357f91d19c89adc93d1f2130f3e1457cf976527724ccb59b65b7c3f21c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_3(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7ff504f2fb97cadfe571e9383a550b12804bd82c79a86b2b8f4843495cca0108"),
		nonce:              decodeHexString(c, "18f772f22f3425fe1ed9274724cd9335"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fd2b8483712ce920dc9c712a3b859e02832f988d6e555c8b33645684cd9b0d9e"),
		expected:           decodeHexString(c, "7cbf3541c05343683522bf1e0a6f9e07e254d927c66dc1486804939ab52b79aa7dba3b4d4ff6714fb50f0d18c0829a43d57cb515534176ed33a7e218d4112c07f7ec84b35a1e34f02623c3a43b85c59c9c537abf603f7aef50479187f0a689e2ad800b84a627f652a8131b5ef1226c330989ab82d7315e097eb6cc753df846918deb7b5212bbf29af86d7f6e828c7c014207308522c56f6ff389f699fd3f6ff9e3ecd62390d6f8d7a42a8dc22d30efff45d903ea19938b4286ff4cc6afc38113"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_4(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "330f2fffb6db135a8e72fe33bde9828911daf97578aa4f9ecd0de1e53094838f"),
		nonce:              decodeHexString(c, "d6f755e49d2b1f7112573179a17172e5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d02af6eb4f5453d0c7c0811479244f6290d17c103407057e4585670bc3870ffa"),
		expected:           decodeHexString(c, "97b2496582d25dcc45619286dacaec17e83be9e6355be8ccdff115bfbcf49429b41967bb8ec8ed9252f7c47b4610e67831a27eccdac5f1b42998378c8ee69613a279476fda00df80fff99078e0e23c1a4afd86fade421898aa1e917e17f1b4573644a1ef7f8c7059a6b27fe07cb41b48406efd11777aa2eb909e9609829fcb9e22cac9c9c65e76674784bcd0ea8a3a61a7f5205007901d7c3d9e6cfcd46b65c4b38fb792038abae76c5ef13391bd0966d59d9a408228f8606efd7a62d990419a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_5(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "fe21a45baf8d27cf2e96eb99d9859ca38e822ff6336650a52c81259e9a8afe56"),
		nonce:              decodeHexString(c, "dd45448016be4e0fe9322e43b2799547"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f6bcbfc74827b610e21bc7aff32d2358eec0ab2c51f0c95c2764d5588d8d24c2"),
		expected:           decodeHexString(c, "cb0733a43dabfa4f7a470ff551f60cdd6db91eafc1fad0eae315e9c2f69c9fb90ee0c166a353bb68a73a03cc86d05a4b91da48a6e1df1dfaeb269ae5f99725328e023f58003200cd65d3a8788d5d5e3dbc75acee6a0524f4f788da5e2139a0f11e7a26c58eb9ac434f59c71e65244f1a25d02ca180ea3d4fb13f0c17015ceae4d1b71ddcb82c952bd3ef2058e60fc60c52140340897d7ef5f934be497a25fa8d4995d57d1bce85b1910d29636f5711847e4c5e97be03d58caaf4a7c8bcbd8c3b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_6(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ff233baae192e5ecf8d5ed5df1f3edd21551af21fb721ab2befba53ae50998c8"),
		nonce:              decodeHexString(c, "42f63fcdfb43fe201eac9bbb728d3f62"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f562458a50f08692f945b6264b9b8ff49c0ef68e8dbefb4bac080c5d54b7a9d9"),
		expected:           decodeHexString(c, "fbd2eb4e7c060d897d5dd661ee7e9f7639731339c08caa38dc472e730692a42e17351cc5d7051e7e75c381f802709f2c9ae3b39822d9426f467ac445c149cdb841fe1bd511294c3329e9a055f676aa0a0bfacb1aee841075cf710cbc9b31bab2b927f936f2288f608e98ac8dea6c6a2a23720a31f30a249cdfae64325ef5bdc40ebf0ca9375893591210f10375d48d7e7e490f4fdf2ed095a095d16b2df3c49e15f2984b5be300d0998a69a6aca7397f874ab73a8682e5150d1f2f03348b5c47"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_7(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9dfa34bc831265fc31218da6eb8641df72972c94c0db3edc5c3c04b6592f8c49"),
		nonce:              decodeHexString(c, "a9ef3c675cda2a61c26e2f289812d1f8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1d68c34eb7939cb17a68c677c95d202d4de712c929989c06ff3375f214ba8573"),
		expected:           decodeHexString(c, "2bc5d40db5f22e00452a0394b7f12c25f967592c932331fe8f6dff8cc775f74d1b6fae6fd01f5c84ae590ac857b9b94d4a2305d46a76e03ce841160ee48ab0d136facca1478eb3f32f96e2c0f11063b2b3a2ffa5f0561f4f6a64e569601a8c208bed31d18fafa3ee4f5698eb059d8eb80c458082d791ed1e8ec54f75aeebf81956b25fc42f5b097f5ac6816354576798ec651a906cd14e1632cd60707598b93ff9b3e291f84cbae33d08b54d70b9e14017b81308919ee9bac38fa65c5978f8ba"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_8(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "476afd970c078e389bc9eb391035c181f62761a7b170615930f178ec12a083de"),
		nonce:              decodeHexString(c, "8a4777f06ac1fd19d563cbfbaafbc0be"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9fea22c23e44b9c7789a5f8b87d8baaa6118a27f50dd719b982c5dd5a6a0dcb4"),
		expected:           decodeHexString(c, "4b6f8f0f8b36037ae84fb9fbfab67a5a4c298489b0cdf02d42bb06a768127a5a9e6275ae1bcbc346c3de1777ff2dfe21447444bc2f9f743afacc39f43290655d76603c0d4d2000e6f3bd8794abfbb03bc57c1bf0456f8947215d9338f3d69bc669614e0246ff439a84631c613c05b69a03a251966a23d0955e2af236a7b3f5998a72fc034e2b0d1f1c39887e8708430837d9f36e9f19a721b0b38b5c99695a21089588737cdbf8366331a86ccae547ac490767610515117a82133d4fe655e29d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_9(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "6e91a708c5d7a286b791d5637d4cac923c66f198bdf70d95bce8fa3c6016c460"),
		nonce:              decodeHexString(c, "775040a7e125db0611fe84660e18fada"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "400971cd873edefb83942183f81ca108532f05a8252917de1d64246112c5c676"),
		expected:           decodeHexString(c, "076e660f98db0064423a136f6f8f73c2f44d6295d635d6f1501431a5148133d4677c3e8e4cb5ab7645a1d723da69817b48380d514409e60e861253185d9eec26f12408d66553793ba335e863890aad4e047cd70903e3f79895c9990feddd6ab2525418c4a04e7e00f87c4ac84db133327a56929565db7e582b36f52a8726209f277af2cb23feea555ee7ce592d6d7e482476223193b0add5363cb8ba38be110c2388e0eaead771ba2ed31348e375c33f2ec23ca551261cdb32f7265be77181be"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_10(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "6f828a9e17bb2f269c10e8685f053de21d6f44e6fe4fe28579fabed15af2f7a9"),
		nonce:              decodeHexString(c, "11c0f06c0cd4ed48fcdeb0e4f5d87d25"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2871b7a1ac2bdec0122c6c355f1897e9abd232eea193f42fd6ba304be1682020"),
		expected:           decodeHexString(c, "01a8681d258ed9f01c88265f769a4d306306d3cc7adc14934b54017ddf3d0633d9f629d6051200041f164fe58df4c0055d6039eedac64060ffc5929a6491a800f335c3ae5d68a2a01b59a6b5a3fd31343270c35d56ec0cbbc668285dc57872bad21ccfdd4002a6fe25cd10abd031a207126fa09cb0babdf9b142143944466dae506552a2276f6abc18ffad9ef3f5ae7bf53ab3d27d1b21c01ea88bae68238a7f7bc607dd9eda3dbc3ac5331c32dd4ec0a3fb23ec81cef37712762e3b81a6a598"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_11(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "5bc4bc624b8ab7b9f423bd22e2e485d3ad6815f242ea26dff94115c5d69d2a23"),
		nonce:              decodeHexString(c, "6c8300f429d4a8d8ba7289b81181a3eb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0f5a0326a4352eeb8bcfd0c8c451c27008b4e9903fbeeb31676abc67e3cc4c23"),
		expected:           decodeHexString(c, "4b01f0f7a74fe4ee30ebf53f292ac434d484f2f77d915760806d49942314ae34b79e339a16d911ac1e7b35396757f92c3ac9d90f721a9e3a8613a632db27c4909b18ca9252f17cb96fa910a2bdf7a8c4dfc5866f277f8e562024149f7ebf8da862916ca34c0b2132b4602de351dc6de84a3b9bd7f2765017dda0440d97eeb0c97b88ff4ed021f7229ae1acba85a4a4c17fbfcb83fdfaea91c60125d2b2391d1561c44172c8da7426ef236a122526141d344a6ff8ca6162b2d104d551012ee4cc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_12(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e429eb27c7221f906d2fc1f66d2d96366e58ea7f88e5ccc5507a1a1ca5d27883"),
		nonce:              decodeHexString(c, "7391f6acd7500212a5b01b998472288a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4bff8d30247f4b525196b6350d8a1df37cf874ea3609680600790de9ac46afa7"),
		expected:           decodeHexString(c, "8b39ae19edfc376e29e5d130b2352e23e9c79704239df2e550e63ff3881152571c4e3bd7351cc3d76a32bcdad42ba5f00c50a81e6d67a2fc9014913a052a0e952d2521ffdae459ac2466a00804e7cc18f62765ab287ca8dc44764006683368efa564685db0813c0ef4cf155634207f2206293da2e39dc007a535e90587df1f00b0426906c31b3a5fb4a6155d5d6f568447120fa9c714ee31cfbdfc4a9d60dc9fd4ca38ca91255207923951eba254d3761564d34cb6fbff7cf852abbcc4819f7a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_13(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "cb52ba610167f08f7ac6e9ff075a37d5e361e1ae661af2d628643950382279e5"),
		nonce:              decodeHexString(c, "08068a43f277bed3f932356479e986fa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5d846424b680012a007fa2fb03d7b0f1a3395149eaf31db3d0d56c3fb78f971f"),
		expected:           decodeHexString(c, "3c1138ad9b29d4951f2fd53177eabc53955ff6e8f816dc468de4092207c1bffb374d5bdda6033adaba3674e157d56a12f7a00816f1dc48421a27a9d079b065ef3ea31893f95b8307cf14677f8618b742cbd7e9e52a3af776f7b3d650cae80fe480199695b7ff375d4cb445228871fe409d7cb323b32b2f3c3ed93f2b0de8476493e7fc3f8fa86205c7fc1dae96b2fc3023e9415bc557cb2cffd2a15a597d3e2dba017824698b6e8607231a61d587de676c5bb747b1000c1d9c38ce47bd872e4c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed48_SHA384_14(c *C) {
	s.testHashAfterReseed48_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e0c44736f9703799d91bb8a4c213c45b8c2279c82da98d2c723db827d52281cd"),
		nonce:              decodeHexString(c, "75e0198a1a4a8b369209fae539a143ae"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eb5924d9fe71bfdc8692ffae612bb80bd3b7dc2dd439c6d68a12e8d21169ace0"),
		expected:           decodeHexString(c, "e97feabe1e91fc74d5e3144269f2e938cfba62276a125af34b322bd9e545afe8a1092835404e56152f46351f9e1443712a5a50c724680f8abd44dd4b886f7cbbfccbabb23e76c51ce0002be693f1bebebf78ef488aef6892a3817f5ebea364fd99c0de55797151439624508cf6926cc28cb8d718d4ecca7b33fff2236085be1a24ffe3efc5bd8f558ab9cf8542ca6c9969f492a4419c7f355ee6b803cc3519c9acc710bb1f68aecc82c44049ad263b6dc5a65b19bc00d98eb7ac608cd632354b"),
	})
}

func (s *drbgSuite) testHashAfterReseed50_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_0(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f5ed3a633230ef9935a1f5ada4d17df903a04fe82e8780d24e4099e192c354bb"),
		nonce:              decodeHexString(c, "904ce6a59de10f91df5a4c5735d18cb5"),
		personalization:    decodeHexString(c, "69758a0bc5a050ebe8f5a823a1cd1d1e0c28a40392386816a1070140f6683bce"),
		entropyInputReseed: decodeHexString(c, "075792dbee919fca9af14e694bfc2be0402f1312a28873b58f3f9c270eec97f2"),
		expected:           decodeHexString(c, "da8cf54fa4c6a19688211d5ecec28435151b0a136d14661ebeb5e34ef82f615bb784036493939fe462af78dc6f5b5935f043f9c4f21af4d261b8c8de569a2766cb57b818c722f84cd374e8f4cea5218cdb3c4a793c8d3f6dcfed2ce416d2266feec5216e8fac70971f9ab34fdf0033a64a9d2769fb40568190c8bb80a63f5d4c6b98eb4cd2b6fbc41f7101c8ac776597e5816f9191cb3a4d6ac477c8e2c6ef981cb37824a70b92dc394f00c9938f84c1e2407086003acdf6b4907fd628681fc8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_1(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ee596201f7b674f5d72b2b824f9a96d6cccbecbc99f59e9679bfc2d5d47707b4"),
		nonce:              decodeHexString(c, "eb05a8e9c923d3b3f9d11a1285a10ee8"),
		personalization:    decodeHexString(c, "1f4f70c287723c8eaaf1ea1e89e457dfc3666c881776f158f4f3125afd5e8b8c"),
		entropyInputReseed: decodeHexString(c, "f1b11bd611d3af541c5e5ed1119c473f49c655b792f73082e675234ccd302722"),
		expected:           decodeHexString(c, "ab1d0a7625c29de8960b0f950cde29698bdd5dfc2f2da0c3b1e2b195012b091c71fe77afc7ea7546dcf7a4a0e321bfd66c3a8489085d5627b24b5fe8b76df6ceca8339648946a7c0a2c8bfbeb6b437c0b2ac7f9e75cde0f820db65413db8a46719804e4507ce4e6171357a969b01b272c4e70793f4b6d3c33eab8dc784cdcd6eec743ba309a4dce40bf10f0db9b532352cf6fc202873a76a854b62d6f35da2338f3e01f6b080b0d451d5a55c79e6c7aca1aae32fd7ac719c03c3a34360f097e4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_2(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "314102b84e0e871b36e15b0327526f83bb9f7b42f6e760ddfdea36198ad479ca"),
		nonce:              decodeHexString(c, "588e17f2520a117544072c146d337e83"),
		personalization:    decodeHexString(c, "844af6982008d4784a6888295a8969b5c0b4d9cee88e6ca23777e1647bb8a5e7"),
		entropyInputReseed: decodeHexString(c, "9b7d6edb4cd3ec5b7e4617cf05eb8c5e05a4fa8384552464a990e1c196da62e2"),
		expected:           decodeHexString(c, "868a16d37fb706a79efc3f5272e14c4e64bfec1b79c3d8d3ddac7bcb89b48dff1162a659c3f4ed1145be12f7bd54947fa794db734a8506885348486450793eead6bc53816055e3c7cd5146fb5c910f43fc2b50cffbb5ca98a30c36b20d14d84a020e9403e2ac8845324db38f210d8734c63c4fe06ecb0fcf7ddfec8f225eb12a19412cb06635ef5d110e5299a77144aaeba842565955062a427a92a19ed67e9bb148605b69dbbdd19af48208cf68ebc3d9eb9ddec3cf0d464393a2f8e31b2f7f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_3(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "82bca3cb2d956a88b262931482cd97f757f8cc412b141f90d174f5b27ed27851"),
		nonce:              decodeHexString(c, "187b5b82d0b4160e7f247f41923b052b"),
		personalization:    decodeHexString(c, "11d4b7844ca7541f9952550e543270f0e737b5fba618ccdc87457a5180a8fb76"),
		entropyInputReseed: decodeHexString(c, "a2955f4d3d23c16f274fe2f519573cba24b83b03b342fb0a1ce3c76ab7b32791"),
		expected:           decodeHexString(c, "1fb0345055c950701453e84bab50e45d95828f1e0eede9748cbd7a9232d68fdcecd2d1fbd5c95f75e1f883bc0dbea299cd6081da39031b86e84e77bda7b6265f25dc4f398c1d786f539705218e7e40e4a1e991d5312302a6c34b0cfd0aca9160be9acb76bdcc60698c06c9f197a04f84f31e8b2dd6e5a03070db2216ed1ea34b89805d1e3b6cbf57543075f54f4a3e9bc8c3d55e2a9af6e945208b16b86d925ad0a9046f3eab192e3ba23eafe173b4436c8a114d4ecb7f3a1fe6d3a7329bfd0b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_4(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "2cd749f4138fac833fac5306a64fa67cdd6b509b990af1a6bb17777741adf83b"),
		nonce:              decodeHexString(c, "db2f3b2560f01f809d5ed5e7cbd75ea6"),
		personalization:    decodeHexString(c, "0569eb8ed53854f69fe325bf5f3c7d59f446dac2d053205eac6b929ae3fb9c82"),
		entropyInputReseed: decodeHexString(c, "bf9d1429517cc11d708a30bca8ec5df4fec163dffbcc0e32585b71aed55ae1e9"),
		expected:           decodeHexString(c, "bb2fd351e47adea13895fd37c5dc2977d941a443a1ac68cc2ef5fb0af9cfe9281b06f6e811190ad3f1dc1f7fd347817f666cd47ba743dd8a86cfb186fefbf38c68e39eb913142502470972385b8e7cb20ecd12b5530570fd12f44a2ce23caf7762a72c12f710d3bf5466fa03b91a713ac898b1bf8daa310667dfb1c6e994fe94636b88edbea32035d9b08c83803c6aa542b5a8b2011437ac1184dbd432b3f437f6b55a28d7200240af3c1bc873091fd1de05780de3b905b092f5468de0810a8b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_5(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "6a5ee01676ba0e28f83cdddd3ac8b03db86ce6d0feabdf4e33c9a5b00c0b9767"),
		nonce:              decodeHexString(c, "befdcb804b8bbe3d99419d721ff49252"),
		personalization:    decodeHexString(c, "f5cf18bdaf69623479f5391b79342a90142cf1997e7737ed8a44b06450751439"),
		entropyInputReseed: decodeHexString(c, "4ec9e2ff2b4893eb5762d45751259d903ddebb93dc17c9528d24afcb73a843b7"),
		expected:           decodeHexString(c, "40095f15bdeaee5024686dbd1e54b9a7f8dcd8ac5d87479597268eff01f2fce26d3eb33e5227b0e68b5301d4e9e066ba89060259b712798e3494ea7c11b669b02b7f7ce9b33a8d0c5ee0a90c3cea074d1194976cdcad57e9c1094a5f02f86b727da65cdbb71ffcc8e198dcfc177b89d9d60082bcd6abdc9bd2e23f97b1038680f1db5a631bf44e65475bfb21bee3627c7ef07220df18af1c7d657e90c11b3d36280409eaff3b7841fa78567a66a512c46702ae31451741ec0f1eb9c3eb492e88"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_6(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b4062a70b090552d2ae2b99c391ecbbec93da8e3643e862937f592e2d024b876"),
		nonce:              decodeHexString(c, "3d07276c3a010d591dcb13ff86d13297"),
		personalization:    decodeHexString(c, "20bee2f3b1ecf3c9ede23f14b80bf8a67d71dd178d0452a5c7617718d029312f"),
		entropyInputReseed: decodeHexString(c, "7d3f013a5e8b0f9d2e714fe450c7a0afa424633175279f4b3a44554bd1132ed2"),
		expected:           decodeHexString(c, "ba1ffffceb1df91e3f8e435eacb30aaac725a58b78555822522e68916af92dc6a59656d1b7383a2d0c476111077c85c4a6aa8324f87b02bc5b2c558540d4602249c282930c147288ac3955258477c02179437b5eb55de7f54ed1cff8d9e50a5f093d8687995a4221d0852edc03530680f6154f98c83a9a0545937ca1c8f56119f0b20d65778018e58ba2d81a53ef4408585d4010699462e313049f4dbfcd9f033ac627958eb5b6478ef2f7909c9ce4fae16115cc98186a34ade5f7f7712c46f1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_7(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b213294ea66561423885affc971917d3ecb5120a000c73ec520a7abe62e49169"),
		nonce:              decodeHexString(c, "0614f11d4727bf6e9381f5dee5d45866"),
		personalization:    decodeHexString(c, "117fd49175e29b692e79fa8a988e718a35c46c07cfc367bd34a7c96debeee8fd"),
		entropyInputReseed: decodeHexString(c, "c1648a83a9368bfc1780ea27181619f65940d85f131255f451721dac93271b50"),
		expected:           decodeHexString(c, "2e95950abe48470bfff8bc4e2e747515764eeac07ab0368763e207e89bf8ce819c625bc4a052796fbc77385e33854b5c676f8ff832fb05ac2e2d86f8162cf036cc399dca1fa140eabf9d05f9acd4519ba7c82414d20a6dd3e123983f156c22a65c1263b6e2803b3f161aaefcb99c24df2c32655b0b4265484ce4f5a522bc6ce4b84583a207209e4253460b43c2ddbc6b4f4cc8414f85855b6ce8e5b43bc73ae9dc1dbed6f7245b881e071b79a0e06091eb1607b73131d7a03a51f5c8b1523881"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_8(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "22b375c2fab41f9213dd1eda02079d871dd7eb7b4698552a3362a4b1303f29a7"),
		nonce:              decodeHexString(c, "5bf8e37c661114dc5ff5bfeaf790c342"),
		personalization:    decodeHexString(c, "bea98caaadf74a0a9b52135ccd9cf3ae767078df2f43eb4f5d6214420509e290"),
		entropyInputReseed: decodeHexString(c, "4426cc7228127dc7bbe8c151f7966ae41f4d7c67501877582558afb5067cb1d0"),
		expected:           decodeHexString(c, "e213711230a5cd82ba54515fcb3c180f4168c579a5119436e4eebc9e18488a8d3a569b02b3f356c7e330369633675cfc3db7fe4f376d0a1444ce99ea883edf737d2adb83aab5a904ba1ef58014836bd3a7646b4b9bed9ba9d047a566c9a724e2ea73183df3f472d58bda2530ee0474e52983c68e69e87f4e550cb738109a2907b1198ac017daa5e5661a51ab711edfc50f9a18a94d3b0eb5e4ac37453aee7696e13766ffa2d5321e75ce857e586f6884f33da67846b4e00c353bc15db4759734"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_9(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f25baf4c9f29b5f5cf5c9d575767820b29588e00600a9a52bc77242b806776f7"),
		nonce:              decodeHexString(c, "cffd182641950ce0d2c0b07b2e0c2ceb"),
		personalization:    decodeHexString(c, "ec2cc3bafbf630b5ef6792ae240ef38e943cab41c7d5e9663be936d956a03384"),
		entropyInputReseed: decodeHexString(c, "28bcc2459af2ceb72c247ac632712536771db073250500e9269887943189a45e"),
		expected:           decodeHexString(c, "cc927c7128f824f830065c8f2449ea0e25d4fa30dc584dc88b7d9c07ba32bdf42692dbbd12f035ae7b11ddb8544afc06cc61dac1dd8955c74403741d4f156f0ba8189d6b53d7a2df9807a40584e78c3beb6350ed0b9f82858f91b2b01818abe1008ef2047ee42be7a226db73d1369502d1f3e072dff5bb405547272a87824037aa20c049024858d11e5480b8f01c8c0353466122422b81ca2cf33056cd5e675fde7d939ee4467d78feeaf5f0f90f6b4c4d5f4bb8697dab649a0b54de4cbb0b34"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_10(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "53b63ad6ff8aa2044854265e5047902c78f165649d3b536a1290fcdf5fde8422"),
		nonce:              decodeHexString(c, "4d88360602217dfe09caabd9e63bd5a4"),
		personalization:    decodeHexString(c, "343b29bd94eb479f2cc41eac4b30d6e9b6872688c7016db38351a40f1ac78c94"),
		entropyInputReseed: decodeHexString(c, "76fa9ff74422d02841d712c14f987a60ce50b13fdf4ce0a65950c619eaba422a"),
		expected:           decodeHexString(c, "40f8d44a94ed7101e8ca967d008d639db9dac5d7b10f35e46c25790d38fa52ba09f36ac01c2352d581b2a7d2656f227d27fb0072cbef56d6ca0544d04e3c5e6d129aaa40bb3c5e8e8e7fd0ef3f07e6192b131c0be72f98e96c9ad23284f64cf1eb0a74f2f79a2ad84883041f99cf063a11129928d15293895e02fc52174b644de853a30c0e98295edcc323e13d4ab58ca17bc9ea4e47f6cf70cf18fdffd703854180fb82cfe48a6074e2f324aaac64712f0f56bf9c91d75bb448a4360e42d6bf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_11(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "a04425c9f86cb07606f5b78ed6a7ecd05b0733006000ed09f79503a914c664ca"),
		nonce:              decodeHexString(c, "19bf5b20804b21a1c079eeb615e233b3"),
		personalization:    decodeHexString(c, "0f33174333b68fe84a6c13ff678c3d2ff12203e25270796d703ecca03afea4b1"),
		entropyInputReseed: decodeHexString(c, "bdae4f8e1eddb933250a98f6088ef7518a6c36d0d09407e8390d8e9c5e936fd7"),
		expected:           decodeHexString(c, "c9e8bf5226f4240006efedf239f94d3bc69c0f5fbea4fa816e2687d08e8c874d20fbb357a487c4551d759fb3c4f57874c550e9e97e5914bfebbafe054bf8bec2388e22360599a0bdb307f0ff1bdaaf5b20f5901daa39c08dccf7891155ec8cdd7d8c1a09ec33cb30ea570af200edc0b203be0b2a7d208c8dff28cc1a4fcf59a98dd0bb9f361700590b1f9a5c549fb3a431a1a24caf616d46d6b33c935a84ef5e1d154c1c0c2a148ea4aa0a71ca4d71e011732427246d0358451e7846cba65330"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_12(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "a2961f9ef35505ecacf3aab4d6812d7b0741f135cc2608027388d9ff318cce6e"),
		nonce:              decodeHexString(c, "3ce148d94cd0ed5864c103a248752847"),
		personalization:    decodeHexString(c, "7e246b890c9596c88f84d7f2a69001f42b0108f0fa0ee6c739393662bef54e7f"),
		entropyInputReseed: decodeHexString(c, "c7c6950a2aed9d78805965e142cab7fd992a543897ee0d229c089c892035d2a8"),
		expected:           decodeHexString(c, "d2a5a80c490c2cce9eed001ab71b8029a49c187d56017b3b6c0aba2ab93ca90b1a3c5d96bb6dc2813d944e9aa92c922c2821344482a0fcfcba854e15c90ca1f6fa747decef1025f137a53efda2a50537e7b084d53fc904d26af47cb1501a88eccd6b194f2b0dc9b95e55e5913e935fe29190ddfb99aaf8608c8cc1aa2c87bf8a945bd186bd38c79778959c3e81a56deb0fce1c9b75f1ba942fbc0f8237eb3fbf65d0214a60294899556c8714987191314751350382577eb01710fbaaedd96d2f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_13(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "bd976651fa9853af723dd803e238af32276f62ed43dd23e7bd880a318e654b0b"),
		nonce:              decodeHexString(c, "8af845903fc95cfa56488e76cf0a8f72"),
		personalization:    decodeHexString(c, "281e41f0ed7bc9a4a01030a16d9ec0dc03da13f3151e5367b7de6e30fd66d564"),
		entropyInputReseed: decodeHexString(c, "78f11c2c4d55836cc16742fff4125fbb28017203c3ba6be48a9748b366e73430"),
		expected:           decodeHexString(c, "367ddf9a683014b0accb42381d90079143a785f780493a51b7ed84e5d6f3922168dc2149783ef8ca8a0652fb1220fb95abe323a6415bb7a81dccc3389181e0154236c85a22998b764204208d034f2f2a9e4761c1d612425af3a34cd0cc5491299deaffd02e0ba6990a2485238962ab541f6baf36a05967f28e85c3200246cd9969fbcc6a52cfcf3fa281e5b128fdc7d31534a0885fd839d4721f018a8ca6a60afb144f6d4b50604a374c605865d255c228bf6bc232901caa003659b458659da3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed50_SHA384_14(c *C) {
	s.testHashAfterReseed50_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "3fa9eff4d04ecbdb062aa91143d695a3c5a2cbee1ffba0c560c71975017c5388"),
		nonce:              decodeHexString(c, "1675d87a212fb4a151682f6324d2b795"),
		personalization:    decodeHexString(c, "e9cdcdaf950e9974813d9390d1780e5c2e45b6516125d7c272cf2428891c8c23"),
		entropyInputReseed: decodeHexString(c, "ee28792109b38e65161f669b438e699834eb511254e117ac59d7de5ce0f719cb"),
		expected:           decodeHexString(c, "b8e0833e91c7ce17868882fec5de47dcf7217c2e00096f3afbd176ac0be18c2638dceb052fac4b75e230ab0e6aabba90612521f2bc135db40415aaf49a6589be6d96d8b7fce90aa131b16cdba0332ab8be0bffab0607e314f905f721ba134d1dafaec8435d5e5ad95fe31a2f915b817f17d2ce034cf06c5cd1311428a6682febbbe90d7ef6d2888a8507f6fa81de6fb72f0aef79bfce77696dc5766f55fe1fae70085416724f16f3691ee599946a1aea600475f671957ac0ff332fcc29df708f"),
	})
}

func (s *drbgSuite) testHashAfterReseed52_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_0(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ab3d8163871b68221c4155e985b3b910c6c93c9d0c50cd9b86ff41f2e4823a2f"),
		nonce:              decodeHexString(c, "c683822011529215473a41582069ff93"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "243b9438be5b3c46c7becfd1ae4bc6b5c4f18b367faa09e6105ab170eb86fdf7"),
		expected:           decodeHexString(c, "ee1f37b9f91d7a9758eb74cef2737a4030b2834ad23bd61bb7404339c764e13adc946a511ef967fc886026f1aee01443dea433e762943384c269f0fc280c9a925751ada1e96211b80be0f3b99b7efd74eaf7b7f021b4fd9a68c166c02a21b8b15fb4469c108a697aa125cda2f274cdb77cd0b4d39078a58f32d3aeb821262ea177dd7af81da5ebc2c3b716a1688bff4ac16d7997d7abfa6ef3095f76ecf272de5efe167c4db08dd3c5d8390c5aab348e8caf136cd1953a0123dcbf9915fab300"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_1(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "15b1d7bd80a10dac21dbacb9f0640e077cf4c6cbe4776f071f3c70f9c0e73f64"),
		nonce:              decodeHexString(c, "425bb11fe75ac98d8d20ebb2d0d69ef5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bc0aac35731dcd624d9b45d23cb0428f9b447ae3723001ca794e139dab593b66"),
		expected:           decodeHexString(c, "3107eb3851ab842fe68b86ed7fae779a1365cf312c73754a4807c82d4ac79b80e5033709eefa9a748ba42d22d98b84d7b3ef6e357c2b9322dd84d2a8974f1a21ed863ef8295a992dfac4663f58bd273680663f7ec8f886ef6365b17fec8a3da20c3364d4554662244f190452e7f7fa93615d13e7544cdf6c5ca5dfb2fc53349ec1752c052aaed9490f4fef6f96627af4f84a97df763301142326dd154d848c461ec1eb65bbda7f9da55edb8e4a65deac3340907a82f773e09ec1b0d74a3d1716"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_2(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "98724e73a444a784718d46c65d1acc69e3e8d36ef37199ddf62b3e67cbad9b1d"),
		nonce:              decodeHexString(c, "068bdc84c45f0ce27ef1e5f321806466"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9ed202e0f270239d75f867420fff3a1df07a4b577d5cb5702bf5c65b067cd33e"),
		expected:           decodeHexString(c, "a22b017e918b30d2856c2682bb82d984a2f69168c05fa9b8bbaba58fac7adfa3b3b4229a12c64f3e7a8c87ca0afbae24487ea294b87046c071cd0ca6d683f6931bc30c6bf33833d18f5bf9c3594ebc4c8bdd439c8347106422bc3edf3d28a44190635de5ef48970b8dec15e14821c6e29188ec116c4fd0b637eb259619b13419d4482cbc2f3d830f3454fa109660d22067ee0f15daaeeac48a107be1149c75ea50d38e18d027cd38fba3a50c28956fdc80c8a5d9e9d08132d75539418a3e90a5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_3(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "e95097c235ece37488580696df624d04690f4124bb20c78480a24061125f0caf"),
		nonce:              decodeHexString(c, "31068dbe4458086300d2394c785857f7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e54ee3502ab5faf6c88a1691d37322897e65d252a375777ac092179e8400c1bc"),
		expected:           decodeHexString(c, "4f26d14e8a1a7ee72677ae42f65b1dba0d325f07563787f2ce0785f911baa14d474d05f7d5a97bb4b2932f887361e369368ce111665e5bc5a4cfb2f210057fb54dd785f16e6b989a8dce4ffea508cc56f00fa1685223fbfd59955a2f73efcc298a313bc5e5072047cd0457d9ed7470f084aba7efa3e7af8d7beefe68f4f85336664456a2dec8d7d1b7db1c7e7c0b8c46761ea2f6257469c5e5135f7109485fdf22a24c2dee3821133d0a7335a86c67ee06cc0c449599fc7f60e7d9dd17356983"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_4(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b24b95a40d978e6f663bbfaa5fc4e612fc0fc814df4f014cbcaaabf6d41e62ca"),
		nonce:              decodeHexString(c, "bd9608decd1a97f2c1a31ece04fd79f0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "adf1e5083394ee24214b5e3f104c28e795018d2eca64cf8675174bd3369da3f2"),
		expected:           decodeHexString(c, "803b0338c4f820199031cdd43015563eeb9b0363559cc18ab1354683782157f00199b2712400167fe0789824c03c58d3f3d022e1757416144b10f9b74309e8bb40b668ab6fd50ae2f34175480b2899ee7474505cf8872025df1b9144f95a2b22db112723b50365097f63db97b5d36790ab5f92c7100f2555197343a4ca00ae5ce3bf582a5bfd302be7224eaf97274accb30f2dee7bfd3f48ac7fa1ee29461d94e3fde58801af4d7a55662129daea09bbd8d6786838a0c5ea6cd805e6aa2f7767"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_5(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "76358dbc9b5373a54838f436136d91b7665844c486b3887d70f18f7e1f08170d"),
		nonce:              decodeHexString(c, "8eb70710ace7ac6a2b3e0439e28bedac"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bfabfa85c9f7be70a8fe974cdb8b2cb3c1b35c194e0cf13436e2e96750310567"),
		expected:           decodeHexString(c, "b67e7c996b8d7d8481d4cbc0fcb220a13f84e2efea1638e8ae8653c71cceabfd73a1713006a0cb2876272174675124388bc61f254af12cbf9ef4725efb2c7acadfa63587d5af2de82759fc5d1789fb7f0a67a438f7ab3adc62b8b16ef32a35b347374e7340bc82b12208e2fac06a1d18ac5a39d5a4873d2693a762b12fd9cd81d8fa2378f2139f54f86729893366f27179c428e3ea9fdc98cc47673f9d05fc4018deca1d2353a37301a04d70273f686a2b5a5f66a7b56a59526912c131499b19"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_6(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c79fb5b0de8af70355d97226bf6b6674c94e27f49c565229ffb5cdec9f4ebb3b"),
		nonce:              decodeHexString(c, "4f857f09e3b943d8440c477c9d63b3bb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8ac927beb9d3394d9114bb882889f5942c363b45c96fa22e04970e196c3f2a56"),
		expected:           decodeHexString(c, "790d100766b005226ea9c858c6f2349c26c3b3084df721a13e953be9f474919447a719043fe7f43b77774f7532303d91e65756eb9f995514de4de0ece3a7a59de7017d611f498112c39d15be6a3d3fd4f607093e2d998e7c8183f27b0b7455926bd291ca5a5c58108e3145d1f90f52ae0a0f99c77806d10a3e02893022766b369bdbca5cce989aacfb1386064c6091edc81921e74edd2eaa0979123252c2e76998be4d89a5a22fb1bd84417a324631b69e22ac93d6c6e043a6ead3d403998a93"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_7(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f2bae9df47486bddd728b61ec70fbf20894e50c3fc45e7c74cf61924cb0f455d"),
		nonce:              decodeHexString(c, "94e84685d8f488053fba7b31fae6fc9b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d3c19f0828ea11b05a2195ac82f2f9e217f9118569044cffb654a909a09822df"),
		expected:           decodeHexString(c, "d671194ddf88ef6a6f3216040e35a00447477a843523d03826df4f6697350551e5b5031eed1841d6ddc1e78959667e486e3a868dd5a945851f010ec1c3b07ae798545b688d48320b17714d3664ef36b619ac0e64e5cc9fa9df11ea5f4ba61dda8ffabe94731e64911c8df950e804e3367709d4c46b36fce5e2b9d0c78e0c89d98d5c004c24faefed467f4f8994d7dd7ad4e76498a2a68824a7413787797b0301c8d023651d04d338128dea6fb919fb3d404336a595a3e1e01bb6375bda6c891f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_8(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "5f64ea30495b5f8c9868510facffd0253da151eba846774af5a68c1d4df48fa4"),
		nonce:              decodeHexString(c, "c324921486f5a566af006aa2dff2a1f2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3ba35cc25940b0ff20a4b6e4f37e0dd61a0b95b97b180b73c902d69effc4dbf9"),
		expected:           decodeHexString(c, "56fe310743d26a7530fe7823e73dd68d7fd02c78f787575f237ae041133a01297237c42cfbc73dcbe4ad4583d608724585e1b923fc941a13af34899ab9ce30c15342569ff08385de1aed1c335ac42dc2dee0aa2613e738764c24666c68884c96a7ca477001d7c7f9892a4dee040c93e71016e103218dbb5a3bbb194f645a6d6f5435430e34fb221cd42e2f892969da477577caa6da7d2b47455870a4d4d222ced7764a8f129d6b5b7982f845be6d9172ccdd1462e8d3dd952cf5036ba74f9028"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_9(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "eb141ec5ab0583f39e69913b6ad46aae6245598ff5756824428e8b6a8f240a58"),
		nonce:              decodeHexString(c, "1953c8e149e55d16da1a920252fd9b46"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fac96829ce7385c36effd0bb564326bd41803bf361bf54486de0233d36e58a56"),
		expected:           decodeHexString(c, "be5447fcd3f98dd36e9689ed63f5f33fa2d6883f4339ecf86fc0a6bcddf1d650b4c97aa993b5958e948fc8ff4598c246cbac68290000d771e7cb61c06408651a8fada1a2130d268317eb16272598a74baf7cb10d3f46cadb7acb89d42e9d28ca2664eb266f9e7b1bab9ca9b91ed853870c613aba8ef4884b4f97f09b9a460dad8857f475dd01e3c02a8207ede8497a5c35c489877f8f2af9fe84ad2e808407c02dd0c6352c8b5a75d96c4aa5d8a713f86b61ce3cf22787ae1b891a88cd28c4c8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_10(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "93bacbcf7b016994c0777b911bb6652339f1a1f46b209c4bdbbab5abbdada6f2"),
		nonce:              decodeHexString(c, "b9fe65060323440e4b95ed9d1b8a11fe"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cd078df0558a25b3d51c7549ea075fb9ac39ede81e29819cfd20e620eb8d28d1"),
		expected:           decodeHexString(c, "1b9c30361f8382939f7ffa825d532042d79d8d30d1af9f8a852dce52778d832c3e9bfadfb9e98446d5e90eeae03e71f24944daac16f4da1c3e05fbb567eea2acf5fda48d7f8fd1302253fc32712da08a92a9be756950ae111e31ebc66828f551c09a0339e16491441fa478997c98172333238285c2aa2344b1dac9e0daa2deb6cecff4340f2c70d12e50e882831c332900879a5c69fe73b5cc1dc2c12960873c749f43f37d6aa873b74c390f66e04f1a0998f0b3233d645cc3039b967338d2a6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_11(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "baebbfb38e8019ee1da0665e37fd42419c84b5f42624f4a578247aa8f8b89024"),
		nonce:              decodeHexString(c, "72f0a9d161f1c72b0d10709c189be8d9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9dea855944b834dd7feb8831955bc16d3a4ae3ae218b8624195d7d7dd1763b59"),
		expected:           decodeHexString(c, "659ce24cbf6cac220774a87a82a708463f8b8ff1f8d7d4976439e40295127651ddd18957904fbb6e34cf69720155705cba099a0478f2b77c336a71efd3d9fb85b5a54a3e398b1e9e93526cf3f905787b4e08831c4f673f0aeb2eb9c05ca29375037943df14009d2223eb83efbe0238e5317167067c37e35e5a95dfd32db0289a6eabeab8dcd0552a65db08694ac508fc32df627e863a9d72c62a6308e4e911f8aa03e5fe5a7177782d1bde17f004ce2e00ead7878a3482803c879fd410c5c6c5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_12(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "60197716b71d7a38873329c8f8dcd1a0767b7964d1bbfa0e572cd43d4e05b2bd"),
		nonce:              decodeHexString(c, "e0e01f861ee027758d5122e26de8dffc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e1e1a24cb191f866cb02a963bf887b3200c979943480360db5ce4ecf7ede875a"),
		expected:           decodeHexString(c, "6e0b88137dbb2a2ef454de144eec7db82582b8698b9292c941cb31d11a563369a8effcb6ce70d91f26194ad0a4688f731097f03ef17296cb3853410050b5cb449e237b896ab228a6f462a072bdd4da72eb6423cc406676809322209f6d3bed9f37de6331910a55183a5d5362eeb62384d73599d7bd2a1abb10c997c9d119bf6ade3e4eb0d92057ca4b2760230b16f6948bcba51e46a5a24950e6a191265c14115c0741201e1c1ad22d71aa36fd1f1b57fc67950259702382af5a48dc7eff59e5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_13(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f8f9930e66784aab9980b63de1a63eacdbfb30ef1977da48a738d3cfa86153c2"),
		nonce:              decodeHexString(c, "191c9abee5dafca70921e07c2fc4d037"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2b2456016b42be416fbf5fc73128a0a10ea03aa82c4c92102f946743ac366039"),
		expected:           decodeHexString(c, "020b841cc0e11842c9c2491fbfdc0cc5abf0b66ac08370ace918aa6fefaa64166d3b11aa9ccec4730939c6b61519ab0e2098f92302f99cfdb10e9f43f50994068d23b8a7ef12333b97fee53db69e5ef7e1300600642c5c709f41eaa4dc0c85a46e92fc26e9bd8e97c0ccdcb5aa9dc384a7315d1c850106d26f0d5621238b4dd0ac0de6bb8678afa19ffa93a3753357b9806a1dba071ab9c70ad7c2b31adfd479335379fc1421548616e8329475414e3ebd4a898a05cd5bad1d454b0bc0950007"),
	})
}

func (s *drbgSuite) TestHashAfterReseed52_SHA384_14(c *C) {
	s.testHashAfterReseed52_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7c92d53da9f31059138bafb9c441713967c6ba850fcd7569ef8ed9018634219f"),
		nonce:              decodeHexString(c, "cac3fe3315ccf52fd6b9067bf1999df9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7f720e038d39ab0bc9a796af729fb664dc1803ce364721a21e57a2ac889498a5"),
		expected:           decodeHexString(c, "fbaecafc7ad92943d5ec09cad51ca2e566afca3967f717c4f4708c540f13c92acd67c7b5a71889b60662d032c4c814c7db17f54c985d30b672230e4081f9b9127bb05017f321994a050a1f0fdad28246449175940aac21cdc8f536fcb41a673088c5e5dfbf4aef8df1fd90f6c039edb880c28dcbb336fc32c61be46c8884b68d14711c6a8784b6db6bbb1c2e9ec03e6497b73bc4cf3983edb31fbe559016ef239585dbb663356a1e3506974d11b599cc7b7b21796381a074748512558c44495e"),
	})
}

func (s *drbgSuite) testHashAfterReseed54_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_0(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4ca74b8a44a7b48da3dea78194ea7a940538dde8eb7d76a1252189da63defc5a"),
		nonce:              decodeHexString(c, "ca78eda4bc14c38cdd717949ceea3785"),
		personalization:    decodeHexString(c, "3d9510a181c8f29e71e5bd43819dc50cfd3df46acafdf7b19fe072d1496c7bd2"),
		entropyInputReseed: decodeHexString(c, "4045467cd567fa0e18767f830ed20fc9083ae4ed3256d1f8aefd7aa941bb5a43"),
		expected:           decodeHexString(c, "1e1402bcb4ed4b48ba3a8c60e1fa99b75ad3c58d855892096c2801bed53b129a72e78996eef894a59790c038760ecad8879eb720d5e57a68077abdf1d1e53f6ad15559789f753386822ad2a2a43848061b559179c2a01b97b3e915808bb59e8a2e2447c04144aa3b5b4d0227b81babeda54427a2fbb83675fc7b4530a23b3084b96a573ce3fb4323f0147012a7d370442403429793fee435842197b13bca95b377929a0400f8d129defc66fdda70b25a784747d117b25f601150e0a267e793fb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_1(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f6972a26b29de047c43345a76bc3753577e1ac9417933722847dbd89a6b4bb6d"),
		nonce:              decodeHexString(c, "9362bc1723af097c8c598be8110b8a42"),
		personalization:    decodeHexString(c, "a102e4fd242498c66922a35f933f7d528b167695b18d67cdc10aed53cbc7aadd"),
		entropyInputReseed: decodeHexString(c, "86410bfc8b1349c0cfd4dd555631811fc4f2dd546131a506489252fdc55ae94b"),
		expected:           decodeHexString(c, "4f5138b34f8b21227fc83de2491fdd772a164a09de7eed7baa1dc424f124be713a47aca03f2c0c05af918bd6ce8d3e2e022e6d103da3ed72a258f41affbe68ea3b9786f920c794dd6624381a0422f85a30c53d33bc388708686430c75ec4f063f862061380e7e12e0778d9d8587b193d2a8e487b2c27cbba741e6facfb9e2e8443076220ec3c7f9ad58116d8360d3d3e204b0730f57b615bc971239489baf03c41412cfe0fb5ab12339e92a2d03d8f0686a40fc38ef4959fa57666a2f72b236c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_2(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f36dd7a8a4b77c22c44bc7bd2efee79386c2716582d300a259ea3e276faa8bd2"),
		nonce:              decodeHexString(c, "481f1f0de3f33a1ae9e7faa5bfcf6ec1"),
		personalization:    decodeHexString(c, "62442c1a6824cb7aa4b8abf9c702d14f631c50707e6281f2f549a6c8f2cc1253"),
		entropyInputReseed: decodeHexString(c, "d486f001ed1c6f526da533de71219ca444ad5abf473786e84942e90055d4f388"),
		expected:           decodeHexString(c, "56e924b71f6baef5a14bdabeb1a1344d542f78b3b471e06e70910f93132298b6cf890ab43e37526a4db95a03fd0265e099b15ca7edfd15355f07633c342a5a2ab0c129121aff32d29ca42f717627fbedec866c3a72695143572b3d454b4fd91d6bfe37667c3c227c4d9b84ba2fb8c5800cb9a3eda05764f76f9e8366d6295609956144f4f06e8600f07c9927eb9f9ccda20c1d1a55c9b5b73c7e168151d9ac1fbb34ccde83aceaa73d24d5b3b3a70f24250767760d18e30a91ff7628ad2c6db7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_3(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "3e0ca4b057ebf647659277a056f13558ff1c0741321ff71e12fd18082eaac791"),
		nonce:              decodeHexString(c, "4157d1aa482c35b7e9ba73fa7985eba2"),
		personalization:    decodeHexString(c, "ef23c6a748530feda1de2cfc32ff061ae31d898c399d75f0463babfc0de9a155"),
		entropyInputReseed: decodeHexString(c, "cf4a74f0c3918c2f273e18034bdd63d0df8a22f14b61474829494cf9c4896285"),
		expected:           decodeHexString(c, "200370203d7a3e4afd9e0ae02f066af6d1bbfe3c84f68a0b3e3175deb400438ff1256b98759cffde3db63dbc2ebb6a51995924ff9754ff9b16e73790228705f71889d808af418eaa1ec9f435bbe313f017574d54146a99c8981071d7e1a42e501a149de20e3942f09f9787666c00ab2cde33930067f4db24673bfd63d499b828f6d0e5984464af08ef2e81c42050b6cea3192b775733c566716033261fa889860994f92ba16984263910cb109c3f202a09a2acbaa70737b6355e865eefdcc7cb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_4(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7f47f28813061e3e4f132237e6a908f65b5b1620293a2531c8ea1c44f2c6ca62"),
		nonce:              decodeHexString(c, "b41c4c21da4d1b67e1809c9a6eb6756d"),
		personalization:    decodeHexString(c, "466ab1ce90fc84f6ca57020530bebad84d4594ed5ac7cf084e9ea38d6d01db1e"),
		entropyInputReseed: decodeHexString(c, "67caccf5be8eb8d9eba2a8cc4865ac43947d5466e0a32613fdb9b2c34ae4746d"),
		expected:           decodeHexString(c, "9aca27f632590923e07ef29588c96993eb8bf8c7c1f9aad8af3b2398b67cdacb3132dfc692a147c5dd3ca619e12ca2223560759309d716d0a7ae24f9cab9d3e08f88e2746349850c0ee091d37470f95757ec65cae822e043a57d637487d553e3dcf015c8da16590f2825f9d7162654be5720ecca288ee68efc93e97d0cc660760e3e7db54cded92d0fd6c616dfebc36de0b0ff1f32c713a2c12274243b3eb55dc4a71298f6e5f98f3e4c3a6b498a39911551b992b10c87204020e8cc0cda88b9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_5(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b49ceb0631fae04d3d0c0b21dd4a8b02f63add7b0dc663b4956c8cbdd8976579"),
		nonce:              decodeHexString(c, "b672f475e57f348e40cc33e7a94d9821"),
		personalization:    decodeHexString(c, "efeb44ebdfee7b5bef20e3211ebcf9bae5808f1a6424c069398573eaf341bc78"),
		entropyInputReseed: decodeHexString(c, "0b5359760923fded3866a1304e623b2aaaad8c9eea3d8f6811648646dcc993b7"),
		expected:           decodeHexString(c, "59777afa22f50a3fb05f9e8ffd891ecef8e7e5f9b2a7a74dff9fcbf0274ecb1470de44c36a34b4a04867da2e2609220de0b7163239c36b8e4fe2927afd9c5afd5a11e0dbc43dcfffce825df47b6adf4e3aa3a3435a880b661a8ceadfecb9825f7d6b974062cf97d3d6cbfefe77d3ac276685c013e656d72c82e9263a97fc670e0575c90c4890fcecf6585b4e3f7cf9e23212a0be35d53b62a37dbfe8db7c2a8fdc17d41d5f8deeca4a2597d95f82018a37ff7e9ef4f969c38b2072b152411634"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_6(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "40bc39c172dddef200e2b3cd4c7bc570b1d5516aaa64c062b13277160632bb2f"),
		nonce:              decodeHexString(c, "e7cb4974a87e9d51e4886e3c1605094b"),
		personalization:    decodeHexString(c, "b1619dbdc4ab1e714c815104254ac0dd9c891335ae45c7032c5967e3334bb1b5"),
		entropyInputReseed: decodeHexString(c, "2cb283901722eaafe74980c91ff3752e02e4f53e6d54c67271278d576d954f8a"),
		expected:           decodeHexString(c, "6fc4893819d690fdd13c16c3f93f83f03c1df88a1cd758a48a03de95790e83dd947029de34ae1989057a39baff01fd0f308abbc05291432ae9636a687b88505336fe7d093ab08a88b403de6f80dcaad25e9e5cdabd20fc76974b598117dcf571bdb528c4caa0cbf3b6437a04450e79dc59868084381c945fb8ecee6eb38aaba39c8a43bd7835265ba448eb7cce1cd4a0d6177357a54e1ebd5debe1dd091f26bcb060fd43dd3687e36acfa5f750af35fc1b98b93cf4bea13e3d2bf37e49eea8b8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_7(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "5e03c2a2d9c5bb9b6bbb0f650e9aac1e665588a3582f20802dc2dd3356506e27"),
		nonce:              decodeHexString(c, "32a6ce996feee3bcc191311cdd072096"),
		personalization:    decodeHexString(c, "fa4480e80e0dd8d7105e72587be400d16d18b1d1dedce2dbe6a9ba74a2bcd22b"),
		entropyInputReseed: decodeHexString(c, "3d24c75c159cbb04de0ecde112ce6997a72b23e971adf3f60400b31f950fd71e"),
		expected:           decodeHexString(c, "d9e412e6fcbbbd28722778f0fe3b14758db9d0138a05663d8e07b3f176ea391fef9e3d155c5eb2f60fdccbd0938f27b706e0fd5c64043f3f6b2fd5691844d48e6eae540434c3135d81d721af7ba817d2680d35b0c21556b872541a5f8cef979e71f7b2eca0a0879b5a65ea4da83a7c64fc0fc46131489668c5fb118337f86ff72eeeb7390223bf6e290d4329683e56e4d38c60da747841621ed9f5c02e789d9378fd3863bd5209352596603882b9f1357ac535528328ab006f18a56d4ac94c90"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_8(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7362e7b3abc42def1852cd25c3576d22a928ae9157f05ca514227225521c1161"),
		nonce:              decodeHexString(c, "f0bcd040f55c36143ccfbc0a0c483efb"),
		personalization:    decodeHexString(c, "a04eeba1e20694f2b9cc691b4ce128af818112eaa57ca68c11a80180f7c896bb"),
		entropyInputReseed: decodeHexString(c, "d03db56344cce151e1c3aea03dcfa2647cce657390a77e1b92840d43cb0f7cdb"),
		expected:           decodeHexString(c, "7937f5dfa1e73a0cba064d947e3aeebba3497266cd9ae498018c92015873b27c4cd1138ecfd6c6ccf44a1a4ab818e9519e11d7d3e1031cfa46ac7dfd3687ed544c814b55f0ab35760556c050b2083f094b8c08352f17b27be45657edca5276b0d1fcd81e576710c9aec84ae0ebd2a69eca01c12e5c847353089c9af9f737a9a8ded8e0b0f3871a8060dd04372ba39e9dddcc07b5ca13d7469d095eb8c19dfc6771d1bb181d71db21cae1817bec36e9f97e23861912a38c822d432c94c6cdd26f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_9(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "803be39f89c6300061c589bda41c0533dcc5089b07cf7b1e5467bfb7a6d94b43"),
		nonce:              decodeHexString(c, "8d79d1d17aa204acf93b5e487b4bc1f2"),
		personalization:    decodeHexString(c, "baa3d2410b8e31cc1a8c2de6044c3fe7be2b69474c79333aa044983f37b3755a"),
		entropyInputReseed: decodeHexString(c, "a672f57111a579cee411365b631899f8ea4242bf579e8cf39b2a2aa32963b6ee"),
		expected:           decodeHexString(c, "0362f1243a706f3520ed26450e3cb1b69cdb4ef49601bd6990177a4197ad12b36cb48e4358bc1f085f72959661a28d8a8d9dd41dee93c38a99adac02e4ae517660df9ea00d6c92647a3684134abef8331e338e123ec4998621dd51c06f7a36373ee1251b411ec1b881200c8eae26bca333aa8ff59cfa368354bc9d23f371a1c3272a9fcc2593a6147ed13b73fe28ad906d3e1f48e70da937fa0f6e673aec0efff824d7136da4a1db463691af655042a416daeb34dfc9fbe4fe530f4f2424f8d8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_10(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "3e433738d587fb186783303c779ccefc8e1d15e2db882c6afd53fa86b89ff578"),
		nonce:              decodeHexString(c, "80946678a7f7fc5b11d2d59747fb7ce1"),
		personalization:    decodeHexString(c, "bf316564f0c6d1d68a8c7f92064c9d448e408c044775d95ea27063e61bc11b53"),
		entropyInputReseed: decodeHexString(c, "080affb45cd5fbd182501d23fca42c901c92b13d22d8446439762234fab80a0a"),
		expected:           decodeHexString(c, "8ac74adcbe5127759d57ae3f294465505d10a9d80cdbaf85c4273c01ac7820644d52dc9ef094c927ba5cb8e83d70bbff3d05afc469748bdc47fdb3977bd1a9209657d0a1df7950785aa023b48fc5597c8c073000f32f6d8e4f80561446e8b3906426856ac1c2bfab704ff07e3721420d6ef88b0296e1bfae7f33b3f785238021064355c0659b88bacc90e7dab0e2eaf99eb53900772ca298d49e9586b4c5630161802a192c82fbe2fd2f09b86ec533908160db71ec0ca1d9d9a23f3c072f7724"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_11(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "cac4707928097956b4cfc56c6a8b3769ee87b5258505710e0568c13defe2c4d8"),
		nonce:              decodeHexString(c, "a11277f7fbc6128976f7222b3fda435c"),
		personalization:    decodeHexString(c, "066b8009cac91a59d3460d3bdbb283345a4cd3261364193264d3dd59faba2c4c"),
		entropyInputReseed: decodeHexString(c, "175db3d767583c0f0f8e2ba0ca29346b9fa17645ee992f15da521116f8918dff"),
		expected:           decodeHexString(c, "995e5447709a9c21758d3de669ad4497dcb464e89847df78877132ce64e52c0d6e2055902cc59fb173511fd492ef64054a91bc066fcf0f9ad8a5838e84f8352b2a54091108ad7acd1da2efde652ac39afa1a018b3bda6283bb5201d2f40dec91562c57237b7369f46eac6cf76c366d5ced40413808060b0db338f836272d44dab4ac7d11aea9b9b7b7134c294d491cc6c6a6fb261914003e47b9ac8250758b17cb7171fb19c9d39c58dca41eec2b582246eb543bfa4f700e7bda4bb3c049c002"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_12(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9d6b91782698bbba1ad8da6e4c4310eb9b3160a3c52aa239eab1ad921135cb6f"),
		nonce:              decodeHexString(c, "ef7d91058bd213a3ad7f824c5af18b73"),
		personalization:    decodeHexString(c, "7a45719c6ab8c87e3a211509db52098e903e6e8e20741ba5e4a791ea19fd98ef"),
		entropyInputReseed: decodeHexString(c, "7a9c3b87583fb3f5aea4c0c139d77f56a7bb67c52e519b96082a120bf8621240"),
		expected:           decodeHexString(c, "4aaaf023241db7c1611374a5241bc66f3f0a7cc8fcaa35fee2a2c607ccce1c3578ef374b5547ada01f1a1ca709ee817ca22eddf35b25c22c82e111fa43d19c0f450b3161101a9cf57582a637966b14e1e86d60ee8115f5b7637b4c2c0b2b0026204cae931dc3ada6254c00f66653211bfe7c44bd65d087962d16ae7658b21756f63337cf050e8cabd5426edaf2ce81fa6ea0236629a481459ea718fdf8a7111bc769ee5ea0d8a5ef3c4159eb5398c2125e6d3aa6647c7727ce5e3a4bf8112179"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_13(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "0277f4f48f6cddff9481f6287a61960bbfcd36d54bbe5b0050fe7bc4f7f98a17"),
		nonce:              decodeHexString(c, "f39164861d05967de41c95dbc12ed2d3"),
		personalization:    decodeHexString(c, "b167d406b7d8625b0c6b545b8ede35012627d6d4607863cf663da82ccf940a45"),
		entropyInputReseed: decodeHexString(c, "187e535d675170c3e20a74bbee35e82d9f385d8bd03ea5126d5ea5424ef9eb51"),
		expected:           decodeHexString(c, "07df5deab86dad9564da00a05192dae58e057ff9a21aa147f3b8254e6cc2ec073f647610de413d37e2b6b64b1c8ddd96a0c06efb82044dd844e5eddcbf5d321e16587c4e8091953817bd9f1e135a0bddadf8cd34a26900ce4151b48edd8f84996f3d13a28af1844e64c30daa7b019ae8728bad2a8421a2ca021786ef8a49f03f2c003e95f47d1bee89a182e9dcc0c1b07b289e491f11cb016fb4a541b27d46a43e719fa83cbc4fa7c4c5edc81add01dd439aa152217133df5ed2e8e1b40b9d0d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed54_SHA384_14(c *C) {
	s.testHashAfterReseed54_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f939995aa6051217dfe6c80b3123c983669df4dfecfb413fa3db8b0de6d6d8d9"),
		nonce:              decodeHexString(c, "bf8fdab4bacef3c167bda56cd6602065"),
		personalization:    decodeHexString(c, "10f641187acad8d6a614da7b8045bb4e78519f1aa83dd06bbdc30cffb012c5cc"),
		entropyInputReseed: decodeHexString(c, "133c1c25aa0064f8a5290ed0c602b833d6d899143bb567605e1d8258494bdcff"),
		expected:           decodeHexString(c, "79b4d74df2c621eaadde86ee28ab351aff0030aaf36782681245bea134b1dc5cc1a963d712668b89fa6d67a3624f1ee205428e649bdcdeecb97ff131078583b4beb1ce139aa357a7ae9ede304b891d776cfa5191d1cdd6c3f32ee01082b54efd0202d4ad3120940f433067751ca7323ffdd2723971effa1e279ec7c331eafd277d0e5ce827244a5aab717e175475607281592c19d5be070c46307e0a3f85a0591098ceb2d54c5d529c3b66a7743b60af9c7bda9ef354b305d15be191c3df8a7a"),
	})
}

func (s *drbgSuite) testHashAfterReseed56_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_0(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "3a1525f7b44bda3a769db0132eef35b8f5ebc0e418f86b810891f4ba15929447"),
		nonce:              decodeHexString(c, "dd861c8849ab7737ba2bd9ec77274ed1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "79d68de6103a532946f7d585c97cdfbf8d48d3647ca86d4461f0d23c4c59c30f"),
		expected:           decodeHexString(c, "4ee1e00177f66662422ee7843b1292e350bb35e771010998d3ee6d54f820bd0cdf7d4f2fd3347814b6b39f98d518302a6dc929a2a3171b96cceaab8496097431776ae1a1b227280361ea3b65ab6b0f893e6d89ceaeb67a0a20f3b98501ff97a184db4a4a0004720ae928e1522d6d13d721174caeb6f2d08741d2ae8905e184253d7a98860925d85e52fc857da8c5ef504cd7922724f6c29e7149b1f5c244d1d287fea8e16eb4ad5c9df9bb7a6e214d05a720d112876e87435282143be237ffba"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_1(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "87abfe2b975293ed04d650b6159519a77303817a7dbc8e2095a270067bdd612b"),
		nonce:              decodeHexString(c, "c358ff1c67fefdfa03c586e33f812dd2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f90609fad8e3b9eb10dbb11740608567b14b8a5390b860c4419d14a83032f33e"),
		expected:           decodeHexString(c, "a57e746817d6e4081cd91d613439192b2725f42047ed1066bf9635480090ba9ab7c45356dc85612ec266776bb54d8ce1c1374383619f8f4c49569f228ee00ba2066db3b11fd3f95b55781485015556ea1c61d94da740b3938346a558a75e62d2a6c4673f05776f58f5973db357908c71aa2f12dc56fdfd2a9139d23a81d17b99ea90773f439229722777faf5775b062c05d20a0d46f28bc3242c7fc55a6ad3e8c70c6435fec8c30cfe8bc43fdc35882ba1319906f849ef532b176ce10094e53e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_2(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "722e75afc665d4e34e1d15209b69e85a062a9d853d82b5d9b7e70ba47668862b"),
		nonce:              decodeHexString(c, "59a97d2c6dcc1cb75c389cefdc67866b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4c2fa28afd4d036e06f381cb4adde29db272539930bc3ecbc9c7c1e29ea10653"),
		expected:           decodeHexString(c, "8f80ed11ce60a25e2484f4bcda192a70566ab88475fc8cc741cf996eb482062cce91e176052e4d1c367f0413f78906b6456dca8e46c1e516f4b903426496f6d3e2547d21c08ff69403380e12401d34fb09b0b5ef74406de44a8646cfcb7f90b016f536b1b547bcf9a23253904dd49a985c45cbb188dd746b49874ba202e0885048668230646f93fc4f5baab40ef1b0c2e9d6a457f315b9f3d1d9b5a6b9148384c74386b2f3138a058a6a0197376cc3cf50911c94935d218b138100f00377ef69"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_3(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "bd787bcbfca643a816badea5be543d408971aa836b5bcd979e52ec4603715160"),
		nonce:              decodeHexString(c, "d3f32bfab60f9c8bba0afec7709ac045"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "057cf8a4eed6f58d08a443c84e8a08b99438bfaa3ca308916dc13ecae64ae875"),
		expected:           decodeHexString(c, "c4a8ac17ec39686823865b08008d7599e72d28e54c2f35bca55144327b7cc5cf07941ff39699e6b595034ab53f5bcf7dc0318827fc3796419c5c4c80472b53260c11b4daced6107aa9d3fb828e5363f0b959d492d7695e20ebb57861d3a18d9e385162aad85c1733d2c7342d93fc9f2a118555627e89e20de2223a61fba0f09269e754e0573918506016b326e2badc7a69890bff9decefadcb9e8399c1674be02b642e9d0766ba30d52c6b69869fb3779f887e1278a7814bec295ac557a48287"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_4(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "74bc83bccea012367f7eae57355ed6720e05347230b001da967e57d4fb937493"),
		nonce:              decodeHexString(c, "f3191bbed8faf01c8ff27a47f3778e3b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d07989ab8932dde735ae78013920ceb54658e539ab81b376941bb79f4a93e0ff"),
		expected:           decodeHexString(c, "833d817dbba46cd9fd74836fb74e67dd8d1a023382caacc8b62f3d314d2075e2e675485003df137af149b338f9d7b4c0c40067d0ea626fed5764379c6d4fc562d7650fc77b0aa8486f4961d98bba03eae6e25830fb3852aae59f4aa02aed535fedb98e173c7e54060ebfe8c4a19cc76ec6ae56780d5f338261594d3499a05c543f5d9deada94f408d9ff0a33f635d0d35b78ac91793991491441d00b38f3c8b675ee60123853a6d6cf0ab97dfe3262509dbd94e26b104a5551630b147387f11e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_5(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "94999ef5db32769d1bdf777b83c3b6e96172dc87ad99658b6b5b46cbb0597984"),
		nonce:              decodeHexString(c, "3e18b75d2a203958bd346c9b99fd863a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "537d08ed111a377e853a1de7cf025a83416ba4b8a3f5ac533c01b1bafdeab9b0"),
		expected:           decodeHexString(c, "1797e8ab27181ed1566adbe45c541747d678168fbd72078b0d55c203517a14800b52d1159db147fe175627e5192c913c068c03734fe40588c39eb5371478ce51982fb7f8239f448b8fda022987053458811dabe7b7d88dc8d0f2b084a8afcb91fc87fe61780ecff8c827661f7dbf44429d369d6193a9dd25b3b41502f5f35c742f10979c1b553600c2ffd05024c8f82d54d687f6bbe775e57bcc0a147bb3385ee8f3ebb72e6804d0205d201ec0a8d297ff92810971d195e45de778e1e102a5bc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_6(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f2787e00c2f51244d9bc3782a440017c570f46c5d663d59121440ea7d3b9a4b6"),
		nonce:              decodeHexString(c, "37f56af47a98c8cf51a6083ef5a78360"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a348aec9b60f840ff0989bcdfe0d4f964b4455a9b61dc1349cd97870f1cd2c77"),
		expected:           decodeHexString(c, "3cc0c9205d4967946fabd557e6fe01188c142486e2c849e24d0b46e291691035b2277b00aaeb0b03e3954e8490456904f2bcf868c913ece4beadc44684e16e194db70bd64e1d3331ac97f8169b5bf89de5b7d17ce5386e358bc99480377b876b2cca518775efae2ce738bbe44e44d9fd38855343a76b6d3f47d6afdc6653037f2dce1cf12b57972f1b716be87e920716c01a51504733d607fe8f6aaf0683190da7a663d14fc7806d439449030b3bbbe31a43b662b436e69be650177291834405"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_7(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "199e1e386db6a147bbd111e26b435e424482f3579288e49ec4cd3c3ca5c8f610"),
		nonce:              decodeHexString(c, "658b4c4213030045181202c40b80fb84"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "40faae6a5f89c643db2213882f3d78743d4c7a2c82d9b457818ebaee770c79e2"),
		expected:           decodeHexString(c, "d7efacc64efa9b16061779a2e5242482972f56093c3704b2b878245664bc6ec25a4e8458838c675228bb9216c31557d3dc34f5d8122c37826b0eb6d49d849b9205b0b0630567074f4fbcc2afdf36b7e484c4e94bb1eb67944bd58ab9d51d67ed6f9d788ef2fa420505897a55a7d7f266e22ec22bf593271475343a79b411c0694c7d65f5a6687492332f66fd2dedc3abaab8745b33aeba7768ead8e37f016814491962918be3edf6a7770528ff8e031b1c428f8412d01a7526c9c4da630e47a9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_8(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "6d0121afb3ecfe5d8f5ab369690059ea22e389c3c917c9e3d11e43f028e84a7c"),
		nonce:              decodeHexString(c, "7a1dbcc31d667f4b0ede1be363ff590c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "60dddf34c1aec40e64a61ba8569a775b0ad16b1eb9734296341ef93464fbf4aa"),
		expected:           decodeHexString(c, "9cb4168ffd0c8581684034a69dfb926cee692ca862b50a32e8fbc61edc17121c56ccb4e476649b7ca430a985813566e33a6dae83492c6232fecdef213c7f88f260d4cc233a0f4df746a016a8b8d972160b49c5fa17d6df895c1abbb708eff472237ed5fc1c7663ae5275b2f075dd5fd3a8122c2a36b6838c315d851226f562f06eaf2451bed70536a9da6b03e65afddb189eadb9bb489d2ab30ed49eb176a1ab17c4f318595624875af39ce7ba93e3a339bec72dfbde726bc6983c6b6cdf5b57"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_9(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "fa457931cb2185a90b20567b46821ccde5ff2a0ad624e96ab7572a8cf4c31015"),
		nonce:              decodeHexString(c, "858e32ead686de7107a564198370fd41"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d301376719f4188d6e165d61ee2a1c15ed9687559b287a175240e5033a827f36"),
		expected:           decodeHexString(c, "1ff39eebc56f2be5ad2d497f717a99af2c01a12e95fc2aedda6e89f771e89f0fa101e9be7e524c2df4ca5f9ea58371464b8cd8646cdd0d173db564a929efe36bd9a8e0d590653c8a0dbe9f56badfd9ae580b0590c16b6e965298c06a1351d4a1108c0449f7284ca4f380605eb626303c9fccecd9458a5a5f0b9c21d9157b8788d6ec1a88840f2af135bab5d9c20b0be190867c9a5d462bb67e84b724e200aded1fc03428a7218445d7268d5141f3f9cea3e67fdaf12b9d2e8495348a5c66327b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_10(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "864a923f9893e7b95a6ebc54945cae4c86f1c137f5c152e5233f7d7721713ee5"),
		nonce:              decodeHexString(c, "5fe1b8c035a74dea52a2ceeb726f2b6d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1a3395c354ab1fbec94b921d94332782e1791683df587da5c9ea5d10db02a198"),
		expected:           decodeHexString(c, "5d7ae9c206dc91c2c639215a00e1e62203a3c61df5615abfd5de5d448fd44639cc5f422a17b443879c2ea5255b918abbe6c7f2b995e3e493fe859617125890fb03013b943959a12db4b59eb259ad2534b14163d4f2f3a18a29e8bf0aa02ddd7ef9f9e3eff2c9143b1f77072d862fd400d8451664344f70d191480e278360f516800414e2685a20374961605a5f82cf5d2c9eb69e5fbf69d9c6d8ca30208e700e4fcef8866d1495e59c8117d0c0d8195061dc4ccb052b57c190901034db9bbdd7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_11(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "1f257fd989a33158e14c52298647dbc4f1c155e2e36eb742d9ebe13985017b24"),
		nonce:              decodeHexString(c, "fbe848abea206ad6b4e4322ae36b1073"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7eee4e65db0e902519550d23ad29483a157a08aa925bafd84b890f3e1846b04c"),
		expected:           decodeHexString(c, "72552162572c361374a33ec92928e8944f54c479a19aefdcdc031f69f40fe5e19b51061c633a4cff1ca93e24077a9c61a64bb078fcff763a055d0225e73c8d14621ddb440b74ef1df5d521932d2da5d64616c91971202a8091e341cd391bce5e73ca140502a523a818af465f50f6a75a4e0242fb4362a196a2b90c4a6ed81faa1fe5a1bb558fdc911dda64b1e6fc5759bd13723a80c38831ce6f5331f9e022578cb87659f0cd22ea1e89933ea8a9c41bbefc75792b0d2a65b151feee4d60d930"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_12(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b2f0b9455505586124f018d818d230309335651993fc66a1a5f845f9f4d04096"),
		nonce:              decodeHexString(c, "40d7a9c35437512a30af23cb96f2964f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6448f042dcf859c0d2d5f62333b6cf5c59c109bf93b53977c2a34de736fbc1cb"),
		expected:           decodeHexString(c, "91f6e9a3b6311a2c1794f2910e522373225f25c33b71bbdc73e0f2374ae5e9724580b8467bd3bec2451512c1e108ecab60b130037127df4995739d6a6a2620c536939d3a4f9b6b9d1b31bb5f1798b71e8e00bc11444041e59d65a8fadbf874ccf059552e763857a2ebae7cdc0d8bcb537c09814434ce0add7cb58eb5671460fbd52b876b5fa297a173bbbd30d6c4bb6680539ba7fa4d987195507d49ab96d1c17958adb9b7a5f048dd7e29b12b94062ec6623614b2d55456914092512ee2399c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_13(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "50d09c1c3eccb57eb084cf4fc8aba0be5d9cb8b0fa5f87d3115576635176e7f5"),
		nonce:              decodeHexString(c, "31918b1dfa5b1ecf88a495239052e0f4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7cf3194025093ef80248b1fd70ae38025bdbce1805677aaf50491a57f4193934"),
		expected:           decodeHexString(c, "cc08b2a391573eeb7f77cb79435fdcf88fd88e82ad09cda33d2580ec9a11486de39ba210fa1326ab76390b8bd927458121c0784c3f9d947dbfa1fe227f0c5ac64b94d3839cfd9ca093b7c490051c187e72977fbcb3e0b248d870af3bdaa69ab022eab17c58a3256916d7b4033a183f44e94fd4e9586c52efd2df0e9db4487ff9a7664d668c4760128a2e2a22e81f590c7735db60161b01f7d791acef8fdd1f63e9d07f7bdda5f5a6cb2e7d9b1b9b405b09a5ae255a3a5e2526fdedf8b39b7637"),
	})
}

func (s *drbgSuite) TestHashAfterReseed56_SHA384_14(c *C) {
	s.testHashAfterReseed56_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "8b16394443b333bebf4020c3519d91b8a813a957a9d0767bcf9b459c73769466"),
		nonce:              decodeHexString(c, "b022bc3c5136a69d56ed554fdd4021e3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "746c7e786f324979c172baf2589aa30c29be16ffd10274c8c04bc98cbb29e262"),
		expected:           decodeHexString(c, "c126ca7138c07c3503018458c80186d15c70885c7551caa3699a8c168db06bf810896906be69085c3584d396cbbb69af58dc3ef8c50539bc2992946dc2127a8fd2d6f8b37c5afc4a7c9f247ec54462cf3c923df8e18c3562d41599c08e1c646f22b43563605e6475439815d269aea38c3a4222930f6139dca799a411a4de77b176aecd731d6a3f676db19bfed39834501e2dca4097a4dff426f579d97aee39c9f8e022cb91fc6276be84ba335f14918a345418a4574d04558d9b396a15e670f6"),
	})
}

func (s *drbgSuite) testHashAfterReseed58_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_0(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "c35a931bb84420990aead0112699d095fa68f129e5f52a1f83254905ee0b4a1b"),
		nonce:              decodeHexString(c, "2a3d564cf9b4ae726b4091c6da9fa539"),
		personalization:    decodeHexString(c, "09e2b98eedd3f54559d1ed6a4b1bac16118ee9aafa714549f4cf4db65b0f31c1"),
		entropyInputReseed: decodeHexString(c, "dfcedd71ed381189786a518b49a46201b9481943ac570cbf2886e09c0881de1d"),
		expected:           decodeHexString(c, "a499bb231a131ed24bf428e5c3c27abee48d9b843caf29cdcb3164f387f42192b1861f2c5fea7296d02e8e8c68589572ac601adcd2ad189cdf0f966a7dc0e6d9ce0480943789bd9b2cf23d34e9b42ab37a05f05f8c0a154db1ea426f44e5b1a28cc6e3b98258ca87669278a6202655c1c9ae035dda1acd23d7cc22ec47b3e233c2c2f2d5d085bede83af52e438547f4418656496b8b5ac5b49f87c7d708aa06056fa247369d0f73dd8a2483cb4fba957e68428b57fa77a15ec58c104f7c140c3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_1(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "563ef89707aad90f5fb6f87efbbaa7ef82128cb4b4ddc4430a3c5f215b60bcab"),
		nonce:              decodeHexString(c, "bbb95b0c75f1240d3d336c61090aca59"),
		personalization:    decodeHexString(c, "15b0fbda2a45338119e6e483ed39affd270993e9b668566601ec817272743ed4"),
		entropyInputReseed: decodeHexString(c, "52ae350f05abd50c6ee744375aa646a70cb9f2e4924e1fd527efba6eea26060d"),
		expected:           decodeHexString(c, "c94fb7f0f74003c0fc9e2c0326ee8772c0aada4efb2b6f4826b4328fb97c52b826bf3badb17c74c1bf1947247c277e545b9286172eef2dd511140d47e14f00f4356c2c79ea6d24e03ad9b9ea3d80a58b3a0452bca2d0d742fcb17da22af59732858c4e6d8c1b88a2da7bb04977b9ca635a129a4e9749d8eb6db4861cee6c0779db362c1385db37fbae294da30bee248e05f16995010acf76f713d01c01ef6a2a1d632223b7cd2e8dec2d79ae1ac59e348c19acabee134c71fa2a3b7e043d8567"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_2(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "090c5d79e687ba32824326845b9ef81935a8e7f285d6bfc5941cf0b44d10536a"),
		nonce:              decodeHexString(c, "5360862910c954a305363c66ebba3918"),
		personalization:    decodeHexString(c, "bd21783d867e3ec4673f18d723f2fa451a38dab23e3813139a2f70fc8225f746"),
		entropyInputReseed: decodeHexString(c, "656e51f0f9c48efef34682094c37bb33324b99c1522a7833229dc6994fea2405"),
		expected:           decodeHexString(c, "3643c99f4f8df301f24ae827de36023d603099ba722ac5397442c65d6fe9ae5c5e28388db3cc34b1975620b1ff171d248eef6c56ea2c0df488824893b47085862951159ac9da422c2534d86e79354cf3f5a271ec7876a9e08110e8a473411111e86c3eb6455d156a4601b5c4d089bc472f44e7134556a47d4dfe4025873d8500b3386bb35aac7f9c51bd8103eb9adda1dd25f14edd673f3217e8d3757441987129a5192c1fc31f550db3d0a0cda3a73549edda89cdf5a25883ba09d260fa9c8f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_3(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "72a207d4d0340d9cd6c06d7b26cc04f21f27518801c7b10ea3a0f6bf027546d6"),
		nonce:              decodeHexString(c, "827305d11f7e8b2e7d41f145318be6dd"),
		personalization:    decodeHexString(c, "c83b61ad0e91ba849da0f1fad9cc9169b3e1ee17b8b94c3a77e4842a8e39a1c6"),
		entropyInputReseed: decodeHexString(c, "0677aec1fed5c73dac024104aa2b9344eb85682b9c56259bf34e87428250e289"),
		expected:           decodeHexString(c, "98566e688f326e791bd7657ea7d5b3a46d46832942d0d9275b8136a4cfe0afaeaddefc8e62a645366085e085d57eda438c67914f6597771d984f5fa0450522c4adfa9cafae256e7055a47b5cd775c18ec71063b2480c8a79d708e64a6648824b0292bd02adc06e12ff2c5a996fa603da245a06cdf4e7be872c2653fb3c23e53957a27a46ade5d2712bbdfc73a93c853d9ee92caa7ff088f6fb5ea728133c84f950e908929b337b9c2de45f37a4561a9373c855f7ef8e97b07bd15d976f02e7c8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_4(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "779bec651145032bd0713c3aa9b0491efce1b98eb4345827943ea8933fd5f4ff"),
		nonce:              decodeHexString(c, "35f738f861e13f3d573d573df8726314"),
		personalization:    decodeHexString(c, "3e9c02f2dce4e9e6e0522a68f2a5c439a647b561cf89f5d556e37e43faa80654"),
		entropyInputReseed: decodeHexString(c, "f0bbaa37d08fcfdd87c42ec1b3518286ddc33914df079bf0bad46ba8375e1d87"),
		expected:           decodeHexString(c, "691ff0bc12a9496336447e7146e98c8f3d2e3c2743e81acc6e856fc41ba05039f04538288cebd9ac3666d86826c3e845dbcbf69e11b8527ed0327430fd3028c5b6e4057f3e207812806adb68322b56b0d0a71ec6881a6b4cffd8ee307152ed48e4d3105d2391abe7fa6620df3eb0d2dd27e7cd9647a954d6291ffaf8c8ac266ed5e3d147d68778c83cc205782b087257c27f4060b14323676ce0aed00637d6b62c06db06cbb5bb9434682b6ba34c8ed74059461dcafdb5b42f74a30fda467d51"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_5(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7fd67567bbb53862488ab13bc36891c63c2ea815611188a830b9e231dd179666"),
		nonce:              decodeHexString(c, "5ca7045318a3f7c263b057ea199a8472"),
		personalization:    decodeHexString(c, "8b25db16aae9365fefcd63c8977bd432a85dbf226adb775f6389dbd99fbeb46f"),
		entropyInputReseed: decodeHexString(c, "bf8f5b6276b089a0150110704a443f7b07d5bf5b3b37b252eb55e06ec7c51938"),
		expected:           decodeHexString(c, "e5e8c433cb7877eff22e1e6043cf43e92a4b60668628d51a9f9885112b03a160e97a8e876aa14e6085b1f6e5006ccf4be763ebfc3a6118dcbd9da6d886596d88d9d7565baa83bcbec08bda78d4e3ea985c42403c7dfcdff216e259eb9fac502e8fadd9167cd2e7a4df12ca69bf266e37f672f4ccff8bf250043e162a803339642f67f036547702abdf0b4adeb6ba6eb786a73901459d67b2f9ace9b9b21c8dbb67c14968353173db07412f86845e2c6e46f9d24ce693ccfce07fc0203cf21a2f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_6(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "be155b2a4546d0b0c20ce59b39b17908686d071cc32a9dfdd2fdbe95cdb1c624"),
		nonce:              decodeHexString(c, "ac7495cd72ed48c79c3d3aeefb7ab088"),
		personalization:    decodeHexString(c, "7303a9f8158b811ebb16767ba50f0e9da3d86b83346f57d75a3917fd495b94d8"),
		entropyInputReseed: decodeHexString(c, "e6f458747e3c5e5adfb1b9e38bbe585898f327537ca192df8f9ad514eb96238e"),
		expected:           decodeHexString(c, "d288809ca87f04f3539058a78c853cab3fa6747782ad8f2ae4386ce4f7a5444bf343bee039e88ab14bf0e47537b9070aa8e9455885953ff8508b04ed40eeab4636bf134f25e307db9869a99f147e9099c8f18f8611716079e7f7b6e42f3ff76c2b2161941b650df6ee2efbd3f87f9e1594ec81ffbc689e2bda0a8df3bbd5046b0f27168293dda8fd8a2e308ab6e7ac575a2d2b9be0b993b61c28b4a44234785ba68b606c7e77ed62e0aa0487d532ebcd69b90f470f42356dc1f25cc47e1133e1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_7(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9030d858c22b3257016fd806cae03634191b5ae4f35fcb1773f9088622af8110"),
		nonce:              decodeHexString(c, "ebaacc5911aae0ee5dbf5bb60ee34824"),
		personalization:    decodeHexString(c, "4ac1c0d3e2bd8782d85fbab6a59f047deb59fa59a3e9b945c5878b7bf360c0c7"),
		entropyInputReseed: decodeHexString(c, "0f3975707cee387bd7b560f110b982ba5140ab8e79027f053a7494813524391b"),
		expected:           decodeHexString(c, "1be0c2fd623e6a302aaad3b6d100c179ac6d7cd2fa6f0ad3be8dc58363a186d874289849f3dabd501dbffe8b295d55210f582d179d485f54395571f69a491ad56a3155708cdf3a370c12f75170cac97ce99e437d4a697ff527d52cc5ceab28a60167672001e67bc2747419a1826252eae44943d9909dc5cae2d36c91c5ef080556f4d65504c8f046e9df426c944c4a5d8521982e8ca32869ae7dcd2cdd3a9caa4ad480efd7d8fdf83910dc73b3941d0a51ca808740640727fccd608523cae3f4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_8(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "1001e1a1a1883e8e8739378535bca0a00f613696815ea23c29a0c1690013d3f1"),
		nonce:              decodeHexString(c, "5fd2a904de907b85e130f8f2d9989532"),
		personalization:    decodeHexString(c, "747c4a696633f76ba4b16c09af0a0e1a8494add46a5530d2d87c1a9f2908e5cf"),
		entropyInputReseed: decodeHexString(c, "f53ce9b62df721aa4fd64e43a9422396ca76349b309412fce8fe1e653c978854"),
		expected:           decodeHexString(c, "9c866db03d3ef46c9f2d002f51daf09faa36bf6031d1936ceb0e73b50eed6533d36692f64906bbcfda0c607cd54e3dd3a890e95f166db70e87679b2cae43b212a40fbeffc99eaea1caff515b9d0f9855684368d2a8d165395f0ddc86cf516bab4b0a5c8af9b1bdadd40fe65dc7dd3b67536773e13a6a9e4ca6b12dca05cb76dbc427e2674ce71bd179396541580fcf6d3359fd421d2d66586b70aa15fac242584c8462538e4a2f04308de30bdb055c9bb167fa0b299c006656928f7d5ed762ce"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_9(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4aa0194b17a6b95910e144f1740e99f57d54f5f2ea0ca42144c8451cf5416712"),
		nonce:              decodeHexString(c, "6c513662098f533d6f02af05804ac4d8"),
		personalization:    decodeHexString(c, "82abd42e935f081acea645f420203d0287742dfa7342786bbf3e31895b93a0e7"),
		entropyInputReseed: decodeHexString(c, "e31a3f260784f3b51a6cfb155bfb1ef489476aecc9811cebad3714c429901be4"),
		expected:           decodeHexString(c, "21a043117eb1c0003075d0ba65e0551a0055db90709b266a8322718fb704b86a76f2f8f6d351f8b59b3a68ece4d634372a8e331e2af94b4d8e5dbcafa3de607cd62413e52e9a8d56e718244b9d8478a6aee7c9cd9c7d8890e8b6c35a7c0736ff15abe04b224191148373442628f4efbf9a2a460757c272e4fffe69ba70b6b6d112aa3edb78ff194ec5e276065f8236b2483342c07f2c602a1a57a5a4675d5572db40c08c1fce2a2aa31d4e5ffbc0f8972a9fc3047f6e9af0ccf41c168c553a62"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_10(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "8cd3872a0dcaa0cbfefa655a06dbc110dcff46ee94f0add5102eb6200286ee92"),
		nonce:              decodeHexString(c, "2f7d7b6b88b69bcde73d5a1e52f6f14c"),
		personalization:    decodeHexString(c, "e45a8399c8e94876c8af10710031d2952eab23fdb6db4fce826c239df445ac0c"),
		entropyInputReseed: decodeHexString(c, "2ff5c53d85b6311c2f85e8d4e4a909beba16c1726aa70b7496afe8859b79f3fa"),
		expected:           decodeHexString(c, "9e8ce5dbf205cfdc4b789241ff533a690d4417b6a2fb5bf4bb135dd4c34ba6087e09ca2622f815f463e669b20b50f2857a12800eb5b428901e96f1d4820ed11cbdf14586eee8a02b19e57aa55be96ea3d6dec54a0f5639fefce10e392415d5519aab15b95bd5da4148f2a172066e984480d6a3651547f76cff174e1412e401b992dce066e79844d6f274b81fea72378d4d529fb9446d2706f8422ab20a99e6b55213b7101bd7b4b255bfa8d95a715bcb5e5cb923c6211b69d5d0816851e74fe7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_11(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "906588f032daa4432aa181e3cb78c7c7cc7f656a297d9b27d9295407b81d5909"),
		nonce:              decodeHexString(c, "60124ccd64ddaec032d6e92bbb9ef3d2"),
		personalization:    decodeHexString(c, "c9720358643f1ff44454cbb8a6a653ec4fe02aa1674a3b411af1e4217dba0d89"),
		entropyInputReseed: decodeHexString(c, "c28e002905b48415512bd4279474ec6c76094adecf41493e7b7cbcec4be7094d"),
		expected:           decodeHexString(c, "eb5621150e6fe152f2945bfb2669dbeae9919e661f88d05e6e0b7fb8172580d3ed712bdcea6dbe2e1060b179e175f37f170a6bf030333e82a64d196856dbc3a322cad714a9db18c9cd6e83c8fee137c999287720818d7e62b4055a9b0a1a66a9f38e02d2c3c01d75037825a46e81fb5fc2f2abdc1040144af146be769ce8209d0234cdfaea115665e81fc420b2e1b2d7ce405b4e4a3683beba3185fb0c420c00a88f83307b685d3bd856dbb15258c17264a228fa1bf20386948795894c1158a0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_12(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "dfea4f3d6cc40415742e2ab03bafd7f0c6f5b0a4ccd900f66f9396e1a782dc14"),
		nonce:              decodeHexString(c, "340186bb74e888b11472036cf3a98e3b"),
		personalization:    decodeHexString(c, "332da1b8af63cd12bee2176ddfbc05febb60cdd896f5f517061509594c031f97"),
		entropyInputReseed: decodeHexString(c, "af4942e6b9c968ebb8c68f4bdfc7855942c81964508befc1e3f149ac3843655e"),
		expected:           decodeHexString(c, "5a8ca5e3e9450a2d978ca5879d0966aa95625dc88ae682e4b211a65a63e93c108be8e40eca93b2e86ca75de82a5826b061308d253f3ae4726b0037e6ee43b57d4c31c8279d5f48b80968f4d0082a6758c6f83fa3f1e259572ecd456c9e82ec379d1b75b84a6ab86b837bbe9ced3a27ba4337f3ab04d60490a9df71ef54de21dcdb05a200a9f86cd44f12be7ec3d81eff9c05a6b0c52b3d22bc55344917691448ebb0cb39b953a0b39e40e81e053bc6b3cfeba47f8b19c22143bb263035fa8906"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_13(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "be5b21270fbb0740b90238935789967e6aace17e11225c78e4c9fb71bdcd026a"),
		nonce:              decodeHexString(c, "270b9582f716941a9bf0f34a78212d13"),
		personalization:    decodeHexString(c, "41c8f472aa1ffbcbc1404b273356f4309d0b1b2540a3de7995fd714750751ece"),
		entropyInputReseed: decodeHexString(c, "405e9f140a3b598e3d9b934e8e6c37dba0df80957e77a29fdca47cc0eb8a35b8"),
		expected:           decodeHexString(c, "c38ddf394f8cd2226d2e4a0c9f8150f0788c88195b563c6686f796d75cecadda010165bfe12f1d6808d0a650a00b088fcee871d680adf782970551409d3276a5d7208632932f8f389da153b18d91fae70cb18de804448b56e7c320d87bf963db5a9efce1695acb58af8d6b045185cf882801c99176ed4bbc3e2a01ac2058888e0b858e4cd14942dbfb4bde93b9faeb2a061c69958e3e68d0a909c1efc8b956a03d46aef7f430b738625bc4535ecc1bd06d90dd3bd04f95bb0e9249ac38f14d98"),
	})
}

func (s *drbgSuite) TestHashAfterReseed58_SHA384_14(c *C) {
	s.testHashAfterReseed58_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "46e8193d7e14b0cbd0d45f10e9ff5572e92ed6a1d0f6eb2d410c74d337042463"),
		nonce:              decodeHexString(c, "174a78af9c6563aa118828e233a50948"),
		personalization:    decodeHexString(c, "5c1ef9aee8fc465698c1e7f986cf0726701764b7a21e0721e80c69633e5fb56f"),
		entropyInputReseed: decodeHexString(c, "a4b1da00547b221f7a635752b86abdb07f38e7c508a3befe3a5f86b56b5fb8fe"),
		expected:           decodeHexString(c, "210483c1d4c54d63ad8221782b424283d3399bf10e2472b397e777db1aefa27bb9174683a29f36a70b80a17e6b468306373bf5e6e3c980fae618be97cea5a32b56dc4c8f45c59b27d8256c426ffa7b5c3dfebd0019f140fc45631f6c48540e269260657f8b2e4341ef3edcbeb25cca6e02fe92c1cece684c9db112e6af368d06b83ffe29a993c14c13a86fb61aba1a451e5b32bf56aa4f79e71781ecb71953c3c948ec1e7a252453f8516235c2965d3429113199814bc8f007bfad87361d582c"),
	})
}

func (s *drbgSuite) testHashAfterReseed60_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_0(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "6294f06a45fafa58eebe0f237c5f6423ad6ed10ef3315339bd7816b5b3f2675f"),
		nonce:              decodeHexString(c, "1e2bf057781e031e9108f52172d68a30"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "59417550f22a383d9a1ab7e23087f577fd96062191e3bd158d1d5b357b5303a7"),
		expected:           decodeHexString(c, "2bc3e0683048ccfc87cd7f53bbc735325c01d04cd723a3a79474e7e6493b345bf1959b493c864c9b4dba3b84a5aa0fe77db018a215a85d6835f47a4bbfb9a98555de864cb513aca1bf091902e76a250ef538dfd2e3046c8b91f35c01fa92eb50f054456e78ed052cd72a99f597a25ed24e3fe2cc71c33609342d85a11052e740f92a409c3d275024988b4472460bfeac691c461f3459a8b851ebafa9fe9e272fb07179c26b4ba5953e90c74fa2c74797757cb0452602382d2eb27f33be7bb736"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_1(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "00a98ed5f616f028233769ff777a7342e57f9a8a1406a1ca486b64b23bb34f76"),
		nonce:              decodeHexString(c, "56cfa1f545d782b0ba2a392b25aa55ad"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "794f957660899ae0e4bd509b5dc5af6971c4095a3acba7bd2c5b71a178690860"),
		expected:           decodeHexString(c, "b7d011a04593310885d1e5d663efc4410f59408193f2b44d67dc292f19e7099b0ec4ca102058b7a4bd2ee41dadc017bd1849a32560ae3b57e7105f1653c8743b27e912d9b57b8bb638bd019779aaa0e3e84b324e42863ba9595320a812b99249793af2a7fbf557530259d3c1ba827bf052e0db6d950f6ca76976e7eb7ebe241bbd4b6787f80b17afbea6b19a671b2a256465669e2430651c70d0dd9e8858ff8f3fec81ce05847a15c8ccd81c1971f19405835d4d0e56bc302e9ec852ca31ffab"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_2(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "f54f459ae81747c007aec42ccaa0573e6cef278568eeb4b7e152ff6be5a3cef5"),
		nonce:              decodeHexString(c, "b86e79e81a7a1186d82ec161fe23602b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "19a2a4b9f8977ef5648a44546e97cf76968ab9b19d2c4d6a80e4b7603d0bef5c"),
		expected:           decodeHexString(c, "d019f49a826eabe22be8f7f65e9933f7f101af27baaad9b87fdd6dd7cee753ef95e687eaf906c99c892c54347154830592309a6118bd595cffff09d06a7229940c393b4f2935f5c1a56548ed7ddec4fd857472e3b910e52d2bd69344debaba86f0fe01b186ec056a1091dec94394ecb626da1cfaedc3b9ee259c6d1ef6e0f4de4f71a46a78861dc753dda173556ac6b4f1ce2520514ab70f44dc64bf63762194f7c173d7c02ab779813748a00c0a35e50a821e9237050b5da1869541894a5c31"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_3(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "d2aa1e32cbea161d386ab33a1ebc229cc2cd465faaf02fadfda181c45dda8a4e"),
		nonce:              decodeHexString(c, "fc99b52a4cfe0a71b6687cb64a87d4e4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "31b7bcf67cdbaa9ee6acbfb64d012e6f35cf26325f3cca1d59581f08985ad499"),
		expected:           decodeHexString(c, "a2899b52bfc35a0514c4a662e102dcb44659aefd3eadf153324630d64a016023ed42a30ca2722419a7bb098a27b4f6b04cf3c3c7b47e4a32a3268248c38fa8acffde5e8dd11a94636065e92fe2c375d9e21cd8543fb92601dec991d2b6433d7e061efe931400939dde7a73335f2d969f4f46ee81b97af2680d36e6aec181970780d56f5ecd82ed444d386b572467f6a51cb4fa8dc62625f540965899d017b1cb23efc6497fafb676b3a0ec1f7558dc7e024d72bfaf3f1eb251e1863f4aa1a592"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_4(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "401caf007a395bdc6aea4a88161560c2aca5d33c6abbabd9b05fd11a28dfbde7"),
		nonce:              decodeHexString(c, "9a3d41d22d88de61a8a814139946c189"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f20ebfa5094d2da919c2d5d0e925ff4e180a8fe408e05fa985bfe1e3741bd840"),
		expected:           decodeHexString(c, "e8926e67a7ab533874956c280c3190176d5e4a6d8c74b53fed8df0e012f29de658e1737a41640fa2e6eefc0db6c1121a6ad7d496eda86d471fe4c14aebc03c9f2152016a0b4c9291eff92d3c60a43081967e76e6bb075812b901253a3f5a9700927514ad1515a0aa1364ea7f476aaf4c75bf05419ed5ab45553dd949cf16652a980c5b558b808ca46872ea9153852f48601de21dd191aa76d5e6a118ec6bd6cfe90692f4a2553a6e78ff9cd79709b2aad4dc62670e8f476263495274a0c2be9f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_5(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "db25a3a051fddfb54322e4d28e9302669bbbe85e7c5791403f9efc154528784f"),
		nonce:              decodeHexString(c, "b3551eeee5958f2fe1eaefeb0c73e1e4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ea0c3a27edecd0868532b6779ed8326671bc599c7da811d7bc5d5dd2d8c824ad"),
		expected:           decodeHexString(c, "89fda55cf7819a30771c2c64eeaab2f875486abd54ed35d8209e25d363b8d365a12537861b0b20e26477b60bd97f8c2bffe9958c631a4e322b5e41110e57e4748f12288f014c4b3a15c5d9809b36bbdbdcd29876da72dc2bc0b85a08e5a3656806b955d44b9784ec5a5b11538fb8887cba2a0c77bc6da3b0e4b2a61335bce2887e032ad840921a7a605ecfd563af25f9387cd7eda0c90961b56f447ba7b0938f41326511a9929f9bad19bd2b5498dda572c48a3d2a2e6e94612ea2ad016f0649"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_6(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7b07624910407d7ec5b66905298488dd2c37f00e30c1349c59df95653b190cac"),
		nonce:              decodeHexString(c, "fe5bb4928bc74609ccb7f143f91166cd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "745937de92da59eeece61fdbeacbfa8643c473cc0aca2a0212b891d0faa66bd0"),
		expected:           decodeHexString(c, "075eeebe7736e69bf48b9513a9f94646805fb3071a7c8744437621983879af6359cb4839673ee1f95c25d4261d4ea984999d3eae1296ddbaeabd7eda1024ff87922e100ab847713bf2c20628d2f2d4fefdb87eacfd6d093e9818727974a5294ae9d76cbc3848329c9cadb86a527fb523f191b24ef50daef05ba5fc8de531c207ee5b63c7b525d061f969996ea446fdd68a2a73d9ca40a1275d7f4e58c4fbaa86f273477c2f0b0dd6ada60ebcd2a36e3701292aad2845dff2c04475a727a23eb2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_7(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "1eeed76a8658f823917369ef4ea4b4cbd5b82977bf8b022dfc8b05870a7c4cd8"),
		nonce:              decodeHexString(c, "8403850c37834168eccc4a6df3e7680a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "94d16d186b5082c9240d5b3fa5481fd8aa971549077873095cce51c7dd2be7f9"),
		expected:           decodeHexString(c, "f48c2d9ea93dfb452843b6d1f8c58c7eca4db970877a3f1d9d68ffecbbd71838758ba1fddbe4899efa70a58c3549139f00f13d09704c41aedc202ce5ecde24b70e44b61d645068d660f346821ed1e802a44cfeada75b5ce924d4343a6195543b8d1432984b59b1577129ff795f41555b14abf4cd41b1c4d45e7123a007629b6678202f147cb735e7a4112bc10916cebf39ee4d078b7b70067792804dee387fe34bf9e7c791e2a783987dd1fd5ab04d4c93c74bef05e267ca5be75e37e8d21f1f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_8(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "1d79eef601e1b93881d70e82538111423967479aa393473fa02601d15e5d8f56"),
		nonce:              decodeHexString(c, "0a7b9a19f55ba77c7816a9396d06b316"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8978903be82ae3cd6ff61b7dce51a885febfde9e08e87303b5ab79169c9f2c2a"),
		expected:           decodeHexString(c, "9f25bd4defaa0a1b3e6cafad4e6a1d5c8b87b713577d4dd5fa1b978a6a911df63bed46f58f6c3d7a5454bf98c4f78c0925980ed27b342836d7250f5d0b03ec458f7b18eade74532377ee8df1806a6028187466f65b8078a3e8139105957d516ed4fe8b762bf8b51029e2615c80640e7f2a94f6686ce94694951813234ecc8c81fc1923310c39f7f855a47ddd56d20f2077e3cb724e8bf0da33a9acf7eac70bcb1a7d3a07af5fdc28624b086a4eb7a71d7f85562d7c553adc55180b858b2f41a2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_9(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "2dc0fd5e687c5c32e351a31aa51dea83d05791ebe6da35ddb6d860af7e46cd90"),
		nonce:              decodeHexString(c, "0f78abeb9c747ded6fef858db8665c0d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2fb04fc452fe35a1996ff48900798f02a605409cb6e5bd33706cc4ae96f95333"),
		expected:           decodeHexString(c, "d25ef5ee3df8a6cf9b6e7d57b121b41a84f4e38e6a7475e1cf21fe2c059480aa48ac5a137eace7e696702974b4383e8531a79fc8076236e6be78cf3d2ab83d3ff172fd00cdcf3b46be7b555fe98c4e7fff3eaed76420385f434c1ea90e9bd7ca505ebfc43a72cb98d450c10bfbb2896d252b771281bfb08ff3e654cb06165e8ff8748181bc6df081a675f9acdeca8ec82271b2101a9f9dcd657015a3267df2373e3c95b8c6cdc76c030a3a847335e6b0a3d9b1695cc385616f3b660e19e71604"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_10(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b5805e8495b256e7f4fee860451d7b354643619209a5fc96590340afc73abf23"),
		nonce:              decodeHexString(c, "c393c11935b01c9c297713e9cf552377"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f8d607c7c0e6d8b069d741a82fa450d2584b10969d8628fa909131633d7f7726"),
		expected:           decodeHexString(c, "85c3df595efde90b5e0c3ac3d5108e4ba04652471afd83add325a4976bdedb323ead51fc7be75964d84f93cf3d8f1c5702b6b4e22d0fb94ad5401faeca637723773243ffebada6c4d686d0aa6970ec13040835263d6263340a08a81ea7143b2b2af3f27e39391e82f815763cb9b31483bfd21ea87e04ae32d162e6ca57aa0ff2f474154ba455de0d4206f3c35b129855e535a344722c8ac699e74b9857ffdf9cc08468df1fd9384b01a1f7406ae7c68ebeec6f2a400c63fda85f2142ca980482"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_11(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "7910947f1d2ea6e85c47e852df1049507cb2d7b8f5be5ac7f247695615320efc"),
		nonce:              decodeHexString(c, "dc8df5af9100ab2aad9b161b4cc834e2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2cd053013ba7d0baa451b8fb1cde62d6b4d572c0582d15dc2b70aeaf379557fb"),
		expected:           decodeHexString(c, "ec0f89e6c74b7549ef7f0b5e1b956f6ab7121c228cd2634a66fc7330f490a89f489bf39c94397e3e7938537a28afe9bcd73a668116ad5bec4d98098a124393218bc9ccb8ebae80beedf5a782bbf4f543ca41c8ecdebe9f7ac3c0afe04542c29ffddd77137c161dee1ca3428894027ec19f448d7014089594b2a01febd1592bf88dfad8e7ee13c93b18e8e88c778054ebbb4ea88079dd6e7c423b7e316adbb52350540c9beb2d34d59d577a4bb2220086ab0e86762366382033a1d91e723da366"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_12(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "023e1d9257936c2fc80373fd82bc33eeb408849a378e1eedd449bd1cd32aed20"),
		nonce:              decodeHexString(c, "81e78ad590da034952300c2e9ce5c37d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "093282fc682a27217b31778f98fca1fef77c0b76e4c0abed2f8d42df820108af"),
		expected:           decodeHexString(c, "836af114c70123861314bf008ac7b8ec8e11e0eecd7b0dbebd6ba39916b6e0de266ad5503cc048b29f00e94a0e13cc56dea1119ef70eefef794b5568cfab500873c1e4f6f3e920433412b68a22603fdfdd3c8bc5afa88ec5344de7ac8635030e376b5559b4fb5bdf9b593b465336fe1ad5ec8021174e16d702a9abe3b01a64e4fab18abcd4d2b1e3c688b475a3b864d66f95245da0fd3ff7ec0c0c0efd90809accde09abe48e2b951b3581cab60a095ff1e5488759e1cd18e84af8406e0dde13"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_13(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "90ca30f4485ee87fba5967b8568582a284ac90dbf1ba2e837de2f71db4911230"),
		nonce:              decodeHexString(c, "60ce5afab61dd35cf593652ab5161550"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7fae2c8789c61e9485fe7dc49330222ed0d5726a3438bb1b136ccc1ffe30d919"),
		expected:           decodeHexString(c, "15af248ec1330b05aedb9db4f6e8074a88348d3e1e330398202f5a87c7f609116a1f1df74e09d571bb4d6c41f3e4e62a418e275f5facf361ba6098b0cb5ea51d89be389dcbde3b64a9a4ab2c8322e3ed8172611dbce1b0256910bdcec7f50b4310a6716385426b65159bf0fd8f7d18463ac0f86ebf976859070eebd4f4274789b7ba89b87d9cadea0b91c75b3531d5887467ea200cda30d31596ca8d3703ab89dd111f3ae6e52e46ca7714d7f024ba847e709adea87799e0f0df5f852dc4978a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed60_SHA384_14(c *C) {
	s.testHashAfterReseed60_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "4eee234eb899eea7df25403a204996135f7474dd9a49e727ff29f0931796ddd7"),
		nonce:              decodeHexString(c, "d120d530b790187e08c6ca4a21e903e4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "944c512bfd4e70142a0121dbc350286f85c054939df01b1ca7fe6532f1f9752d"),
		expected:           decodeHexString(c, "034322d3686623e3d9132f07e4fdb666284ea571214a6ec22e6eb4dd37718f4e900036448a8e2202614796206759276891d0101b36ba9a865ef80bb6107738904128cd1d52e25202642d3d5c8a94997f5ce1a39d8fcfc8c882d329d17b02348010925ebc519b4f0346a8f8bac10516f9d5153d8c9e8f618e1ff03d7fb64dd99d8e1c6dcecf6f818fb898590a0360e209d3b3712a6e96217778b6c0dd99b896027df04e772dc9226ebb6cbe0aaab3ff3c74c6ff0ef74f6adb213d84c054ff41ea"),
	})
}

func (s *drbgSuite) testHashAfterReseed62_SHA384(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_0(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "0e85d8000c4fbc91c6bf3f900675d9d87213eca8b4668e8f17e4c2c49f633d46"),
		nonce:              decodeHexString(c, "bb1593e57ad5dd83f8b7fa7c8ed2a5a2"),
		personalization:    decodeHexString(c, "0def1e678a41943762bf49c3dd9b02dfdc5343d735f1a8da2c5ba55fb926026e"),
		entropyInputReseed: decodeHexString(c, "17b4aeaedd33ee253ef2f7e26cd75e5e97fb6934b20c67827c165bb2f1f516a1"),
		expected:           decodeHexString(c, "057c8fadc511cedf3747c0bfe7575c8740443646229e81e28a6dda3c33473aadef4a2c3551f64e301d52cc7de5eaeab78e16a45bb025137a4c810d9eb77fcb01a02be67a426142036ce638e991711ad9345364f18836e6c30684a7358a73fef95013dd2d6c2e9b7b0216d54ab032ee5edaf715b17c478a0bac4a7309db3e9284c27cfc97fa2a11a5bbfd12052468ed6c2ddeff7960c447e374a46cd588ccd1bcd2731b38db9b89835ff14f4966f2ba3a87646f0598f478445d5c7e1d7af8c704"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_1(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "63de6aab690dd38a90fe83e3b9182fbdb0a9acbbbbb1f2225d2f4c4bf95d58a2"),
		nonce:              decodeHexString(c, "ab4f7f6153521ce541d2903d99cab9d5"),
		personalization:    decodeHexString(c, "cbdf965fa47298ba2481ef6b9dd234bf64ab50955219f2fe4c619a91ad7196b5"),
		entropyInputReseed: decodeHexString(c, "fe944d8a1018331987fa975c269eef2c4dc7c4345fb7eeb6bd493cb3bb34493e"),
		expected:           decodeHexString(c, "1addb8394be9d094f377dcda5fd186780f6b5914eef173c77fff2a889c4776d7a4a261d3dff45370d8790d860ea43afa14d9bb9579228c6976bb048718a422e6f6fbfc2dd724a836b70dc6b9782fb6a35462897c846c7a19cb9c079880a5c71486fb68163def4fe0a77fb3052d5c4176095cef85c59d22803aa9f556f6bee8b64f525c84c8ad75eed8565bec9690552367887e8dee0a3e913c79c714b5b54b7b3c6b169dc7ea4fd84da1642551b770d443c5ff2724e9bafc8dc153cec44ce5f5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_2(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b57fe8f221e0b763be820f09c879ae93e7a1c087bb6b4663c0f8636ff223d272"),
		nonce:              decodeHexString(c, "563cda60f2f70dce3cb3358755caf58f"),
		personalization:    decodeHexString(c, "8ea0b88ae061af0be6971dd63db7b0b039c31db568ac933bc4434db3f8812c13"),
		entropyInputReseed: decodeHexString(c, "5966502790e9d3276f9b7ba83bfe69f9f4ba49acd1001e6308cd0f66a7495c67"),
		expected:           decodeHexString(c, "2170f7385bdf12064a9ec2e2196687266050d798c22236ff7fd20af638bf6e4070bb0f982d647b1662f217bac86c809409cbb2c16f44b3f6dcba3dd00d41c6605c831e9077356e11320d188fbd75f5198b4f6bfc9c10b17a83a9162ad52ae896c31e4bbe0b017f24ac85891be24d4fdf68e7ba4440b6e848e3ab7ae40cbdb6794174aa2d8cd9182f1cda19baebc8269a4288adc40bde499e98840e2fa26bfdc45b07fa1472d94fcea118cf39352f2745bc83eff78e8bf7d36a9da98367b308e8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_3(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "b8950874c6eecf83f3330f09ba4c05a67812b5b2b8d9e70eebc5b9ce16fc8859"),
		nonce:              decodeHexString(c, "2317912b11dde6143493791981a164c0"),
		personalization:    decodeHexString(c, "0b80a9aca665eaa1e6163fd4cdc1f65f63c3c359864d719a47d3b2817db95cb5"),
		entropyInputReseed: decodeHexString(c, "7e80c4288fd0d979d9c073ace587a54a82bd5afca08acd1451b189ba0318b982"),
		expected:           decodeHexString(c, "483adbe72efc9764e921af0a7d61651d983babce9b05b7cf25a0b173f4312c50052c1defaea50fb858513642128b8eeaba35aa5782066ba6a006764f442f4a50ffa73e86a8cd262c536640bb98998d2ce5174611b24455d8aff74a968f3c7e903f55ce3747fcbac1f0616036127ff0491261c7399f0032383baf74f33c7c7dee6624b4f12694d94d2c1014f5ef365f337ba7fe032e60d111e74088ac72d9af888c9e2af05f21f89e34c73e43e65865c51d6c39d4b63bd37d4d1fd6f1dc38c8bc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_4(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "473f8ef53b3e64cd1f881ecc4fcdd3a23da7dd3338eb797d162ce05beed6a922"),
		nonce:              decodeHexString(c, "699b9221f163fc3295abf49d26d3ae37"),
		personalization:    decodeHexString(c, "335b75b96459ef8b5ae6bc132334611c3d2cdec659369c1cd6c73a4361bbc6ce"),
		entropyInputReseed: decodeHexString(c, "d7e9cd4f970f7ca62da5b60cc710dcfbaeb4b8184f519272264d0d947882ce6b"),
		expected:           decodeHexString(c, "9c54f3921b8b57d66f512925e3621588d581046fdd3e8656027deba01980fef16853aa99df656294fd768399cff6f871f3e5b53e6323311237cf70d38f3e59f95b1b3ba728284485fe6215deb78bb3f73d407543b0beb1f0bd58f8eef4c275f7acdb9cf9aa5666f63bb43cd514e3c0ec32223e2ea487484990f8a2f520c033712c1697736d3c750034cc075eae40ddc6a0d15432e2d886f71680a992b2d9101e2653b53927771d08f74e467139a73367992a62b6495baddef542de6a191a1b5d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_5(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "2e566be8b1952035b43b83872b249eaa94050527026bef50b21025cdf28472a0"),
		nonce:              decodeHexString(c, "e5b89b3be1fbaba65ba2b85260f7cff7"),
		personalization:    decodeHexString(c, "3aa8bf4a240cb14afeb9a9bd2a981f5c13c8e85a432e1c78f739e753292f63cd"),
		entropyInputReseed: decodeHexString(c, "73d6a37ef64e576825bad01597cbd61494ab84aab24d476ac0883674e977254e"),
		expected:           decodeHexString(c, "46a186f77b6ea62e840d7869e32a996358d2c674b7b8887644b62cb3baad2753b100b31ff54fdc0f99839c65210e6564d27719de0a4508931513fd427747d2a3c1b5c23736abd5f073cc09f4722cf8c44e5baecb36071e3088f73ca25d5ec773fdeef388406d7a27c14b50cde3a3c219a20336006f3f1d06d975b09141087955863e6eca5fd04b026d7a5301a756b6b951bf6b2785e48d93182d67ac6be5a0794dadd5d1c15967094abddccd12f66e36ba95797f879c315d6ab1354e0c28f1f4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_6(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "351b87e31bd09fe658a45b2295cf3593ea7b40bdc2adf168d1def87061113a5e"),
		nonce:              decodeHexString(c, "bc16c35e8e348af6e173d8011ed830a1"),
		personalization:    decodeHexString(c, "746f5a9a9477eb91555b8229e32879afcbd2c621981898071daf45d0321d10e5"),
		entropyInputReseed: decodeHexString(c, "f2f345f65de40f2ed90030edf01a7fb639f21c6d73b633deece50aacb5e55569"),
		expected:           decodeHexString(c, "ceeb3eed305923c6c76fd438d7ecd9bffda8458260a96f1f428cde80c0079610bdd452c03ae95d293518bcc542379037de9e0283e6dffc4c2bb77208e7e327cc53c0b1789921ebefb4c4d113ecfd1c9c29694b7c9935d43147387e65f6524a3d6f4f6223bed0a217ebc95aa7591476f66562d65adb648ef5b1666d6765aa08f03c1aed6494662e6e818b68ea153f3635827219a97678557cd801e6adf49d2746b000bcfb242c73276ed072d3a3e533b5cdf2a7791e5dbd73fa6284e009d13d10"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_7(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ee3248f8d2d9e90ee7bb50d0dd3700238052f47c0602d8d7a86d19ca53519f04"),
		nonce:              decodeHexString(c, "4740c4aea73cd14da580c158dbf24c57"),
		personalization:    decodeHexString(c, "7c7651924d2aa643f925f75752612b0f625a202f5adbb29044e88fd5496fdbb4"),
		entropyInputReseed: decodeHexString(c, "615ce0fb36f81af95a9f96f574ac180b4b394ee2311a531faf438231e4a8567d"),
		expected:           decodeHexString(c, "87b257e33ed4c4ba9c3b8a06e61b76285946fb4c88ecf8be0ff3d4c67c6cb862f1970ab637410feee9e9dc01782d6a6344f957d36a0e282451f9d496cf8f6b223acd1814d7d9d1092a696cdbe5cef74fe5f8229b206907452f162acb9ecbe945929001bf87085b4cfd18566b7a7ea721f61c1c74c97677f73affa487790a513446877f8c9247d1c25c2da4fdf04a5c2a39bf637361798d2aafa23e91447ba8b5eed3a0b822d956d4e014512982ca1cead793b608600613be85958dcd5be0d673"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_8(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "95d2c170a788f611c7e420d4075a38743b05b13da93c73d9b53688c6b5d099d4"),
		nonce:              decodeHexString(c, "9b68229175ad53c7dbb4b8e24abd9b8a"),
		personalization:    decodeHexString(c, "c93d4515278dfbc9e4803c919865ca79730f7dc7f2d1fde914ac56f304eeb687"),
		entropyInputReseed: decodeHexString(c, "bac72a76a030e83398607acfa93af9bf8038db2a2cde4324b7417c4ee4ae3ed1"),
		expected:           decodeHexString(c, "5275712ac6dc6a596c80c40a3bf584cf4a3983cf56b202ec892ec58af4fad3d1389aea6ed37d54af2b61e8590fd0a30f299db4e9ca50f6315e5843fc6e41b8423db4f96a0559d875f92f636fbe3c613336976b3146ace9f6b6e57c7ce37b36f2f90ff11d5828ce9c3aa10de629fcad6d62d2f6d49629f47b9065134ed392d096b74bb4b262b3b454b8261f4c857144d1e8cabcffa0d0d153f60efc82c15ddfbba5fa3a32822ebef2503f1f41c76086373ac6022491d2502542d28fc145e20c53"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_9(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "54ba2a92af8a6e198dfc7236fa60b679d02707a0dbb1aadc4b82d5c9092f46d4"),
		nonce:              decodeHexString(c, "620062a5f802a0be0ddc7619bff9de01"),
		personalization:    decodeHexString(c, "4d2e0bc06571581e85efae2aaca4f577d84d3afc5aa972a2f6d63a0bcf64795a"),
		entropyInputReseed: decodeHexString(c, "629b4d53bc7bcdf91500b9317844c68348806a4aefe7a23f7c8d07035b502376"),
		expected:           decodeHexString(c, "fa3a2822f188a7cdc5b317fe4b8f9463ecd3016d8543dc4776f317811b8e3751be35c292520604570e35487ca6eedf74b4818f131a1d41dc73334e2265cbf8605933484577be0717d10b219b3530e95f6b4221cf377efa15c62ea1230f77b58a1280ec77e38c49657c59deb56af058cba2c26febbeb223439522ad4062f158790d3652170f29567436262a9c796c2693b04bb2571fefb11044ab6ba956a21b240ca09273cc629a1a1a44c7ffdf3558d09223860a1b1b5a6b65ed20728c681bc1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_10(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "ff496287e549ab2bc0bf530864e105580c3cd9c757aa2d6cbbc804e77819460b"),
		nonce:              decodeHexString(c, "37e0e6e4026c0888bef81473b0862690"),
		personalization:    decodeHexString(c, "6e51c748c654219b7ab5750be8f794210e70abf03787d49c65147e89f0cf92a7"),
		entropyInputReseed: decodeHexString(c, "9facb539fa017674ae8e4b81f5888394a38e11e6ef7fcc5cd5c1ade06723dec8"),
		expected:           decodeHexString(c, "c8b891484d8b52f623537b0a2ce4533917d971e1b493c9c4e23407ba4033c62baab21b9e505b55c9fc91687103b68d0f6adce7d771bf41717b727c33b4bdefc10e0a202310fd6b2cb22007ad5cde1dcd19cdcc7d3a40866b76b6c4390f9a2c8dc16855069a8d1a3f41fff4212caa9899670d2039fb12817d0db32bb8c85bb5c6ebcd5179b4e972f259b64768d693cdb75a98b2e55c4a29038df3cce1e595b292dfe09a6ded051becb35b4969bfe0c6b61ae5726769e44a4a684be785a16b5ee2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_11(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "0c32c96d1769f6fd0fe9b16b6e629b5cb2bfca7e135dba4cd9be40a693721c3f"),
		nonce:              decodeHexString(c, "1385e6d55234febf5bb26d11a7e8ab40"),
		personalization:    decodeHexString(c, "44c662fca5cf8dca574b4ff8af88427555c6985a3f0ce8e99d3e9c741fbb3f75"),
		entropyInputReseed: decodeHexString(c, "080a2f0c6c8f5bcc4a4103c22d40b2866c20cd24b85905960865ed4b2ef2320d"),
		expected:           decodeHexString(c, "1e752da2ed94716ac424860212f35c92bef70bfa4cf3b6619c65412e40731147b72a9d9f47637f5cb1b05a5c0e1c4558d5f27c7bd4decc02551cf2f8ac746befb5ef424004f60c69a84c6f5c3bd1fa7f7ae67b46158cf5a64067627a48ed1efece7971ba0e2fba5c373b4af72f868422c89370a22914885f3a3d9786dccff7cb88d51e0d79d4fd0cb05691b2f160c58e5d39f8b8ebaa9b16c4a15d74be7accfdec62ebfe83b0335baca1811c509ccc2ddd5ca8aa7e57f717472eb23ca6029f74"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_12(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "9ad3fcce89e24eeaeef1f4f22f9d0584ab6f134f100dd03b8b1132da638284ee"),
		nonce:              decodeHexString(c, "2189b89d304319610b546c9fde4ff4cb"),
		personalization:    decodeHexString(c, "f2bb0a9f0222696a22ef1f07932bd0a00ed62b05c9058422295a4669b46b493e"),
		entropyInputReseed: decodeHexString(c, "d548a878477d86a15b20162e6418cbfa8e71f34f2ebf85231a2032e5ccadc034"),
		expected:           decodeHexString(c, "9883b4c921a9b724142a9202593d8ce9242a768815956b7cb6d61a2a3822142412a3cc6396a1015c9eb92c662a50991bb23e1d6e9f8979b9f82817bf11f76458e5828839d295803d3ce9cf271dfbc3859a4a55495ab26e8e71a708452132dc30e1a9b83e660c7c30d42c8591b07d68ff9be74d118ee8223509147da61bc0602d9cb95823f897155f2e933c379a44129e0b8950fd6f7371420b0b52549d760b745a2524fdf1785e4f0d08b79d9deb2f4754fcb84c7a8bfb9277f644961b3f6add"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_13(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "84d94805910413b64b70f86fd2c1c233c3d953c668bf365d6c815e5a898f7d10"),
		nonce:              decodeHexString(c, "3cf366748a5250aae0795e68c82ef097"),
		personalization:    decodeHexString(c, "613ece7fcd1dad4f26153bd13064391ffdcd5e59948a22a25feea4e722416133"),
		entropyInputReseed: decodeHexString(c, "c617f82b8d6bd5099235cbe94f42465872418dce687e3ad46a820e383e7535f6"),
		expected:           decodeHexString(c, "828dece2a0e7aa546e8e343f13618528af038d0c01a1389b4a528fbb9cb45efbb2b5363f73c5581a268aca56773de0c6542e3ce462251a4f575d8aa0a352301a6637b1563b5ae9a19e9f940db25d6abbbb021bba0837badf7dad66dd9dfed7d9b2e19925f3a1f3632e86c0e3285d7cab0b701b4a22a326c2b0a9e40beab0515e350b01996b0c5108575fc7bc0f3d44ddd607e5cafe5d84dd97fcf89f2baebddf81a0712809b596e726382c0fe892ac1c2cb61ada11e12633a3310d9109312b23"),
	})
}

func (s *drbgSuite) TestHashAfterReseed62_SHA384_14(c *C) {
	s.testHashAfterReseed62_SHA384(c, &testData{
		entropyInput:       decodeHexString(c, "324a19c371484263e08e50f3d93c813ea39f51a1f0e04a5b1badc69145ed6e7a"),
		nonce:              decodeHexString(c, "0b0b0ed49639021bf53f7c33344e8659"),
		personalization:    decodeHexString(c, "5d47a1392b32e4969167af52e1373af371de0f3ecf0085c83640df4eab7a923c"),
		entropyInputReseed: decodeHexString(c, "39c95ed378bf5340c006c71e7d82745e4177997b66edd6a4b4f516bd63c426ec"),
		expected:           decodeHexString(c, "fed7a7425c670ee2e36f02693e8b71771055f8beec91e15a36cf070a13900c12fdae21230f6bbfb5d77d0e1ea287662ab30519aedfa8032a08829c54da91f8c7c3b768554f945d9d709a1d4720a8f058e1464c5f1777b830ad4e415706ac575b71e19b0c41a44007e6b0be129f5687a21473e982036df70bc66ca4181b5e384dcbc5c7b6a9ce3a6d1b91ff660a49dfe1f863b5495af25bb42f61f5cf68cb5ce4c4e49c9decb426dab9f72505dbb5ac368958042dfcf65ad0071f81bb703e0d08"),
	})
}

func (s *drbgSuite) testHashAfterReseed64_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_0(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3144e17a10c856129764f58fd8e4231020546996c0bf6cff8e91c24ee09be333"),
		nonce:              decodeHexString(c, "b16fcb1cf0c010f31feab733588b8e04"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a0b3584c2c8412f618406834404d1eb0ce999ba28966054d7e497e0db608b967"),
		expected:           decodeHexString(c, "efa35dd0362adb7626456b36fac74d3c28d01d926420275a28bea9c9dd7547c15e7931852ac1277076567535239c1f429c7f75cf74c2267deb6a3e596cf326156c796941283b8d583f171c2f6e3323f7555e1b181ffda30507210cb1f589b23cd71880fd44370cacf43375b0db7e336f12b309bfd4f610bb8f20e1a15e253a4fe511a027968df0b105a1d73aff7c7a826d39f640dfb8f522259ed402282e2c2e9d3a498f51725fe4141b06da5598a42ac1e0494e997d566a1a39b676b96a6003a4c5db84f246584ee65af70ff2160278166da16d91c9b8f2deb02751a1088ad6be4e80ef966eb73e66bc87cad87c77c0b34a21ba1da0ba6d16ca5046dc4abda0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_1(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "322bae6dccdcf2de956014d8b247365602b24c91d7ba37dc096e4cf7fdef5742"),
		nonce:              decodeHexString(c, "0c4e8937928ac7303f4b29a92f799129"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f0dedcbc4872841e11c435e9d903096ca30f23450d54fc719ade64f3b941bb56"),
		expected:           decodeHexString(c, "78120acc1fa978e53b6dbdca5dedc650f90f0f5cc3b01bae63b34d1e880cf00dbf89c0861b516b3a4acd006284e865027b3648588c7aad4abad9406d183ce5675cd7d2005fa3bb0e33fa6435a3c567e999703138060bfd090474361f8b2a4bc849644a79292c41e6e9a93cf4fa795698e4ea54698a1af9b2a438be608187fc407efeee547703f42a027130a97bc6400cf8944c0f3e79e96a4d4edec5a326a54dd967dcf89d747f4abccf078bc2fd757ba72d54e010883f2f3c1fbb5e1cc372245109f6831fc22a9af4d1da2ba506f01f52183b547d3066a6d0b3a919524b08ad3ee1325dbdcab4858f15179f99f89f4fd2f808e3d7d52fbb0fc0653e30f7df41"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_2(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "00bb3a19b17860089bb150e0342c7770b66bb782719f1d807fd5c5a5c071a5d4"),
		nonce:              decodeHexString(c, "ec75141ed5cfd1cb461a03c7c1f96ac4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "36ce5fb242a58bc624d927738284c0bc16890afc49195f04af6796b803cd45bf"),
		expected:           decodeHexString(c, "7678118419264edf03c97fd519d56321b1fd249f25409438e18ae5ed314c553d78f021cb3b58fdab846a762bac1c30a9e659c795d9024ebb0491a6b6f9c489db6b9f2278306fd429bebcf97bf32c914360d863a9fb9e6ccd37bfc9bfbff16c0d2ed79d8bc64e62dbd37d076e7bef607fe660151b5c9fa0524f171762e40c04d54b7648d10d7b87e94357356e9916e41497c139b66659c3548b74dc67d7257412df47d3b580bb5419313a6d86208d8526d96ec73489c6693f75b217e5dda61baed5ff0aeb460fd9aa6e64ee861f4251721431d0fdef7741f43b8f884be9d466cecd893d110f8d41cc73b883538b3740fdb35cb1cc07378f95df1c2a5fe28deb3a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_3(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "76fe58e240129f52937bc909c24d20e980855181dcf80b65cfd5c9a5183ce07b"),
		nonce:              decodeHexString(c, "285d8c71c6490de92ca95093a3ee7f81"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "aca7d420885f82010a2a3d07122b2027538955007c033e235555732b430065c7"),
		expected:           decodeHexString(c, "7242dcb7533dd7938a4abe7a99d3c9d2194534247361320606a482df2f11b04b2be20ebf88468c032e8381199e83122f51f9502c7b8e2f316b149db26cb9e36962385b04cbc915f731ede5122840cd4d826085b4c3d368c04041a8f8dbd9fa4b3ee937a51689838b4d8fcb7f1f5c13d0cede84449b9191b123745777c44d1e207debd22cc9e63548dfe98328cba2e1c4ec63984c81e67607b64db201349db3e4b6934d1ad95b1a073e7f91fd2b7c31227999a5a3f00d3bbda4e97fbc610cdcf4e51bc685953bd698eebf3ae366f6dbd7b10fe0828ac3099bc29af75113aa023cce7ea4aa315e9a8c0bd8cbe4f35458ae95c595b8ac1e55028b8a496a63866e7b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_4(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e38855b7d6284509f696c9ce7311149119447cb59e465efd1233948bb66f7c0d"),
		nonce:              decodeHexString(c, "aa968cf91916d7e4b1432515134a8c81"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "83d1e55d779f5f642bbe47e6ad83ddca81c82cdeae6c459ac2fb65a30504d030"),
		expected:           decodeHexString(c, "92eebe641687ed6c81d2f64b1478e84cea3e73f38022945ff0e50aa393af45be7af45abf4cc5a1d2d0698fffe858990735dfbefb6ce02f5885e24ff676e4dd233dab877dfaecb7c38eacd704db8a0a59bb5627217987dba850f611ffe5c04b02066f511328375f1e6db9f0b09d8fb4b65fd0ffa941e706f6f26ba5d9c40e1104fea8dba9ec7e975dcaeeb1c9401d5bfe263f22c3c7a68d603480e3328e031c46d93b6e3180592ec5e0047db0ff39ba02954a57ae62cb439a3a9726e45520dbe9b70e9e4dde65dc380500759d0b752db2eb2e7d15c8ff95d34dd270409a9850bae9b579006ed40cfe753bc8d87edfc568c0ed5172ad9c58e1684d1aa9673ad4ba"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_5(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "cb6ebb2382557833740855a15e76265a0997f798ead62670c56f3343a97c75ce"),
		nonce:              decodeHexString(c, "1636f759a131a3a828773c8ce197643a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1cdebd2eec082cdfc362b21daa23edb4c90af0b754f38cea358ac974c9dd8582"),
		expected:           decodeHexString(c, "901da818ed786fd6b3812f20c868f31c0e1af69582dbfc369a58b4832a560ec8eb0c8a054b43997f7bed3f8360df0fc253aaa799944d9beaee3bf64685195ea6413c3a740dff52a9aa3f8bd888aa9f1e205cdc68f763c14f67d0f0094b5a2372657596fe9cf3887cf9278d7f54d38b501eaf47ce621291eb6124030223a8cb90d2c928fcf02ceec92b46b2c6eab53c0cf8e9c2c80861089a3c3519a6f505bca0be898082b5bc96a9b84261fd1d059009de7d4ae8497f9ffb93cbcaa7b34a5e6de278c27588ef2a8f2966df7f941d19e5dbb4b1469aad92a6e11aa0d83805d78791418d8aa9475f0770609edf989caf95ed51628239c67870166d8a95f1172341"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_6(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "29734d4d18484a45c82c13f78eee9b772b99cde1547db06d0bcc066513cbe672"),
		nonce:              decodeHexString(c, "a1944ac1b50bef509cab0fb9ef8337ba"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "629f84483da62e3629500172efc2c812da80d0cedef8a816b0ccfdde205de224"),
		expected:           decodeHexString(c, "cc824bf3c690f63a346e0f3bec5834e90cb35df35aa5f025c64cd70ee98d6a76e537629364cd3f0e7cc08143e4408dedd82873a2a6f58b08d2ed77a06c2aa61ef7206f9675837c233f81ceb6368295cb017c796891f1291e213700ecf062884035d6004c292e04caa188d86bbae63116ae92f0269bba50264121256355258d2ba83db3f78acc1160af02a2214f33754e81b12bd3fdb9c9d4697bb203a2a702adbcb8ca1c713d04d6135d53e26603248c711ca1d481658af1492008b2b340cb4e701978503c16a0621e09a2e604c7ad3c9833c5cb5ce0074ddc9e554699c867e7893969653a09ea48bc2e63727c6ad792802dfc30fced1c5786c130cb033ac3a5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_7(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ec316425c0fad733121ff0c825672e49b0add01b3623bd683b313b03d71abc86"),
		nonce:              decodeHexString(c, "7f58a71dfc67a53e6f0bcae3cbfe0172"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f634d532fe345e9d5180521e50f7beee0622c898b061c91128a9df14b0db7ddf"),
		expected:           decodeHexString(c, "28ccda364e787881c76eef32367a4f41571c27d2343e37eb54a6455d671317fbbb440a82516bee4352f907c4ca07b5f9524a63908b0b6fd09787e8358559798042c5f468c05a7ff51c277ab6771bcccc3a4a4c1248d4027c9604bb7c99516b749cadb6ab26363038c6767cfa5a4f7b7ce39ee34112211d240717420fdff6a487d6e9f9b606eb30f17988f094e2fab4747ca26d4783a977487b8d59dd09019e90519e280654dec664346b78d70bd6700716f560ac11c1d85fed257a3eeafb13089c0d4398ece4cff5d252fe20096651a9db04eef9710424e1346001ac7685849f34de8ad27b229f43e504e30eeaa5aec7e9a321eca9b89115d73f5e305d487462"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_8(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1af338f56cb540ceb009b300e57fb7819a3d949a239c15709db553ea4107b7e7"),
		nonce:              decodeHexString(c, "6fc922b60e4bdae5637e65c1a32daed1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c20776116c8ebc1714d9a930bd2ba427f8e3a9f4b2fb7da3f9cbb493610cfcc2"),
		expected:           decodeHexString(c, "ab9dfaa423eea3045422c3c52a0bd11f4f0d92ae6bc1b7a7000b3cfcc0039367bc04a7f9c4a50531d93e09e45c69ad9e3bad460354459192e4a19eb4187e14f5a879bd2e2fe8bb4a41db5b69713b11a6a7f1c729d82f954c9d201541762a56bdcc56a4842d773d681807880c5be90551e78242e78e7255d35a965df66e38c14ed38aba864b5bdf87b3f47e1e19a7f4209a53625080d23533eabbd34206c126b8f0606fbb6f5cdbfca97dcd18ef3e2b3be869ddcd5299c2824b32616063c76f124e1ecbf438ecea17382bde80d86848dfe5851cc159131359ae71fc4d0712da38225b2043ba20d045a47ef2f97043d7710f7192dc6b9fd2fca88e18866346fd03"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_9(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "314f01ea0c6c3f6ce124c8c5c5874857c82e79556e050793d25e13a0147f4cf0"),
		nonce:              decodeHexString(c, "5548778595f96d31e390e2db699e0d8d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e67f87612cefa81e4ace5c44265b45a08ce46eb92274c3c0e83cd159bc602c87"),
		expected:           decodeHexString(c, "affb707935fc5ddf56392f778fdf5eccb244e704cc8ebd1030a8fff5efe423e8965416e36ffc5e9d2c639f76e58de32d4d69cc93a7bab199209add77277007067e48864df207376552432294d7962091879b3747c84c9668ce92c3900204ee64e60ca26213c3e23fb31518d8a3fa6d5a1158cfc96e2aea76fa349c8c2b3f5287c21e93e1de68a39b70d9491ec1a13b7bb0a0192b754428efd0fecec1466412738e11357e4b0b2c9d2abab3261854e31d18803039d31e29984aae3eda2133d7d3203686f3a9970928138650ff8cd165a64e71ec7659ebff286e9bc8479e8f4667faea6aa1c57ea5b675b07fda14f1f6c9e5bfbee6ff255a3765f37217ebefadcf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_10(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "9e83df0d5566c74f8956c7e0860036c947a301252b1e817e6d0c202cf9d2a308"),
		nonce:              decodeHexString(c, "9332743f05778bd47f50c49bdc02a394"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0d50e29816729fab148aede2a603bf693e716b5641d1e8158b5ffa916d953ba4"),
		expected:           decodeHexString(c, "a7643bfe540d4cfac23f48920bac2d238b7d1bdf0e36de1e82335266f41feaa19dbce9264e6810b4865047acb1b3d71872172b6d8ab7d779bfb302a79ef570373037d1dec14947e05e1103dbbb9a69178159edfe466bd9c7ababb8338aaff70c9a2e1d4c8607eac81df38391cd85cd5c0605f9c169dc3cb0bf75530b7a889c426a4a2732678f39d45f80301f3c8e0f0c6e24d4ce70034de809c600056b18475de478d13a01423dfbc215740b5e7a42ced5c33342c8d3e88c5ae0deecd27f7a257bd14368478f3d2e7ba30a87f9b999f437c988cdd1955adbbd4241df79a331db44dfbda56a4a3457b6c62a99e4957a0faa69dc142fc21789c12230749e419fef"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_11(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1b1ecbf5fe151df1506e7a9620f7df01db1915d0310c65d16718533f65dbb19c"),
		nonce:              decodeHexString(c, "9381de35e9ab0281dbfaab246548dd51"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9ce8eafb1e235578a6271cf54ed54bbb0046db1ee923f901bff8f7ece800dcd0"),
		expected:           decodeHexString(c, "d567dd21bea62bf5826b32f917a4736925fb39b3e81db32f59951bfb6d4669ff484968944165fda1673369aeebe964eee7325bc9e51b160e356f7e43d5266ff4bc15298cf902ebdcae5409c2a6449ecb5b30d0bc383c278db9aa0767763776e2db7ff1f484e2a0f8970aa1d8f5859a65e62e855149301eb68ec441ffa2772989302695581089c2de7240bc9e141332d31099386eeb249caa3228185c020449bfc8306d8842778c4002fd8d2c95ffdbede65450ba5d4701de1292fbb549b6514d1e79599c36899979cb9f963c20758dba2412dab7c3de8763ab67402118e025666fc9031bd4d46318659908d2e41abac0c34969bb2a659c691c1e5eda5ed7eeb3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_12(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ee936c2f3bf0a07abe3d400f343d790d82f49835bf56a355bbaf069104e843db"),
		nonce:              decodeHexString(c, "d52f8fcbf25a4610e2fc09fc85f54df0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cf1a194acde6f5bd20778f25e8f77a456be92708c0ee418b3d4986747c8a6ec5"),
		expected:           decodeHexString(c, "f15a059af4648c034cf8adf737c7a64bab5e8100bed7558a4e5d3f6c5598b7cb818814ac1ce9d7d0bce652a8ae9df2738207c8904f432c1aafa29a275aaad932ad9e6e0d32979031d110a95d2f479b541cd5b47fd44e48082e40b6d176f6b498b32fe7c7da5599b586716af1d5431a1225ac2e33dde79af580530cd0b51667076bf5d6bc94b6bf58a905899dd73f3045a9152ee52780657262a43d52da59e9b63524be768a6164cebbc70664d53ccc83f573a864ce8c73c307f51675379e824b43238dac8984d79e0fe150e5766d1692c5762f462dd4d5190ea4ce978d36f3ea2145a104a7b2ab38d278056271829bb88edcc6153ac251f4d7878d7a51d44552"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_13(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "947ea89ac332f8132602ca76c418623fba4a2266a54c9a22c4e8001cb0383b47"),
		nonce:              decodeHexString(c, "81f35d00b22aa6bc243c26d10f7155ce"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1768bc4734ea315ae73e2d30b499ac7862f19bf60f22ced7908ae35d9123f055"),
		expected:           decodeHexString(c, "f42d9d372907b21b82bed1fdfd0d6aaa58cfadae22004844f15eafec32039a2b170621d2de8f775faf2441712825419051dd53eb4cc9ccdbcec711e2190a60a76e66978b04732d14a0ff2d319eae227bcd481f2a4663d6d581e0af351c6281ea031ac29120888246d8bb364114c35aa3518bd9f9dcd82b5320a6efd6ba10e98a92fd52ce30fc5b0989e1bd04c11df72032283f47bec684e2d5082e458ccd957bb46744e3b105dbae91c851585b708c42f27822e0d364af6ac04d1c88becfb2f63409960ea76319b4c4c812e5618c273607ad0360a002fe10ea4ab342e0f66894fa500821798456bb07c0f1950d35378a1dc795cb862e52da874e605e51c16b5d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed64_SHA512_14(c *C) {
	s.testHashAfterReseed64_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "bf8f1e59621bfeb81f63dc078d856cfcced685df990e4fc8735ede7e7802ef7d"),
		nonce:              decodeHexString(c, "029bfcc6336b9bba56e0702bd1cc57a0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "530cf5480d2aa8c54ae7f63a6f28596b5a060902c7764a6a7b9829f66aa8a440"),
		expected:           decodeHexString(c, "e05e053efa1ae9ae41cabbf34a9b3eb48d1aaf5d27b3e1002c6f8dbf9844394837aded6f6b9e0754f200764150b27a23003523282044ff9a73f3604ebfc86ef063869f97976c7a5e4e9a7be799aa71ee1cc695c620703e85ec774c467bf935f2e210563be78e3f3d58946a037f7826a2cb377e1bb7c2718b29708f9efdee04055ab35a0e06d2b63d823d69cfbe08be89c1a78007044bf7337e749f6fb11c80d22beeeaf1edebf00ffe6a9e24874ae8dd482a0b4a53be4b290abce59f9e839602f9cf466224783d827b3e53eea6f0f740652d2adaba3f13a3f02c65f4e0ddc417aba3081325f73789500c97d6ce5b7728feb7353e01536706b62eb226a23b43b0"),
	})
}

func (s *drbgSuite) testHashAfterReseed66_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_0(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "83bff60214370ccb1c8f2142b528ef70e71dcf343a42f149737c43c869886901"),
		nonce:              decodeHexString(c, "b7dd677ff8891a3a6b3e63920310bd82"),
		personalization:    decodeHexString(c, "84719a3399ed20d47f5912e888623f8a0929492951d65d8b01376150f13fae1d"),
		entropyInputReseed: decodeHexString(c, "aab08d7baa18b6b79e908bd7c48ea5188577988be95c34b6aa952070db27ac4f"),
		expected:           decodeHexString(c, "ae39d5886dcb734d7eda77bcf0f9492672fe771a4a196bd18e547eff62abc3fdbd426b0690092699a28e49fcb64b036cf4a2e51321214ad742edc099bb5bac098f834d22bd6dacd006f3f9722556d335ff748378ef12c48d1c3ac223554616ec6af318b6357025792dca4ce687534918c8e8c569339fe9282174035c1a74bd453a84a2458fa58e56e265aa10573e248dacfcb0150d89c60182076111a461b5acf0201bd0f2206dc24a6c9a846f7c0773f3deed13447f4b89788e681a6fde808590cec544bc31af29d5164306bb353bc09ca6bc8c95ea14b18189cc4131457ab734fc02b6a39f2defecfcdfa5fe65b2589800edf6eef92d1399bc9281b05083f4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_1(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b474aae400040144581faa5cb8e246501713ccce68a38505caf8a8e71c156946"),
		nonce:              decodeHexString(c, "3d7901a230510e3b2e164e0e42038767"),
		personalization:    decodeHexString(c, "e09b25982b821345fa97cb52fbdeb80296db2c21a8568dc5f62fa3c65923a9c7"),
		entropyInputReseed: decodeHexString(c, "9bd9a8d798b3eb9ea46f88d2334ad053785f8b1f1f25264b3bd2eb46117bc7c5"),
		expected:           decodeHexString(c, "21a6b592f770ce29c040d18942794f91eac151cc7767e7819f7f9804b073b365142905f86e384f7a7282af9c92da5ed27302ad500b548ded8811d058b45aad6d1cd820235b2618ab2d014faae0dca4f2eeb805ea6578d4872b1e08fc601d7c16a294350d3f4d0711fa24625d92e288a7c587e8a1b756fdbbe1446427573cf93f3177bcd8d52ebb7a21515f3b509218b9bfd0569bdee004f009ca2e83994fcee5c7f3cf3d18ae771441fb7493635881e94dfc89014702ae01da88d255e914da947105be5063d18e9e92fde862488be5014462b561e7bad096f1820931ced8164b501e47073bcbaaed1523ab9c60dcb73f5735634c8d8c3f17e6dec9621e0afaa1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_2(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1229665b53001e84d143fdf582a6b4de5066ccecad43fe6926f01c28ea58fab4"),
		nonce:              decodeHexString(c, "ad50fbf406c66c92f2928d81c3ede175"),
		personalization:    decodeHexString(c, "13ec27d912bc09be1be65b66f8e229948f29507a51a3ec20c0c6ebf093968db8"),
		entropyInputReseed: decodeHexString(c, "453de799acd9ff543a26474e73103bcc8546aa34d18c800ee7f73af3ca6f796a"),
		expected:           decodeHexString(c, "ee57d24d2a2ecf7eb3246e75539ccdfe809cf3bd1d5d9e935dc8cb46b9818a6cd0359f5ce466440f3e865ad91154d141547646206dab6345892c2f14c577c9131a095e022075d4bf023104c0f472a7657ab2e7dbcd285e898c8ffde5a33b3c1bdf94c647e02875856b55f194acc0de90b0a0842c8360264c5ddddd04817c94fc4f8ffc0b09264210cd2e541a5bc9b9575898d62d98127faabe614c6d12cf535e2c124efc260999acf311b4610e2b09dd281ddb85e4df8ca14b9b38437be6ed10bf966bfad8973d343744a21c2d72ec10082cff86ceccfe83161b93082f8789de90312bc1956d8832c31cd66c81e8a31858764c95d671fc0485a10ddec694da44"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_3(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d02812b2142bed67c8847793dcdf72e69d0d83fb0f7adb7eaa97ad81aea9f4d7"),
		nonce:              decodeHexString(c, "5d2785cfe101031b2b0c813cbf74976d"),
		personalization:    decodeHexString(c, "4f7b05cdbfd0ecae00aa0983e6ccfd1e1a78c974e63190644bf94d7721792c60"),
		entropyInputReseed: decodeHexString(c, "fa8af7946c71955860939942d659e78f341995c0214189ac04339a8b68634d59"),
		expected:           decodeHexString(c, "f16d3374fd78d22efdd042bb852f7440e5c05d46dec8bd73a72ac7646c169fdf37fd5b105b0a2b172173f17c2d53132f8ff328553e849f821252d7f18f4e65b132b07b69ec99984f1a7649dcc053ab377d74bdc6d995f2e8671b0147895651a10aaea6e57a73c817098f98ca9b8935d452fe5e16747b71cc49b9eed9e7c9a41effcc031df306db04b8aa7bdd048f933f2a8461fe637d35e5c30331b8faa768820a467aff0d9a7f8b23acb5b990906ace46b2e8ce0b9a8d53cf0079b8c927ceb93413cf01d4321db93bebf04c750b59fb4868a9c3bfe128c43459f9ca7980ad38b2f038f9f4e502642d2e73283eea76632cb7636b95128c14d4e75128c6464bbf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_4(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d62cc8a565562feba75d65cd12f1a15db500c2ce0c91254c41f216fd208480bd"),
		nonce:              decodeHexString(c, "8d7ba0d23ee2fe8fe49da92b5671e958"),
		personalization:    decodeHexString(c, "e129010193d8db2ca355cf344be6058993e80d151e01d0f909fae5ba7f60052b"),
		entropyInputReseed: decodeHexString(c, "c20911f6bd2f5d2ba6d1a7cd7c90ade152a2fb9158eb6e666e73acaca355e65e"),
		expected:           decodeHexString(c, "16bb2b05f8670e5cb27f8476d71a875b1bdf67a73c3559c95f75632c696d96b350b16e9dd9ffeb63773b6e609c087fb44d9f0f9af26f3cf9d6887cefc3c9826dc3e09ddd5f43b2838f71265cf003fa6ae0d9a95c3347cb9e23aa473bfad094ee4228fcdc3fb58dcc96f6fdc78282d51d5e0616bdceae214d9197fe5c06f0ef21dfb6836ac5876f16162f943697662152ddf25c99a7a685f88fbdd3342538a72ff7c25ab20cb28c1f2213a8a479efbf2f3fb6df025a522bcdaac5d1d31a605265dce146677448d608bae4e1b1eb3a731b23648705bbe844d01f4603c940a54ec7122469e7a97c9e743b2a8c1a29cb3cb9cc2b0d6ef8b44c9d6a3728fbe2ed31ba"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_5(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8f5bed7d928b943dd2029c9454ee9b1b5659f6960babe79a2ab2c02f8571ebcc"),
		nonce:              decodeHexString(c, "35b0cb8ee6a671591985695b793f6920"),
		personalization:    decodeHexString(c, "4c04ffde760da76cde9545dafc306b7661caf29cd383610105bc6ac6e6fe3d30"),
		entropyInputReseed: decodeHexString(c, "09a54486029938d60ea76c8aa3f739a1221a35949fcd750a303d0c24e1fcba23"),
		expected:           decodeHexString(c, "9d2911c56e34c9ff1bd40865a0302e1fd00ab3722adec18c9f705ea873415ca70df59bb8ad4b13c3a9fb94893699e6051f868ecf3f093053e7bcee940809832dc676978e7800f04c781dbf8fd7567a6d20aa5dc3b9c62b355c2f35331606df8b8ddcd521016f725fc63df0563550f66cdf684ab55fb8ad39ac35c8de3990ef673fc0b142892ade4fcec0fe50302daa9d725d787446664845bf30b33c08cc31e9bbf52b441957961948307a2adae5c96fa0c239bdf70dbc3c67956e8b0db1887acb85b3887335fd381eae362f6416d7f6e3b944041f9f118b1427ec69ce440a068dca95504fff7cd58e65d312a7ed44c7f44373d2694fe670b44378eb0452900b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_6(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "15083d7474e3ec14743fbe9905477183bfbdde41b3132b9d55f3b361cb4eed6a"),
		nonce:              decodeHexString(c, "1f1d909266390e34bcc4c5fc8b9bc0bd"),
		personalization:    decodeHexString(c, "fd8e67539dd6f68c2f16abacd0ffbd1782323a4f110259956998125e09831d08"),
		entropyInputReseed: decodeHexString(c, "54d03cde16ccc69e75d59661705c3618e54e65638ccc1a1aea668404487cdb51"),
		expected:           decodeHexString(c, "6c471cc952ace783f6edff124ef73589ce7a074cd20e704bd84cd7506fb80e7c2ec5babf13322c53c53eb299685458f574a2da6e1152edb92497fbeb4eb7cb966619324185b379eaa886321e6c6dadd24087f5211a1bbfb3b18ccfc35f64b5bdc93fde681c11eb9033a093b04281964ccc0f76e1d2f345fa7dd315c3f84d121d644327292d2fdc7fa5fa8552d62853c6edfc23cc55ca77604000a83aa370e64ec3a7b6d1f3e59c8e99bb8c7a3094cfcca9ac740843026cc84cd8663e746aad95b0dc966106b96508687ab45a62f2257c4c2b59f4c9b21360c67f7191805e6c33e77b5f47af951455e62106d05e3b7f4e8a5d5a440d7bbb29103bbb7a005a8f09"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_7(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "07900b5a3957219f53632dcc05055b2699c2099d9981c76740361a4cd9179ba8"),
		nonce:              decodeHexString(c, "c0317e5ca360f389bbffd2b2fd4aab5a"),
		personalization:    decodeHexString(c, "4518d8eddadecc173c7b4306319a44887dd3c328eb5ea596d68ea19d97ddbf06"),
		entropyInputReseed: decodeHexString(c, "7615323915e6e206f1cdd6ce8b5008b94cf35cf5f83ebc7968ac83fbc3cd47c1"),
		expected:           decodeHexString(c, "172fb0ddb26f98023464c35e0c381b6285abf6282b6e296974cd83dcf26f0cfbe558e0ae8b86b91019cfd140e97aefe9e0f6e467332cc3d92c0a7a31f1685fc9ccdc0f2e5a26350964419de38454f45d81cead79c8d93aece61a2805a4582070029a97c1c2f03b104daee9bacb1775d240e414742ce2b82172089a644396558b3c584f2cac00d03e8e04ad38ebf8ba7ad6de9aa376ee64e8276a900ceac6103fd50f520e304b5365f4c536d8576dc426d5263670ac0e199dbecbb01843bbce981922ba29d2756aa0f37b31b4bda76fa5ec7d2aeb9e564eb3a654030495487b08def499c0db73f72803f0f51540ae724d7b6b44ebb31c6351d09b9b4cd36e5d6e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_8(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3a35e59d1d8e98114b2397a54c5fed5533e6f4fb34b796f22c98a8d08789521e"),
		nonce:              decodeHexString(c, "a644e52caf295a8de446338a4bf1b611"),
		personalization:    decodeHexString(c, "9b508d12d2bdec895e3500fc983d1964ea16dedbd749ca78b89cfab4bc7af303"),
		entropyInputReseed: decodeHexString(c, "e6bf18d9b1aaf6e1a656ea4590dec605ee2b67ab3e0e178a161cdefe3bb02c8e"),
		expected:           decodeHexString(c, "db304d406e540421c9b874f6dd8a3869ba9a7dc1cbec2959cd393e6ca46217637f35935a1019186b905f3af88414a522bc0682f45cb861714a2379beda2741ca6d4ff8014f8b8c2ea8b1aab79b3a2a04c4db6c41e7fcf3cac5148a9a6e3b0cb9272ded6b77aeed42e09a02e689b2f36f3385fc32e053ef2c45b6fb01d70f8285d19a3f516653924baaf8e8725150d23bb3ee37b992b597a836605a598c4d296a2f630cd30547324224fae08119ee0b8a94528929f766a0966de0a8ca28202b1ddfa0c177624f64108060b7899d3c611d1dfc7ac2980aff688317a94c97a9b94ae75bf594954ef91fb68438dc9e21f457a4965ad93c252772cc31e4794b73ab56"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_9(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5ac87bc0562000bcb05f5555d2b1247233c75addb0a79f03f575f956e0ca34df"),
		nonce:              decodeHexString(c, "6bcd45ebca437341d1641d3effd9292c"),
		personalization:    decodeHexString(c, "918856eb731af4af6020078ba239d371b73afd7adc0befd194c42c448c6d5ee2"),
		entropyInputReseed: decodeHexString(c, "8df6b7d251dcbed69a557ed52858c4552cc04f91087e573f8ddbc7d952cb53df"),
		expected:           decodeHexString(c, "c9bda7613102f1781c41df615536fc8d8c6ab70f64cd784ed6488b4f38371af6bba1ef976471d1f1e31459ca821f20bc03575869be9cf4466914619d96ed095c2d0c2d31d10e431a8faa1641583f468ea7d300574551b8bc3e494633ef8528bd29227e00546fb7132091f04c6985003db8bbfbbc40c1daa4153f120699c3bfb578da6e89a3e92fdb7d4e118c88e0b9b735bff105a1663f3a5980699d4b9a9c53b69dcea0e26741949a9397e77e91d2ceb93d37537a1c71adcaf1a45de72d70572538a5a9578ce4223061907885d4943a7e431d201e0382352f52a1a0badfeb74d47de174047ad2321fb1d625f3eaf2484274b5efb096a4b44001a58d938dd2ec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_10(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ff164d57b5b27cc24cafba6215f6ebb0348ec39330c7672b8d52679cf172641a"),
		nonce:              decodeHexString(c, "bf7646961cc28c8f4ace338318f58b99"),
		personalization:    decodeHexString(c, "6011d3719289bc8ae516a42a19423300d6cda0c4391f7b5a07d204066b1b8ed3"),
		entropyInputReseed: decodeHexString(c, "6851cea95885bf7fba374e5e3b4af8a692065fdf00dcd5d8af7ce43cd6833de5"),
		expected:           decodeHexString(c, "d72a2b0fdc6d69bf7f46aac605996bb434a580065707ec7391b7fc36d5b098e549ef5d0d62cbf8f50951ee3fdfcc8c1b31328640bf0df672c38d85aa7cbec5d8aecf6b8afd4cb621f38aecd6ceefdeda0ea28eda12247d007645c4450ea5ec47409b0b50e8c564aa2a58519cb014491e160d59252d460be23cce57f09b292faba8692b7f2121549a3979404fe097e0829135400fdb789d541f7ef0c9063440aabf39ebd673f38533ee96233414f807789097862b8c4520ab23889c81fd3da5c3f5d88a8ccb4c3a77636da1c95534143f0fd3be2c8b780779e3e1852da98602b0e0a2a7b9183d160badc5c31771aa328a9f89c8ca4ea856f346a97d037b5121fd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_11(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8c9a93e90760f9e6a92114d907c83a34d99f53ee631d086e40097966f52d6366"),
		nonce:              decodeHexString(c, "f8447defb777a0fb79d985fdac841e7b"),
		personalization:    decodeHexString(c, "6db51dee5e9072f434fea76007cd303e25a337d4d44e22605dd3fa2b4c8bf783"),
		entropyInputReseed: decodeHexString(c, "43709920a57fe7aed106f3406acdde5adba487773989f721642a8db99e4e5000"),
		expected:           decodeHexString(c, "1d6a2bc062b99129df19607a41b04ed7ff33c7f5c97715265db40111d28147452ef5c26d9f7d3850de9b9d4719f32c88b16715d2a9cd8013397d77d0140195e2dc3587894a58de923a27d414bff316095a2857ab01169bf5f01fca0d33f39cfcc4b53d1e5802f0af7201c66d294f3ed77f5579ebbe72c522b8294c5fdd902ee2949b94b193fb94c6a62173d42bd04952334e8c09ca027e2fecfd675618940c9f7fc4635bdba3b79b5b3a4c455b1b5e7323bd478770a92540bfa6417163c0ec433291cfabd42c8c2c0439593f762fa971a1813865312fb92105998ed022bda7d14bc68a338d71ae7c68fc8f8114184c233bea98998466b80f9861a2b152b2f7f0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_12(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d9541eba8d71d5eb51f9926a7c7f2d265f52d781c86c980d6ecdc9a5d1c65a3f"),
		nonce:              decodeHexString(c, "8e8e3f7f0d044873d071447b566cf53c"),
		personalization:    decodeHexString(c, "c9aadc0ef01475da0e0ff0cddfa5c3bd93f6c092fdd7920eaed2f4a3430bb35f"),
		entropyInputReseed: decodeHexString(c, "463934a1582bf82e55f2a83acabf5f371bf6f88dd528cedd3e35b4779af10b31"),
		expected:           decodeHexString(c, "0677afb06fc1397cc3dbe53e6ea1b0737fca756bbc976226913b53988a3bc89c83b48e6236a96da1bb963e92053d6f7a26a0b024691f82abe9d9ee92beaee24d319bf58dee095b0f6f833417137165c9529cff7d73abbbe5f3efce8bf721c97b5cf623f4fa80b04e569bced842c3d31621ab5bd3cca141d9046a6483c4351a5f79c3dfcf4fcad19775f0e1916def993efea8f9e6b3566f5d214db369d6edd6db98f989714693b9f5b647c4e048bfae16d985e14ae293a3edfb0a50c7144412b0e73a0daf747690847b96b3b514d2b122ed6dc2e10e6f03c55ede0da06a74acd427bcb413b09c634bcb784f54ff683d11c10dcb3d439a13f36e611f7c5e333939"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_13(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "9b57904c2a49bc902e114b486e1d8f5c0ae3568b2dc27fc24b251a47615fd885"),
		nonce:              decodeHexString(c, "cac57244fd2c991c7367ea9661a45f65"),
		personalization:    decodeHexString(c, "58908ebef9b5a438583b9a11f6ea03e24e8a54d91838f2d3832fa7f15378e82d"),
		entropyInputReseed: decodeHexString(c, "53e7af068e863aac2921f910c8e924e2840a52ce534daade22ad7fe11edcc968"),
		expected:           decodeHexString(c, "f97021f2e15776acafc63c5791fdab4f27c1666168ae2c53b309941b03b88e8e848ff2e6f62fdf5a2380d4afac644ebe27b0aa888cb5c5f5c26cae5bf8731c064ff8eac1cb83d696ec5463563d4f1ce1f803efc40a8bf53ddf29f855414f461fb1685004fa19ec58d69d731f27bbcd170a5febeae2a2984b077632e51bf49079bcc5664b159e1c598bdb40ff3f71761d9e05da11f3d9cf4b107e734b06187eaefbb72e7d04e5652b44f98eeea495da863a60d25320078abbd17dde281f93493fb36d083528e86b35336ab3be04720a26570ec667d62dcd53401f1fdca34a820982025dda387526ae4c1f93e11c89d513b625997e6c2969bfb7f1ca5d5e996259"),
	})
}

func (s *drbgSuite) TestHashAfterReseed66_SHA512_14(c *C) {
	s.testHashAfterReseed66_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "13af1abe6169ed47a2facb2852716861b84797156ab0fd02a00f84717f084040"),
		nonce:              decodeHexString(c, "1c983b588b7410942506fc2d53ea68b6"),
		personalization:    decodeHexString(c, "3774868dd2fb58fdb51536aff9b8e0ab76fc42fec227dea910e69f02861e5f23"),
		entropyInputReseed: decodeHexString(c, "7fb27faeba254105689452ad111a163e7c21f43904f4dedd4fe3f9242eeddd2c"),
		expected:           decodeHexString(c, "797b0aa425016ce3d650148fac0d63a6b26d7ea659d6d0825d39db856db3d47f88621038a3426eaa3fb08409f8c1ca6b3b9eb3cdb0497896e86551237a9c5aebab71926ba0c3103f77d550ea496e1d0e90441882b2efde60f05acb0d8145fce5c049c9edbebb91a07cfaa3dbcae5c6ea2351ef2b708dd4fb8d278076caa968055f1c4874bb10ae99cc522e9386d0b0021b61efc03083f880ca8d0cfedea8d31343ca57d65679f3c9849eba98f5afc7ce4dbd2e88b3c3dc145865f1d9ac3af4dea88859e087c1008b13e36d323878f4dc06cc9a0dd11d2500180ab009b1481a6a176b4e07dfa43f1de1a7dc2290ddfe4342eefae542cbf29aba1131e715dc4adf"),
	})
}

func (s *drbgSuite) testHashAfterReseed68_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_0(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "2915c04e0de52c7d4a3223df4581ec070b7b4494cad3a8928981d74ccd78623c"),
		nonce:              decodeHexString(c, "9cba4cf2434d0f4d903668e28b674922"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1b248e3421d9417eb9d4d010b6d12b64bb3b0f1cacb7f7ea3b33512ef670feb5"),
		expected:           decodeHexString(c, "508f16039546fd38aad1aa5d2908d0cec11420e0c98fac0c0ceeb092608e034d71668b18cfe4ee49971d8efff39018b653918c431e22287f222e1397c460471520e07473963bc5085ad8e6ae1fd22ad978cf0e6888fd854246b5a36467087c1efd49bac8660ca12a8951c639f4ee97274e1097e21e3785d028d332516afd02a7737df6f9558b3116b09f150d6ce30941eb4809476fb536e22a4099b55c407f4dee8a6bf32bb71bda74f654a78131dd86d1a2ae0b0d8fb3c145bd2924e5730335742d89f2e9d1961700f57406c709635a7020f6f1be08b85b09a53c0529253f690563902dd6f6af244c9f1c5d8cd95c49636d2ae250ea443af13985e378f25195"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_1(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "aa20e9a152f429f12b13659912d948a9418f0a295d9e68c8edc75cf9ebb3a3e4"),
		nonce:              decodeHexString(c, "e43028b10812393d327c8017d1b03984"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f1a0310d7c252a041ac095103a8e8400ee6e604c850544efff772e037350c5e2"),
		expected:           decodeHexString(c, "eeeb4da92c08373e0d0c8b497f14039a395f8f883da1e09c100867082ccde911008720acaf71ec4f6309c5811afd2b807eb9fa0b019f08963902392d2b2e3cd9b69c35a351d26fd2375aac3257e588e47aa583505491cddbacbb605070acd2762d2ad16ce19b220d36392640643a1d4aba8a674ba33e06b5ef268f6638e8c39df95ac8e82409d7159d5430189fea762d4cfc48be8fb0f47944d390759dbd2cc3ef85f25178fc4f819127cc073cd6d01b6add8673bcf804233f847cf4204343be6463922e9ad48b1b4063ff0df6d350070eca409929b1857354d149b011bcd0817bce676d12c1f61a92d3f4f68ea4956ed55a9cbc5070f7f75ea062e8e8bcc477"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_2(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "147da4b8f082c48df3d65f506a4ec3176d45ca1c4a98264d2eff237d3077550f"),
		nonce:              decodeHexString(c, "be027a0203e1df108597e405d25e215b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "03f49d655aa1da9261509f91ed2d464757b11dc90347659a94403ce3a0499305"),
		expected:           decodeHexString(c, "46787fe78cd8fe5cd75b8239955432ce2a574ebf8e4946fe169b7f624851e00946f89acefbb0ddef372637f823ff80866293e9b2f9430fead6807157fc15fd5d4128623a3ef9a01f2445bb7e5738718f2842e6770291970b50d93813ed07e040d573fc681ba1b2f832481f97da4b937918433a7661d291b47417dc536d32e85475d4b9eb5772f6f018463decc43e4b3c455d0b17ebb6afcc6a6d2642b7323b100e5807555fff24b576fc257600d026dacd9b04299d4f2e33323f465f1746572f7e9409da9a986ec576e4b2c3ddd28f37ef4c1e7b3581408b5b2206c81f8d039ef39efff23050eb86eb4297fbab73a46d7f28e72cbc754f84bf5d5ed6f1bb7764"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_3(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5cf591ca8b376252f09e59391107f41de9d12395b561d5914aa4d69129476e9f"),
		nonce:              decodeHexString(c, "2e42f7346a48e92ca61e18e9c20fe534"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8b879fd02ccd791c68998f3a6f0d0587896a182440a892a874a7ee78ccda885b"),
		expected:           decodeHexString(c, "7f038c6e36a0e1a4359cea912a5e7b739832720528671a4e3e556902dddc4976f38fbffb4c01353eb1a02dfd2ffe496f999eeed1c6e17ae55b37d37633ebe0f7012749a4ba5be6a703062ff91adec5959239478d1f01ea5b53340ae2b0ecf644019bfc5757c8f28590360089f93c66224dacda7923db0c51340b0c3fee2ec40deaa64cb9bae252356b20a77b3afb70468a231be19d4ebd6f5b63a56ac097060b2f95b2f9473b7123e0d00373f5d708ea9a97e36b20a3836f77a790dd9e388bc1078b2eadd5d66ad58fe856d37c4587dcf28d4f765b08467536a51e6f2aa9a6b5737734436b5cc0c5a64c26db1c21ac3829341d316904d52bf81a4ae890e6c7f6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_4(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "99ed4ee0671d9ea2aaaaeb6b80910b058132804139cac9e0c9e1152ac2128514"),
		nonce:              decodeHexString(c, "805e6a27ad849610f832365c243af78e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "99e064b76a604bbb609523ceb0085902a6d0d74cc4364c9649f73d7bc94ac4f6"),
		expected:           decodeHexString(c, "2dd59dca1c2b3654d810261fc01f3a0a9ebb20d4cfac664806665e128245fb94be9379adb0d96f03a7a5e2a1d47f17c43186a4e6d0587a9a20ad96fe26769a470a6edfa7f489627d020eb5b657b9b82fd935344c612295d9b732789829867e46429a3f5f058a9c7125a13d0633087fc714990a2a21345c70dfe990b7ac29956d5c89b3c08730725dedd04929be477fe62e66d52ab056c500be1d10da01a1cd5096f4069760e5f3ff83695e6b91eae226d57586eb104b5f837a8014ddecc5e618dfcc97e35e40a541efe8b80c4f38c6157d77974327c4c029663a1bda4169cf4d051f3a2c82d84a38f3a2a283c082f65e1f689cad4ce30699c217f1b8d1d614a4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_5(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "1c8400bd67893185c1fe0d77ff0d467e3b8f92ab022066c77e493a76ba08722f"),
		nonce:              decodeHexString(c, "69b651540599e3c319ba302123f270ff"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d25b161f8112555c82fb7caf97604ced6b273767dcecbe7ec16ceb33bddc9fb8"),
		expected:           decodeHexString(c, "88c83ccaff5b95d8876ef8c11b9196993451cfc704448f8be7bf0c5496804abccf350c0d6432e5078f4eb879a6e31a735d93b6e5cd523cd48125c633e5cb307b3a2c35091a141e0cc658a1becbe0edf453eac7b6d033eab5de03a3e1bf9e4f5c3ac8c65c4f08f9814a450cbb2b49a7fb52f7f06f0672b8d7399e78c4e5f9cc729c277442ac842bfb541e006e26554778572e00bfc820cd1450fe9064b89dfb08a0360d290364ddbc5a713158caee524058c1d55ab6788b3c7387b3081b13e1d16651ab9d77be6217ac3e0e2fad370df755f5640ab9c584d7274056e8bd5560507b6d7d7c9983102a6cedecd03f4ed8ccff41904302a78bb1c000559d622a90c9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_6(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "22d8485191f1777193b98bd73305862a0b862b14ca56f81be17261ac3469ff15"),
		nonce:              decodeHexString(c, "42adc9a11c2aa84d4eccc0a653be3895"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b7d5f7bc51f8c57003a5092178118f7ca84ed53c9d0a156c6aaac0dbc8a081a4"),
		expected:           decodeHexString(c, "63f47b5e9ed1a9fa7c50348d07eb938cbae11705fa8ef45d51c73b3124b5fcb10655d8f1094d7a2f045a22ebcf562cdeede0de38121cb87e2b6a948612b8f83a79adabba64f93396036d6500fe06437e0abc388fb937d0b3972d903050f451c70fa1c284af16bbd3a83728160ef7c354b8ca8b099e10cde4df46eded748213e197e14eb9b58d0b1ac5388befd964abf22f6d810ed66fda716d7dbcef9f489021d65ff54f345446dbe476f73847329d5de43d4d6f266e0a6c8c7431277d506d04f1a0faf964beac87c464096640a7bf491b477ae5eda850abc28f8870b3e87c5c62a4a77bed26905b9a6b2d0384f8c0f2fe5dfb9483d19ad4c2b83267562d682d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_7(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f83cc4bd9be34091c18ae7bfc1020889742d45cb7b8de8b539361d3dd5cc6a05"),
		nonce:              decodeHexString(c, "ba30232f535ad754ca5901a8efdd11cd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0abd672952edf4dcd36c5aacdb83eb681750b0354096756506a88f40132c52eb"),
		expected:           decodeHexString(c, "2d21f674874828f5a153ace3d555f62964051d326b64ab7457ed96219ca015e0cf60e9747a615373ec883a00978a11088ac146a34390e39795596a0a6dd6674a761f39dd01b607d77a87a37d1d958c2ed8870aad719e1f3856bd8b453ab663a37cd8231848abeb9dfb05381f4de83c2eb4724a41b814456568c2b8d10e82ca196b75b1a0b3ca4a71081c235e25000ad1b3ff4bd658bb55de5053aae2bb277b850a27c854b5e3a3916d7c97b4beace2bee8c9607eace87d20b3d0223a2ad09854f749557913cf392b18bea73b41c8165c695b02d4008ca88b7797839154c378229c42d413c871e4138dda604fc6d064ffe59597c4b50c8036b44022b5302a14b0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_8(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c3cb1d0956678a55a269f9b432be77dc36ab9773cd8faa0deb46ba6c7f9afb6b"),
		nonce:              decodeHexString(c, "f42e25a9b84815dc7551898e12eadf71"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0d58a8a9beb07569a98bca5165735d2fc5067a0532a788c9eab3e6e851e7ff9e"),
		expected:           decodeHexString(c, "324a429b4ae4238f541ecc6b148fd2a00e8be4d9b35b030c08d0b5eace2c0af8433b47df1ab4c0c83067ad50499ac72ce59c837c8a9cdc8f87b7d1aef099607a3682fb99171cc191b31296c60aac138d0f365676a0f5c4d9f1095bedf9c009d67d7dee5f70c97d48c4e37122f203607f6efa8fa0293099d55d1d9d14081e2b78fa5b0e6ef3cd3648f3582f7fd330beae068a3320048155f505bf95176a2d0dca5579269e38f597a55cb54d83372623c087e4b02874afe8211141201aea1f914d66daa06c972985e096750e8a50651caae5030ec72009d75327fd0dc717546555e4f01e3529e93995e1ae9a2aa7742dbc89a4266aada5dff289c3566fe39fd4a5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_9(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "babf3a219eca8b5aeb7ca039fadcc905c26fcff5b3aeb88f5894d22dbe10f344"),
		nonce:              decodeHexString(c, "e223685ac3dd91a761f33960477dd540"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e07e4b6fe7e2c8ca476616ac333e1d5e208ba2613a53dad7d77d2b27ab40743a"),
		expected:           decodeHexString(c, "f84d73f85d0f98c2c1116842658e7da733de62f745912dabcfcb0a8a2dc714c4dd7be208ac6aeb7b785925b9efb1e7d39bd99992423239ec908d56277cf0d8954f8d7138b75b0948fc40f877deaf80e62b4176b1139b71c948b0e0e40da6d55b9628f7865a56ad1969f8a83e9ae785d79a9692540b163e145f17a87c4d2be58f67256b323a25d4a05168a412dbb48ccad17e3ea32869c0d7f21ae32c562dff0c4219f2e5f437f36a67bdb600f38025bcbe9d8bd4a83f36ec64f0330869b965d45623a31b173d9449561e0d5e86c61d7381763cedcb858cf8ce1b94f91a1001e9760b863da675bc76a185997ec55115b0171397ee4880a990a96e09850295ffb4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_10(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "9f7912d777ce01255a10177c2b133b5b756ed38b0323f5298b3532fdd29d2972"),
		nonce:              decodeHexString(c, "285006a477302385c9d0e72641ec0049"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a751165d89829340ab93df377e19682f79792171d6c0cc0f27c5901f32d535bb"),
		expected:           decodeHexString(c, "bfa762e1f47a6f5394f0e11b3f92c458e6aec3147675f67b6ea425fdc05b49179365d3e5fcdcdf6b4e80f0f8cc259935c8dc28a7302c78d5672e538a49c66575f7372494d9fb901f3b822ef8f97f69bcf88742a7c7d200bc406bd15539b70eee9487b65adbada97168df01786995c761a2f58d69ce178eb08ae22299af5efc69782053c8fbccac316024e27d4928b999a5c9b5f07b2147eb67527fe7c34d1c01a2ec25dd5508268a5888f683c18d2a28f2e7f28bad4c47373a593a85561846caa45f1bef947d4beffd7c9902cd6e4b398c9aab5cb307d7e593b6759e0e97ccafb7f5126501868171481a92206c9013f18c97ee5f1e33e4dbc9702d5773622f0b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_11(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5f0556f1ebc5802dd01ec86f35b32c4dc94c3d4d83833a20bd5a089df492f251"),
		nonce:              decodeHexString(c, "19eb53fa268520b80700ba5090fd2a7b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8abb07abd10ed0491135f8c99e298b47a1c9d7a2c347f22d50778df59e84c0b8"),
		expected:           decodeHexString(c, "b286e4261fd7f68ec19bd6abb859d55534ef0d46eff3a1a0c44d538ef0d5601e7f2f437f05fc841bd1466cd84752983cc81cca493f4a6db3a1e888a829ba9f495569f0d9c9937caac383ec1db5a872979dc2d48e2caf5c09116a36d1208d0f22f7186791f3c6309ef86ee5a32faf25cd3609dad7e14a572e38b57af56cf7d7c2418b408fc7d4860ba2ccd39d67b9a36ec82eddc6575298be35a70bdde50520fadaf0d213591178ca6d3b9c3a22a0a616ef3f2aa4a99ba920c5dc851c0290e686b5fea66bb1c212fd8e6dd9628d56f3155b25f454df9c6779aa511da2c45d5f96a4646292072833e87b4b62a43359321d00cabf8b5566b65debf48ebb6735a408"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_12(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d33e7912d0226f284437f4d5b1d3f604e448a1518231a627e155c87e823db695"),
		nonce:              decodeHexString(c, "6ca6f23431d59cf82d3735a3431950ca"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d5dfc35c1583599cde4895578b35debd6eb0d1bd89724689f935702872a46e1a"),
		expected:           decodeHexString(c, "1fa926fc0d0a0efc60a1605ed047c998384a7a69a5ca21ce6e89855f353d0efa1c872b19d07675e10c9836197e73561d6aeace0e7da0cc2ad740c876d7ee81f9a2351d866cdfc7c81cac40b5dc27360cc04dbfc65d1f85e67e96d1e2c13d34f05635b2d0f8a213f1c927782f164a4e52955f0b4463c23c0d94161dbd293f9dce927443cad8a0e8e7b93348d257736d9b1a921c4ab6ebcdb1834d7c85fbeb8b5f7acd8520f78ec05c7fb10e1788f12a5ac7e1d8c726359be1038c91eb117b4047c33cf449569e7abe1d3b317d4177b6dbc91ba7e252863d5ebd801460a16aa997b41ca8036aaa8c40a9d9ce84bcf52884100b2726bacdaa33a1647313a9bd55e3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_13(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "0b88c0f8ca652c7ef3cba55e1e0ec020512447dd59f7d3d5686ead84dcb134d4"),
		nonce:              decodeHexString(c, "078023cf94084bc804f98b02432455b8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0a16e8cfcc0bc99a09b5fa04c3067cf90b6ecb510aef2de3912d10e56bd4ccfb"),
		expected:           decodeHexString(c, "4721a85c7860dd0c1724dc179e629233bfa3855e59fe2db1d96efeebc0bf586a8cc93055e12b76e3d2f35ececa774692d3bce9f12450b0de355344cf7a6a073772d9b27dc0959452b5204075aeb234490af8f02c3e5258e27e107df01334fb8c4990edb6bcd356b0216565cc200dcfda26b4e696a49cb0510aaf2dbfec4ac10c9aa08eea11bc2daf77fcafd2f99e9d4b12cb69b965c58906d6967dc4d29aab6502fa7a9d57be69e655b3dcbcc9bda5c1d86e4b703afd87408bc9c64e65d8ad02215125d61d0b2567cca304a8feef71c3f90e89fa89700ce23952539ce7307b3220ec07a63644f92f3fe66eba1c9dce272ff90ca6047a2224ae3a46452a773d21"),
	})
}

func (s *drbgSuite) TestHashAfterReseed68_SHA512_14(c *C) {
	s.testHashAfterReseed68_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5ecaf5980c3d9b135450ef40d8cdd20885cdfe1471e47cda7de3dcfde280b12d"),
		nonce:              decodeHexString(c, "8d894a3a92b28aa7356cd4f88ef9256f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "556127694e83df568c8c964ee5276a50954421ac18ac5408ce2f16fbb85d7edb"),
		expected:           decodeHexString(c, "8bfdb9f58d2b55606464e7cc5373575cf99a402ee18f74bb022bd19bfc219106a775728e2219795b906d09dbd7b31f4e5a52fdf020fbcfb99782c652dd71004e7535ab375d79bedbcc9034ed3fbae5953f76816db8ee2a6b9dfdfacf8fea9fdfd614c825bb1d04782ac376cae6c667df2cabe5d07c011ddffdb9ec008397d06d3aff9a9f57c2e311824c6159b34eadbbb967f0a43745cca536d5121457483695c37d4b43644eacd7c689ea555156a2e42d86b92077e5ef5270d7dfee1b82c34707f6734065972f425e182a1f1fab0036fd1f5cb5e6b8f08f72271dcc745d8eb1dce770b2fa20f3d0d69357dcaa5b68d5630b8aee37fb130075d089b120f128e4"),
	})
}

func (s *drbgSuite) testHashAfterReseed70_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_0(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5b8230da2790d030ba7e57c509d3bb2aa95aab5f788e61789d7cc4dc9cf160c8"),
		nonce:              decodeHexString(c, "13948f391e6a40b9f3ac36d79c082804"),
		personalization:    decodeHexString(c, "79d362a64ce266dc571e112c644560db9f7d84bdca9e03c4aa60e8a98162d541"),
		entropyInputReseed: decodeHexString(c, "49a4c9ed852897ddf143b8e1db3008e1ea1d04829f9c8c49026c96586ad005cd"),
		expected:           decodeHexString(c, "b0e432813fb600f2edd22abb283867cfbb22bea8871b22a9cef78ef97bf178ae26c5b062ee007fee9a7fe2be8e72d22d225fc2305d34119cde21f927f67fabaf455e77ecac534a36f445c62dbb29f91e6169972f7d2f3cbcba40319f2fc48c532cb6ed3be47980b2326815c7ce689acdba1f8fd9410612dc9a7f6e611a062311f41069f5f108827c30b7962b49c7f70be4e9504f729e66b7af3d5c3de45c4722bc04449735a4864818b920903a649cab961ff8c68973bcc261751c3c6bf2f1101799e1b5eeb44010937551f1c5f1fcae2a6debd2ca8dc3e287bee716cbac7ac8469d13614f7f3881fcf93a7a0f36e7f2e822792e38b1b8ead6e2563fc1b3b7d9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_1(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d9f3cecdec6989da44bbd391a12c248f1e2771a1bad3d7e69eaedcd4bab9e3ca"),
		nonce:              decodeHexString(c, "926c38bbbff0714cd1aa989c71f42335"),
		personalization:    decodeHexString(c, "4e0916b00ec4066a1a9e5df71e1ce2f8e19f774e5853be4672d952328fce2037"),
		entropyInputReseed: decodeHexString(c, "ff0280f7f1a06adee613ea1d94f5180c4bc42c65225f31cacce016c62d6a030e"),
		expected:           decodeHexString(c, "efbd1c73ca54e21a213f1e9b2bb5e059943542d5a5c01b75ee4ebd02ed8d97841fb6f6f1ff360fd25c6e8af7433024a28530b8da744e2db050659619ebccc7da4d344eddbdef9927e632eebadcd3f86444f1c19d5b34aacb61c2b20e81ef79374c71aa3d58f4cc26a41081d4c32184eca991e7fa09ae4861dd777eb610a5bfa6e6464f821b6c8c3f4d01e6cd714fc04676d20933580aba905df50de86888fc8d1f3cf3ff1a2b6efad3902b2e2ce4c96ef04087de1a571e444735a4838a192431dba7294dc1e49dfcb1533296fd93cdd5426f5aa40917434bfadb66d44309156b41dffab745210bd5854b5e25925f018ab0ee2e457477194d98c163df52921413"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_2(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "9132b042b72aaa98cb9eafa4bb12c3b4f9b731a1915217e7dfc4f595feaa8759"),
		nonce:              decodeHexString(c, "bb8803a7592645d73e81a5453732a060"),
		personalization:    decodeHexString(c, "fd7553348c58cc4f0df621ba958808a7a2bb32ab87c6b329367cc33db00cd1c3"),
		entropyInputReseed: decodeHexString(c, "bab06704293d1f066c4bd22392498ca99271ef0163a79b19b3806b200cff0df5"),
		expected:           decodeHexString(c, "d6298deab9d5225412480d310ef9e78f0c446fdc3de690dd36278e55e8bf885db05cf2423c6cf4274379af967f1511ddc0371e5947c372eb95d82144e98355e60d9456c2689de50cbd2b560ed98e7c757430d39524ed990c61d942094dcec2ebc0ce86f60d80198ef46f1664f73ac0d4ef5d57b06715e1a2ce2a5c316f2b1f4277442be9c2afcae848b4d060d9c976601aef1b109214cd7d437e35e5a3907851fee9ad5828391d6b936ec91785d19950e281268185e93d189314e55124aa8b85c06d332cfa04592e953e6c55f11328e2d1d3f62dec78884f9d468695c267201a52dd79a38029de8cee00113c99d99038f44c88684c28937ea8e883b6c4d5bd24"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_3(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5432d72c476f1f0926d93711d7122b407576764f8aa338e27afc740b50cc8344"),
		nonce:              decodeHexString(c, "15f91f5f8cf51420e2674a2cab47a642"),
		personalization:    decodeHexString(c, "76e6291efa26a99b2c427b24900647077f5b47e4fbf4c43e4bf0b182023a1754"),
		entropyInputReseed: decodeHexString(c, "963f91935b1ca893cca7bcc2c6edd0d875af46e85c947ab25d7ed41cab8c7eca"),
		expected:           decodeHexString(c, "426e4425af6e824cf04dfdffa541659f8bc9ed1041a3397ff4cd00414a1da55d0b3fc375cbc64b69d9fac0caaed81dc117355428e570f2dbaa621bc9e45c6009a0501e023b6b83e9ac12eaab226b86645ac47d5634125204653ab79f5cf99e7304bfc732a18e2d700c96e9f836a8158ccd53298f90be418915e0c714faa59407ba396bd43bd57ab0c77f63b830565caec9448f37eaf39bbfc5ae68345702adfa8c9e5334fe93eeebf40a15491ba23c0dadddfbd47c52a627cb0c3baae3893adc48a4a0254de9852f0adaea4016295397b3328af9ce2375b6a0858fcc8683b6b8619a2f7836eec4f85d2b4baf1f54942dfb1381b23ed53a6bc30967bb617ab0eb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_4(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ead7ab61abfc6279087da71c96b61d659967dce03731830e5f29369e5d5b43f8"),
		nonce:              decodeHexString(c, "954bbf723d2dd061851d0764bcdedb13"),
		personalization:    decodeHexString(c, "cb1bb9ea3b670e6d6e7daf6370ae7cd15c6691360a6cab413d32c1b9e781e86f"),
		entropyInputReseed: decodeHexString(c, "d3878d88a698559ab425460658cb6f15fef256e97bdad5d3eac68c20bb602030"),
		expected:           decodeHexString(c, "104a753d8553ffdfb0a0b32568fca2c12746fa16c1fbdbf152ddd1734c2f96507c39541a7e0aa5e0f0c51d4cb4bef0fb40651eb68a82ac80e51dc1ed0f4983deba5f341d3660f9010bda22e72c794a4e63c40d165ba8c8c3a28bbbfdb5bc423287e3d89dd1ac02eb6f305124d73ecfc74bd0d40bd889be977ddd8b33c68b271b3bbf8bce203b650c359e0a561dc5d10b5db0a8034a6e9a68deacd10ae2a39d4aa406162f50a208c888cbd7f2ba38fd27dda566dd0726bc51803ef49ebbfcdbcf1922e05f160d66983a8bc9f1d08858a5be502e662202bf61b0f5c8b1ff780df547f2289f1e127d941194caf1492229416c9e78404b3dd23bc4a62635401baa1f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_5(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "356391c1229b57db3360f0eca03685c3f1e424ac1c3d69834a9e26043f99ee76"),
		nonce:              decodeHexString(c, "914ea5fb98d2c75298d4a640561a0ac0"),
		personalization:    decodeHexString(c, "8a6a08c71199a7af974e3917fb494cde267b7a9b897b4f387606b757a4d359bd"),
		entropyInputReseed: decodeHexString(c, "deaf127a755f5db2f324852746139987a96e969c9889139d5f235a25c5784296"),
		expected:           decodeHexString(c, "c887dd1925e856056cbeec8f1dab7fccab4f6e79bdbbd4692cdb3874bc62094cd4766471d1688d3c2cb8f44893ac948072efb69d30107a18656269bf2c66ef08cbeab2f12bdb59c4b65badadefe8e821df17a21505e8c8809c0c7c6558e5e9acfbdaef92d311269c9e2d38f153dea1755a6bd772aabe5981a957cd0853ca7478a9307c098771ff0ca4bc75193e4924391f05f4f861a95705916733b7ca1fa4e3c94aea86f85b7a86040ee8ab0f0faff7e52435ad13fe38acf2e806fb88b905343ed6d1d63e6e58d93e4d1625b7df728f5994e08fa382ccaafca2e91e91823fe3d357ce44b93e5d0e366c5072b96def06080089283a22e5c4063d946cb5855e3d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_6(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c1215ebc843083c0912254810c82432f607a0db69e28539da436fceeb2a1d942"),
		nonce:              decodeHexString(c, "67349c8a9ef9aa26bb9dad28bc7d6dc9"),
		personalization:    decodeHexString(c, "1737376eafb863215d7586de466199fc2941cf13cc391cecd5aa7266664e4b12"),
		entropyInputReseed: decodeHexString(c, "7be2d4d228b99561032a656e88b7596325b4fb2c3be79921b15f42462c7bc727"),
		expected:           decodeHexString(c, "42b1c733c43dbd47618dda3e4b7b38a62910a688c9b7139817adc7b26b64e94f9188dbcfc2055f3955963a02dd81eea527aef694d3bf06191068add9cccca341e364e93616e32f03976727577dc7b9ca26cc9a6b1de6ca0ff5c9577d8eae40841cb8e51f1a92297a3c998b528855cc4118ffe87bd48f9eac349d6a7118b7f760117e982539e4c4a2cc1e77011a05ed45ec16c6356d9ad08f620074f948ddd2fdf78f3f1bff0d9454f9b6de8db5e3a4d59bafb8c441e8f92b086812012904e70b4247dfc09b63a8ccaab8fd44c6705a613371f3e5703c3939eae01fad0526b6bb27b886e2b5263cddae00aea907c813f495f707d275207f0ce6a598fdf9e26dd9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_7(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "eb305333a13bfad6c79a12caf1479fda7c6e6734b46679ab46df75d743533f49"),
		nonce:              decodeHexString(c, "40b8c53d937e9dbcbe809683158212f9"),
		personalization:    decodeHexString(c, "225781d466bfa08e6c19e12d3be83221313527e86b952edebfdee61073f77596"),
		entropyInputReseed: decodeHexString(c, "62ead56bc719916a15ca7d56425e3b7f6cc1594c39c89150e3fbc37d7d4f07ae"),
		expected:           decodeHexString(c, "fffa7156fcdedc87aa3ea23cee16234edf95b8d504c0fa2de9bcc59e06b6f8778acbfd17e8c7fa32a993c4f7d0b52ee4a768fa1e3388c01fc84a53ef0370bb017411fb45ff7a38e79ce91e63c7d92267f5b6051d7f51ab95b7490a662038bde192361168f26ee5b5aa6ffcb5417dab81d8ff605258aca5654340c69cd7bcc37ac2fa6f9dde4540f29efd42a65818d81068f306d7ddfc82744e2c3efb6b6bcdb4bc2937fe3aaada0e6733df65982e520be5b5abeb2102dfdf0a68a974fb5bacbff2e251969bb9b6baf72179540ed8cd0daae1767f065a6d11095a35504e231a74eded7cfd285bcdba0604dac3f1e8c69d43dcaf0435be46d8b51044a35364cfb0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_8(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "47bdb61c7cfea6ac4d5e0a6da42141003f400a932e1249d8415e6e89a326eda8"),
		nonce:              decodeHexString(c, "4534ba1cc278b7200ee9a1fd3b4a5749"),
		personalization:    decodeHexString(c, "66415e8fca06441dcb914613a5c25f923155082754dca7d12aa03759e7fe060f"),
		entropyInputReseed: decodeHexString(c, "3864882d7e179ac5b249ff3fbb997e745007dcee8de072b52e928dc22d8edef1"),
		expected:           decodeHexString(c, "a6f4a84d6337813d47fbc290de6fad3a53beee75e01b2541129b1089517e435af5295bd727792f43190926957fc6b6ae7099af51ab207770d54678dad22a4f152d1be695e4f46fc5b7b717f3d9d664567cd84ff836d7b735b5bed8aefea7335ecf3cf54a9cd52885c0c4b2fad4ae541d042a44c3f20219312599271b7f335516d2b757ffdccac7853a4dedaaff72ebe47076395e9e6234881379116102b517b21ed979377691c52d058db932f78f66c78ce0111920c9f46bf7382ef1456bbb2bcee8dfd024675097320fec3737e0690bd475c17594aa8d6307b6310c25a48c999710a5a71572fb3f44baa120be5ed8edca428dc38a690fbed556dc411ed0026a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_9(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "27fd2e4c2ca85fd4e92c8507d94bbe35f7a0eea3dc5c41a82c3ebc4d2689074a"),
		nonce:              decodeHexString(c, "bcff9b53f31a2cb59db76e5e4f1e9414"),
		personalization:    decodeHexString(c, "19b0a4031727b179905592e0f0bc4114a15e19e49410dd19751f1ed44bedb6da"),
		entropyInputReseed: decodeHexString(c, "c4d3edbe825ca8e27893500b7f4ca76987015813bd562334783984e2793137c5"),
		expected:           decodeHexString(c, "9bcab99c7cd46401ed82521f9a820d5032938e695a169702221403c85e764860f979b617eb8ecc6f96fe7982ba40b82090a64a1b2bfab92ffa94e1e4d5977860902adf36e959b7ed2a2f7bf9bfeab8860acbd62d33f9c178b44ab6c754cca794ce6fa98f773a23324f3a03222f03e0a87b232f50d1f170dce5bd8a5e8eaa0d8fa7cbec44d70e8e25ca77c38099b46a252d06e43d016e0957299ed6e71f84c96945c7d5ad70af0292c6581524d285c5413c1930c92b4994dd000bcca6373cdcbbda3873de541b2093616c3e532245e3a0751bf009020038e411e149dc114c19be07393973288edf09c854f880ef0eab8cbc7c42c486a4cd945a609b503044d56d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_10(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "90cf28b3f5293016b7511cb2b4f04982bebd6a197b9ae63aa550376bfa0e3a7e"),
		nonce:              decodeHexString(c, "c5e3084680c5de6aaec2802c277a2967"),
		personalization:    decodeHexString(c, "3c685c1cdc1cf4dbde7f044d5fca6cd49d75dda569d8b7c087d988a8b870594f"),
		entropyInputReseed: decodeHexString(c, "767d9b7a1d56dbf77969742cee28fcf3af9f74a65a49b5a73e0f7eaedbcf713b"),
		expected:           decodeHexString(c, "7cfdb7b432a5db24e3493a3240f4b08f1270d5346d5ab0bb4108ff8d284099af2464ef10f1a862e12133eb966281780713ce616471100b374fca886555a5d08e7cc5af8908e28e2e31a047f36a2f8cc334d7066181a4abdbb1f333f4bd70a5bd28227fe791e6f4d51f2374c956391f43825b4d840282da6fa737e1c0502017ca0ecf916d37e9615afe6993771b4aaf5c7a1382d28918f1f1b7e96d2291fca1a5b2b30ffd271fb31d094d7568dd7c727dee6a220865d906b09e4a90bed936b4bf77b9d4c87230bb351a59a395ef866bac557326d4793f22da962078db3ae674f98b606412872e3e1dd85b4543bc9ebf9b74635db6eb7032323476289a349d75c1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_11(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "acbe1c1f0641879971269abcb514feb1768ae42f736d6e25cee100425c9b8430"),
		nonce:              decodeHexString(c, "2f198f20811a20ceabb840266dfb3e4a"),
		personalization:    decodeHexString(c, "9aaffc9ff1eb1924c7561f1c65017de378914eee4a96bd95f584ad263469e95f"),
		entropyInputReseed: decodeHexString(c, "cf08e4654de7da73c61acbba62255c4d412d02252a3cecc90f686c7665fa741f"),
		expected:           decodeHexString(c, "17baa6990f0dae2c786b9f4dd429187e29f898a39513b0d58f7c4af70e5f73692dbe7011bd3d348a23d1e0f294cd0b99bfb76622b6f5ebb69439f0dc319c4bbb33adb3d4c0dcafbef5aeaf15742798d9ca8624def61be557c4c21d862fd61b127b026faa3b15adfba7c7ab49489e3e13c1a9676a4c8741a8b009b32f2a33f4450ab162131758f9d38babe66b63c6802d9971a5242359f935d7ed71cb33596b2152216f0688cfc0289721a82f8dc3d634eabf724442c8c8cb1b1bc1edbd61f287ccd8d1a2a5ef6939c928d6fe160ca0278143033f9a48740583690ea1f3b7f9688292c98e4e1dbf2f9ff55e58d84e8c6abc2cea9606c59a89b1cbf5eee7f1a370"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_12(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ae974ffdfc45d0cb80234e598b52c8c18f963034d2148890b837fcb655966220"),
		nonce:              decodeHexString(c, "6d88af454572354e3e5baa86004eefc7"),
		personalization:    decodeHexString(c, "b1b625c0354adc75713d55176f91a565c73166cf0d0c41bf2828d892a9d52bc2"),
		entropyInputReseed: decodeHexString(c, "1323e97d7f996e42c744a84bb0f4d61e80648a9ee0ab37709c59662db80145e8"),
		expected:           decodeHexString(c, "8538d2703c4567748adbc19eaeb9b886afb2d92c67a6288cf79de4f420f0e3a4db710264fbd4e44bb125a8c7de731b255bfd0e14b099caa9031c956959ef9b4b8718ec26d8d6aa3dec28bc117f4bf74ffd6693728063e580c37c4d8069999c398644bc1c1c3b51e33a6491ab16e609f327ed3c1134f7664fe4a515033c94d0a5afda6964d46e95f0eb04b1ed029535580a85515452857ffc7ea2fb92bb3ecbd189a22b27203a51cbdf15b011cb22756760bb3f4b0fdd3df3f34a1ce5b5c589378669b4dc252ac9eb2c01fc66c7935b6683517c4985b2a76792feb4a9cf9843bf3b684874b85ffe986fb00129c21fcd315fe26a8c4c820d57fa1bdb8e15d4d26c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_13(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "6273470ebbf1300355fd316349de903bdb74aba7efd34f122f6ec656d9f2d99d"),
		nonce:              decodeHexString(c, "3b8aea46731cef00990ace7693a5ec53"),
		personalization:    decodeHexString(c, "f3f3f2a29631c7bbeba970d70b10ed4f6a94a58b32186ce831860e36a9de4380"),
		entropyInputReseed: decodeHexString(c, "3644db769d0cccb57d2b0b0e62e358de8f851dfe52f4548eaa9a533bb8bda6c6"),
		expected:           decodeHexString(c, "62fec6a9f3347e1b9ff6655157f1d38f67901bacdf35689cbf3db65ed959fd7cec09eba346554924f00d2230751ede0b142334c9ca6a7819d2b5f0215034d9788cdc27ce94eac7446e3cc190fb501331f4b29db5133bfe9402f6de4f69d07ab8e92170973dce0b9c6466aa92421f052b2673e63827a94d61717a9f7b5825b990256729e5f545f6f25f820453a090f46c1cf02f8a781de0cf860074fe79b374b267b8f22caef10f17cb622463f1e39cf16b7105c14338f660589da3b49d1af8ad832b0a0c0af367639dc9ebb487ed0a109f27722471de76e818c003a01f02bd1a9c7b29df7e1c50af1b584da0b342e38d039ad687f2893a905983b795637ad3a2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed70_SHA512_14(c *C) {
	s.testHashAfterReseed70_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a50e0885c00bf9263664a8261f87f839db69f4009741b016ebf9f3b0a198b0dd"),
		nonce:              decodeHexString(c, "9960d278ad62d87726041d1f908a9c0d"),
		personalization:    decodeHexString(c, "0dd2b2cec55b594e0d893e7032546fe0ee5579b404e050f7a703ea60016b8206"),
		entropyInputReseed: decodeHexString(c, "b94cdf758be7958c8a70fb953182b9043ff2020d4f237d6c2327140b65738783"),
		expected:           decodeHexString(c, "fb0322e38865eb487cd817968092914a8e495389bfc16fd4b414d27850cf1868d26541817b348195e8d01e6402bfea17bfc8a2235d74eb7ece57d3c59685ad0b6ed692b9de4830212fba6d7ec06213d0621d0a569e4edfa0e13be6cd725448f8f4a4a65b7cf28099c53eef851457f55a8ea4ec8a8d892d262c1c5fb566127348363ddf03a72acd6047800a34917c09dfce8ee77a2e0edfe8005d38bf3e9a3fcf8f6ede545747762eea1ce5dd34ef31d9a5b80c5e3161592d2d2b508eee7ee8ede63da94ae8a166ca65407646cac02c6ae6419f0d7de8c696ba7c0402860bcb6c1b4289c177e22176e390d0381e146c59c2e58dca176226392212bbca794b7363"),
	})
}

func (s *drbgSuite) testHashAfterReseed72_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_0(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "2d5f0d905d7c18c45c92fab826b123706675e44a91e8f8b44bcd84d182d85e7e"),
		nonce:              decodeHexString(c, "33b5f3fa654153a1bf3bb266b1620a29"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c7f968f135563c3475108da15f11b6521d17ce502b07c7191c8db38866eeb15c"),
		expected:           decodeHexString(c, "f7e6aad60386318aca8a635a1f0e5f169a38e21bdceb6745b50bc37dfb64a5cb67591e56cfd84c21d2d049d270eca77c1b168f6517f65c6059c5b7a9a5e90ebea0b391a66ea1465039cb407415ec5fc76ab2be80c6f01dee411aa2470bcc24a30525164411837171d2ab4fa7b96ef157adf220dc6ec496c61f775549cc5bc05147f365adbf35d97f31d0eed6f648c23dfeefe12516f2372f0eded94745006ec79fcebc3114774ba1474311e2883858af3d6f8db3efe34567201276458cbfe34599357bfa8568ed3279ed952d0a732793a73c86963269862b79fe9d8c923abdca8cf087c816807fd7b7c1ea882b3b2c16c96198a0c9cdf7202024dab05d8e6bd3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_1(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "25fbbf3c9e02607677bf0528f5767210dde70b95f301f6d71eb7a6a8764f6324"),
		nonce:              decodeHexString(c, "f8db06298288194e27f88a6c17136ec7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bb75f846dc1013656de20c06bd06a528014cdcb0feb97844e2764b62fd53ca88"),
		expected:           decodeHexString(c, "c98e795cd181e814b2338640f0597ec917850327da2dc066c7d3dab4efa30285493984c2fc4b0184d8fdfcbefe90a8f37ea79d29d88a7c96fabb90aaec74fa08813b8ae8d00aedab7449b30cd18a0d95d315d5057aabd026eda0308900f2ec73c33fb0ac83b4d4f888bbcbd055287d8ac50f6d2417b0251f00143dd11adf53298dd298dbc4dcce8dd46f0c86402384b106308ba50ecccd0b857640a459a0588c844b7954146570ce52517cb63b8f2fbc21511ca1b8f4f0a4a7f50cce5699ec014fb6831f95d826d63d6b4e3932561f625176dfaa5b13ffe6fe1dca26dec238d318403063ef61fcb111b5e3fd8dcd5a2ff8b0a88311e0bc8a6c7d845a0ce056db"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_2(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "ea0993ed135dec3e580f8c1e144a2610f309a6adbbd1d9496bdb92edfbc7e074"),
		nonce:              decodeHexString(c, "ef7cb430cdb9b1bd834baf131e3d84ac"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0631a62c76443f2c3354d9801199d55ea65eb7e3bb4077ae351044866ee23c5b"),
		expected:           decodeHexString(c, "731639917bcf3c23015a930c49f64f3c2d71b31ddaac5c638daad231ae70ed4d3d688532f519e10beef74108f062d04d05fa852fb02c0f8559ea415a52e65df73bb896c89b957fcbb2a9b61aa91d3aa4672ccf7592e5fa361c52a8e2a0ff9172b05a5340046ff324eedc5fef9808b4b07722d548db7adbb6b78715354868fa70686f2e1f2034d415346fec06b17f0ca769c54782135040aa9c598999e52c71f132d82467a5ca216cdb0191d70e4eeac17945e29595fed5b73579d299fd5853998af2c54ab25f67ebb14484b1c2f21b69881fe68fa35ebcbe23e5868f4246d558ba5b8d08b7bb1c4c0d2231c577c02a07dccec272983d413d12e12e978af85c6e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_3(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c77f87917943cd4e6300de9ada8da86b74020c754546e7ed31061bfe0681800b"),
		nonce:              decodeHexString(c, "da7ef9f55a0c7aafaa67a9192586fa51"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "268c5b00b41a649436052e4726de1dcfbab5f5b03f9f5bd7f8b1003e05c250fd"),
		expected:           decodeHexString(c, "1b004764820885980ed0a8a3c67d70c55088fe2129d1906bd42b5a0b382d8a14953519b3b60f462a5e05d8a4f90c048695b28c95097231846ba9df8869d1ec4ac700f2f04dd2fb4066f0963512cd77759d1e240ba53effa4052e9ac55e1dbecece547941003ab9d33c4d7d6a98f1e82e59e3a19694855c1fd07e988e01023f5e3b371a5f9dc1d2949d7a3e858d95c2d96c17499f89ec3946e60131aaaf7d7418e1e70271fc43aa9f4c441ce315222a9857f2858415b2435f062f86ff30259bc3ca44e2e7433a294a7b6da4b70f5ebf9e57872fbc7465ad1ee325e92e1fd71dbfab3a6e95de23439fb88e0563f9d61a5c57b273f1aefacbbea2ca934aa461c389"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_4(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "9e69b475ea4e8c9d17a811c1ef66862a439fec852c30e675db433c52b50f2ac2"),
		nonce:              decodeHexString(c, "7f5381ba2b1de4b1f75c418ac1a4709c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7ef0212b9f674ac5818264075a2056798b90191c4ab664b6b54cd73d0e1abce1"),
		expected:           decodeHexString(c, "f0ce7ad20b0d314b32ace269fc6d31345384bd314c4398aee7774c04cef603bf0a3d284842ea3a0982ce3b85760d5c060b66ba704deecbd2694165c3479736e8018a07301da84b20cb20d84af76304dccda84abd17bea3e403b20f5329ae8df8074560d59f135204ef431b298351a5efeec3de73de9a29641ab3c3edff6e30f672c45eea05dc76b5495b2e8a5f88d0b52560304e0adf97b8fedef699e4dfdee20fde9ecc8eb0e582a65605a29a6fc9047079af88cba9a6b6a3ce46b321c9811997dd21d5c649c1aeb25ee867ebb2b90cec225119e5aa18368b3929e0607be08e2f2adf0b71cb5ab60b0ab51f4fb856dd08b21c339fe29fa06e6d9bb03fa7c6f6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_5(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b60c6025dda77e81b33012ba0606f5761058f4a95e4bcdc25ac25139d583dc55"),
		nonce:              decodeHexString(c, "77647a4a5862afa07d2fbf636cc430fd"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a900e505e5b1862579a18596c2811732f3eec77538ec2947adb7efb9c8746090"),
		expected:           decodeHexString(c, "cc4ed7e55f1acd14c37ed45957b60563e6582544feea536a13873c61f2ac56b424b231bce32150267637295490076bb4d265977277b15d850f7eb1f601d235755324c33420828ee50b1a37988a34d384e6cbdb4b299d250886424855569786e1da38983dcfd7c282901139ff5af7ece37c3e10c5594c61be6b8a603970fbbffb2197317ce55e7c3948430f433a3be58edc48ba7f8f763e6d3a45990a3a96cbc73403c6e40dff3a7cbfb71900cc8657cbfecb2a8d479d23daf8801598f9dcdf84671310e04a646a04f9c8c0e009631e71365fd2a990a952225e62141f8996797a664703132ff7a39b5dd03894ab7ecac1db658d705b768d80d1d872de12a95f52"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_6(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b499c831cc05acab1f47ff562729f8c99c7bcde1e7844e6c7f824c9e6998a8fd"),
		nonce:              decodeHexString(c, "b508baf779478667447328c8cfd8c6d6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "381d1cbea3b4a810bae5e08bcb9f0796ec4dd07cf1ecc65583e3cce4de5180ca"),
		expected:           decodeHexString(c, "cdb03bc6e2a4c36834b8cc424d9695078771abc6c2858bb43209517a652e1b8c799d8e7b5c8356373e6af5470f52cd4d9a76bb622d0ccd743fa02480edb0a5522566b36b29a077af37c865772a205a349b8719528a6e5eace4be5ad3151009926101f5a7ba070ec7480ced95ecf92d86f19d9ee809dfe7b770e76e558afcd7b0fc9076453e782bfc9029accb6925baac61cf16047e2986859116d3a8128d08370bc9199657f789ac41e944a3a655f93996f18bb5644c955cb8eb101dfbba82efb080cb7dce959a9bc6f08fc50b76a0bb96d64d1809fb4b959854cb985ad8f086d3f5f0277ebc6186162fa646e12e4dbe0e2ab26602814ded1d410fe2374d94bd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_7(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "2f340b34fc9fd49118e5cf7cc5e338a8b15d0c72a638dca503b9ce603684427a"),
		nonce:              decodeHexString(c, "9dabe82aea68970e3d0a99869a48c5ae"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d34f7624ce48487b1005b33cb278787a5da2b0304481fbb01be0aa2164213bf3"),
		expected:           decodeHexString(c, "c1d5a197161c379d060726a64a06d981ee0ca571ad8b64466cee0e0564fe5b79265fc78b86a20723add737846e5e9e732758497b0ce5a271394c336d496fe1d7f40c9f9d5b8829643cae9dbfeff925d391b3031bb566d32f2c0280dd82ec4a3cf5a5dd2085670fcf77cc5bfa0e0375f2766578d74b17a765ccf23ac779a00609ab4fadba2e455249f707d7010b94f3f86603529f49fc32ba5d7c54ee6b9667254dbdf0c9a74fe57f7f82a44afef387afad9763a4f0bd5c965f3a4f6363762214a145b327147ea2d20fce4ec755749f2f021de2ec0e341b0c17a41ae9c00125ff204f98676db0e4114f5caf91ec1044a240616d66d3fa6c946ab2cda7175959cb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_8(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b02c77e2626030fffe5e389f3fc8489dd98dc513aaeaf3a5cff24a8dda68fe05"),
		nonce:              decodeHexString(c, "0f1127fd5496c7830d760f2f8b04eeeb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7b9304b4dc018a5f7866c1135bf3d46d248da2ab9dfc822fc538d31449b336f9"),
		expected:           decodeHexString(c, "8ea8608408511f7d4d824807aa5ee675d9f375309bb1ed7e330b2001c6625e690750076e1c5281f05d6d47f18d2df622b4cd2824dbd9962607d9782e338cd8173855629fe850226c040ac478993fcdbd5300498132ab2be78877ec6c955d4121a4edec8eb1016084a98eb1bc8b18572009afb77fc1cc9e86b7eaf677b36b233de2eb888bfed86d3b6bce730b77bbbb7f9ab5bc35c1061595f7718e0d1ced6044ebbce4f010346a3f0e296ef13631fe4fbdbd62bf7e85a605f99509a369693dd87bccf34fe447592bec4310dc03300e5d176853e9b7947b5fc9a4bf77f629eac5d9e4138af211269e18f04bdade9597ee277f81cd491af6c8e953b3c3e7dda9f3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_9(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a0db952d8e465ffefe32633ff269b0c9c765d4b2c6a57043ba283479e7c14aa3"),
		nonce:              decodeHexString(c, "3003bdbff71e855220f239fdee507911"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3a9a35d1962d68fda6f8a511b1209f3c83e96fe2c47ea5885e35747463104388"),
		expected:           decodeHexString(c, "d97c2e8fea5fbe9f55cd6dcc492c75ef939a3d1d3f02b1c7b86f34c9c4a4701109929ba1e7789606938ecb5ef84472d2a285fe149cf60fe1701ce7c2e38aa4c19da2c64f7ba7407fb24bbcb8643255d7be6207eb09e1c8bdc3dd85eae4f38f0cd1cae9ce511da609a6706483186512ed9e02e50e78ba295a8c5e7fc4630037ef764efd48e83d5e571de39fb92d61cc591c0cfefbd96244177126b5b6eb0f44110f6c5bea50c921bddee466d8a70145d96365dadf9b1cb0de85a231d761d534d7fadd00de73e48d4a7ff8a43e7bc732d4d83ad7873a58d5d37e371ecb25c2e800eaa609e7a2bc07f8351cd55b6751a685d1fa6c5b2c9ea8ac3b15037344a7030a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_10(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f24789cadd6a21713f0bd1b34d803633df381251bbbfe7f62007306285b96af7"),
		nonce:              decodeHexString(c, "418670e1c6a303c4d2d7c1bcf78a970d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "906be495fc78e01a7f104d79694d5844288c3d950e2b1d81aae4a220e12fe661"),
		expected:           decodeHexString(c, "c20fe53b607e3eed98b6905cb229b3fa4614e7cc6366c2e1550383d9f8c0eeee151945b3b3caee164ce6e2316fa6ac117c4681d71f766c4ba7454668866fa290002cd8af680cdce0fe27599410f9171cd1d03222c6c28b3971c20f6548b7d58b36e846b4739f0f09268e596aae87f49d669fc0b2860257a4d6337cd6fc4531b7815bf08f98da0bc2ff805ecf573459ac4de16171f408394c69dfa4cdf48fb4b99a048421667adeaec08d04af97ce1eb1b6e6579d17edb82b2d9deb97831ad3577c7afe9c5a1abca0a3a8a56603e6ac14f3bcc0f87df398a62da1ca286942116ad53c9e33363279b5adc2a39b79ad3decac25858220a8264d6d6c6cbee98b92a2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_11(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "6bad0d3f277bdefd691f9c28569d8b2bb46e0e620b91536c6d106608f90e1600"),
		nonce:              decodeHexString(c, "8d9d5443bf983070a2cc357d13501f16"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "26ff4a61ee5bd4061dc1ecc52cbea7c39f0a83815378ae8831295dfcf707578b"),
		expected:           decodeHexString(c, "bf1d57c97c03b7919e78abf6845567e5a404d928743073f8bc2134ecea122e39c1249683aab058df8c9115cb0b58f7223c2fff686f60534a388da3b64101c13caa95d234a6fa9c09a5d905e32c085a1681cc37a36fed5f999506dac4ddb89ab6c16d7e5b33b8d08488d7490ad95ade82865a76ef38e07fbc3d40ba456687c1cc20bd102eaf4b9e7c5f9615a1083676031ebd67e84887e163ba5a8469dc9459be17c5afe83280b052e85d06afcfeedb65e5564a4ea59d73feb91e3a186ca361d86f143541b73ffdcd1de47653380546e4659e176605fb7669aeade086a96156af1a6846f7eaa7ca5e197ff034cecea48cceb797b01d5381b92b3888c2e303b5c4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_12(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "4ff816134b5c4fc66083315e0d25c973cd592c0436a23275e149d941f28a5098"),
		nonce:              decodeHexString(c, "8e79e89f8c4327a0527c7e60013e43b0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8709406b3c7ae89dea03a8c085e4bae5feb472c3e2518d1ea871bc4fe2e3617d"),
		expected:           decodeHexString(c, "a9cd992846d2b03dad398bb1923373e52353901a9922e50e1b037c89b2b7ca968673175303523316388368427c48068f4c69dcde7d046c153e8a255e4c7c48b848b25b65fc3563352e5873c73b410b28bbb5640e9d3bc553364eb7a3a566f70e54204c501359feaaacbd72841200e22bb7ff732fa9205f9c9c8d93baf9dc1d67e3123e601d18b585cdbb7db0c275043cfe133180900543c98d94d9fe193df37526c1249c21c8207c78155d86087c392566f9c8e361f47dbca9039dbd8e82806144a83ce9c3dcf47fa9cd566d14acb99f0cb19ace5a3bee5d07d75d98472521032fa24116c2d5f9f827fad88c7f9920ef735da193fec818006017cda980772797"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_13(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3c776d28b3ccc7e2e09c400e0115315b2d2e9da7ce3bb9d19ead12fc92dfd746"),
		nonce:              decodeHexString(c, "51205967665ea8af2bbad0fa8a6516cb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "11b64d1fcd351d06e2f6f0446709383b73b61e0398bef7d9ae689c1fb3c69424"),
		expected:           decodeHexString(c, "2ab2cddea3a1eba3f1ff017ebe5f7fb34ce6a3115906ecab007d9ef3172b2815d188576994dbdb1065ea70a883f04a90d35dc6b789dea261eada4be9d209ebdf3dff6d1f63746f9336909bf9ca1ce4b6c3ac24bdba3db1bee063408b99a1908cee6b873cc60a147d85238e0c52ae417dd75dfb864431b5d944f1b934e2cf8bbc43762ff006c1af01fd2569c93b1cb0b5ace0ad3f8a7fbd9bbc1f0328d568b3db6f09520005e3b71f4e19681801c0fc86c7902096f64fd754cd703ccfd12c91af34f4040abbc30b9dc00273273d099d2518544876bab3d8d8d5a209345c26450e91d89187b57138a1175cfc96301b5a133a2bb0531d4308a9f6d8cfa7128dd417"),
	})
}

func (s *drbgSuite) TestHashAfterReseed72_SHA512_14(c *C) {
	s.testHashAfterReseed72_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "c06e90c75129f5a1ac3ef97a42c257facf35d283f5f67a01ca198c2be3e5057b"),
		nonce:              decodeHexString(c, "74f34ba655310588dbf232b13aa3986e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4efc60348e489153ee6ea0234563d1cd8adaa7cc5b5f1a8b4a246254907c185a"),
		expected:           decodeHexString(c, "1ab3b1907b9dcb216faa994bd21b3759f8714b888359f3e31e59fd75dddd18a8479996cd2dd7fca3800c9c99cc4f47c72aae339bd2e8713afae5c2a81864f454543af89dec2d72b9acbf0e290331957505d5977dad642f6b6ddb2df042dc725e10d191cb3353a3bc63e6f49b8ce9d21fbbdbc83285c18e4b54c01eafe4f92cdb63d5a818b5c8b031cc28f45d22f7b6a6a737491f8302e852cc232642600085dc17aeeb878d06e8071668d18f051ea6ce24c0dee348b6af66b0ae95e7eeb1f2ff8a0b9b3aab19f77bef4d5cdd23a9bef0452784359f7d5699bf4833e3b247e6b8fa88bbc3d9be1fe59b9e9360195193cd36b747bf30da00500cb2d68ed159f34f"),
	})
}

func (s *drbgSuite) testHashAfterReseed74_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_0(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d35a92c957932b159cdf5d64aa9728f6f487a15031185a9436c9e0195c0511b8"),
		nonce:              decodeHexString(c, "82a397da4f436fa8e084f2974477ea24"),
		personalization:    decodeHexString(c, "d98e4f1d807362d54e2d17601314bc4ca0b625e7028d8bac3fd0e960507ff140"),
		entropyInputReseed: decodeHexString(c, "95bc52673918316bac4ee69869c5166743e69a6a3571ae752e02428f879aa212"),
		expected:           decodeHexString(c, "bb0f228463421ae057ee27579750e01e15f037c5286af4587ac4cede172411da4d557285ff2a3b77a6040754f5df18c3dc4d4d445ee0873bcdc46b364ae905b90c6ceeaba02d6d0392634c1d255784a521d6aaa4c8c63d9f401010b350e3406eb89e4dc666242b80ff07e84d95025c00964fe7ce764a9060a664bfe3ad84bce59911dc2cf3590f8862217d4b743324d33f3e7c1676684d2bdf89290229372d0fada5b8a592bbb4b406b69ed9f3a59d6c3f0121398bee43e2a4abc805865b47620eb0d963a35c2d933743c06d43edfa7bc618b5548a6e5ee23128397fce9adf1b29d2b2acccf88d76ff98112b9140bb82c49b08fcaa2c10e42b7f935429c64068"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_1(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "946d47881fabb3faedc6cac82092a257e29e4dfcb83e99017df6dff2e3cc4884"),
		nonce:              decodeHexString(c, "1c8554a4ecbcfb8386bcfabcb95936c1"),
		personalization:    decodeHexString(c, "25d14a1d154cf5f2f08979f5288037b2307f8b2d6d110b89879309e0fe3f2cd5"),
		entropyInputReseed: decodeHexString(c, "04a80547db907db87561f61af382ceab2b9f00a066c8c1e53601f4bcd3161645"),
		expected:           decodeHexString(c, "95ac17e8e10ddf2f8073ca64771a825b6fdf33e6b102fb06eb2159e5d625b535458e7f0ac84520d509f4e58c55723b783fa7f7ccd77679bea824a1dbef0c368c2baceefe87c03b17f9c066d38156af6a73d15c39cd74517487e38e3b177d9a6b19c3178fc7d72d097492e8dbc2610fb32f9b3f116154fe5a5e8090012583aec3d22d7ff8fea5078ad6c08420ac1b41f18b339105863cf995fd6adaf9057c7b9e080f745b9046b68383fa01bd52b99a49f46837880a17cc07ff1d742f8af38e45c22b1cfce6c5c072fb69c562b5ebe15eea78c218e8e31d3ac598b826977fb95f537a1576c3a84a3ee0286fc458967297e6d2e6e5995748cda907be2221281b0f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_2(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "623a62669c678c8d18f547b40ca437b864aa8c90e1f43ae44c8de20a12a1d3ef"),
		nonce:              decodeHexString(c, "a7accc00b74304f4c659cc8768d282d6"),
		personalization:    decodeHexString(c, "5cbc549598fc80ab040b477a9189306c7996bba26e69e190cb3881b127f1406b"),
		entropyInputReseed: decodeHexString(c, "f07f5471e6826a8f4d99ed481b8b8445bc913888e47230b9334a81db231b2691"),
		expected:           decodeHexString(c, "f3a5c881da2488605784155e6b4cd405ccfe5b93f61da365428e4d0ac9df9449c9c80df881dba443f1951e1661bcd917c50348d8feec7dcd39b84a2f483868b3e1d681e47f35d0b219e110e3ea3c631f9a6e465767cf54c2d0696ea7ebbbca1e4ecc2aebafacc4bc31890b6b2cb2d369cd1a0af579f637178089f94d2ee88a91b78d5d31899e107d0b9785b707413960516720aa35d7db5ed5bdc13385a70af4623d7b4c95fbda9ccbc032cb6c951db1973f12950cbae82a1bf733e86d82cbbd1b3d7faa62618beaf5fb10a1be8d4a4c12bc9efeeb1e3d9db0ca047c9e9d7eb84715b95ca1520a60bdf344a795b3233840804a4b25cc7bedd9b8ee84529affdd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_3(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "08ce55a4314ae8692d0bd2a8166dcdd6e21b9462b3488aff1700566cd17abffb"),
		nonce:              decodeHexString(c, "1011c67e3d9939a1272d44b8db9e197b"),
		personalization:    decodeHexString(c, "35c1925d340c15ab469c65830df85d92743359fb9a7c277e56dcefba8fb9ed57"),
		entropyInputReseed: decodeHexString(c, "06a8e464c4b3a76e49db132101c75b5cc0701f2d611d9729fe7a58e2c28ccd23"),
		expected:           decodeHexString(c, "b728c0124b35f5d48f0d255bd6da07d550a8b7ea27e1881beafa3203d868043d2f9a380df20cd1eb2bb6aff006d0c53dfa936cf18ef5e57d3142905e9a50da2fa083afc033b7fc0b2907eda90f469b27c11d4b1622fcef9bbe5fe8dce693b4cd82ec48f37eb5d1559dafbd1546cd428f8641eac16c9af45b69215d0522dc8b39680fa8337ee95450046dbb23290121ce65b9da45449ef728598df68553a9230b0c149e384719f1573e09d9284314c0f2e935c506d8c2054986c2ef3b7923045db96ee1c4c6947fc53eefd3be3835028d42011ad34a326029696aa8eeb3feac73652a5ccc693e42fff659ed4750567b52d636a3f78d6cb0acfa1145873c514050"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_4(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3407e666dcb9e5a47a31606346eb8d80608c1c210c450235ccd9cb17e61b2202"),
		nonce:              decodeHexString(c, "e8e4a3d455dc30d246035f69dd474c7f"),
		personalization:    decodeHexString(c, "f37a8901f4ecadd266cab8c87fab7c4d7cfad3e265959f590ab813a59df7260b"),
		entropyInputReseed: decodeHexString(c, "433bec7a616a39f3c6057683ed4668858750dcebafb8c7495feb69895b8f5f08"),
		expected:           decodeHexString(c, "e39b55ed5b03f2aa4fd4781e0322c6a73691987b4ecde2e96f4aea0f8440fb3fdfe4a12a9098f81b20885fc0468eeaa8120751e7eed47d198fae3003bc87e1c85750e1827fae103327f1499815abf9ace5d04ff04f93c66429934929b840ef8666691765e5afd57da14d45d8149139d83c3b794f9a9854046b455cf45bcf7bb8dd80de49a660a7eb3e833e131c36f1b6f80c2d0a43ff92b5e68c69676c10e02d8363ca9acbe5e9e8332d1e29d154c0b750952fa535121b711ad99f002e14b25ee904ee4f6de0f438622068ad431e6edd8ca89a2ae546e69df7792d7934063310f8c9eb0ab1ecac952e70e8f0bdd6982f1ab3238bc6a2550f23b949d73d102536"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_5(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "38ffe955b0dc3137255c6f291cb657f9c3332a7115e996c5ae9587b3b6d5338d"),
		nonce:              decodeHexString(c, "53eb4bfa6a8fe768b1a0ec1549983827"),
		personalization:    decodeHexString(c, "c1a0c8c989304396329b1adedeeeb3ab06ac2bf967e1540b186a47965f20ea97"),
		entropyInputReseed: decodeHexString(c, "0f29b0241fd086a5c15194f67b0615b790258f9810164853ce7d0cf25919558d"),
		expected:           decodeHexString(c, "71eb038c1b4356f5a7259dc5de232b527d4db8ab8e6690086957e77c600a8090cd8e78f51411890ca9ce189fc7b7ce1e506d8fb33b9e36a0b12258f99d471a0acb3b1af193d9393f78b70549f9c1c56add3f103db3e29c52ad7dc73c9eb0ea37540417e026ef2ea9d98bde002aa5e4b59ffc9093deed93f8ef27003dfa0c17d7e1dcff16d365927565da9b283df6132b54487a78adf5ae703e68360810dfc3be0233ee795a843d325745c352e9a12ce84439d73157fb0ddf3d266c222a08d3a13ce5a71f6820d475ea1d828827ced118865dc08b1e44234194fa048420168f8aef50d9f86644abc63835c8d78f57054cf48bec601d82bc47a8a765f38b6ad731"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_6(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "45e924d73fe2bc8391f8cc7b5297027a4c2d3fae76fe387437b84d83501a6460"),
		nonce:              decodeHexString(c, "a658b87198685e2749782b2b17f0d03b"),
		personalization:    decodeHexString(c, "46cff5218cdfdb3f889b885a1170987fcc9a6f035e95ce23f9e67d57c3a5ca2c"),
		entropyInputReseed: decodeHexString(c, "4a68662ee0bfd76291741e0da51ecd3b5e7709f2c09f47548667c50342f69a92"),
		expected:           decodeHexString(c, "a69afe9d05004c3f4dfd99a58e7ccccf45c7998f8ce3c3b69a6ef3058cebc27fe698e6df53b582cdf168e5844a76d05845d305c7755194df580d771b4b977761ec338fa311f0e0e645da965ee90ceab2f677bb029e04ae05fe8645d8a9eb77436e58ad4f1589fadfbc4ca38f4f1bff60bedc9749b8a45ae86e18cf109134484d0699d7a86f378d5724d5c202337ac46a3c14479e9d0e43c28770aa636918f0796c9ff28e32669dac7d2f09a0a254b010c7c985a6310180ea4f202e2e933e163fe8850850c0172a8446303b5762ef3da12de23f547701082bf26a0a09a048c2b50680d4b4229422fa65815cd42f8c2793046633ca3226f23c0bfdb6265333bc4f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_7(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3f58de03b2dc7a27081bf2fa23f33d15b21083511edf5177e1cecd9a0e4ee56e"),
		nonce:              decodeHexString(c, "2e1d214b8b5cfa98344f5e2363de3050"),
		personalization:    decodeHexString(c, "7356a58e1f70a1e62d8e6d35c81f80ec92edfd5c83efda0d188d7a48e982a1ad"),
		entropyInputReseed: decodeHexString(c, "148f6417b2ec7efbc3198d0c045d72aed49ac88e9941ed4f2cd7bfbe0567b064"),
		expected:           decodeHexString(c, "ca227e4671960be6cc5812e86d0eaabbe4c2e99440f561a334da0257e94c08154c54531496e1a563446a388547565ff8f8c50a763dbd9d7711f59e5a4d3cb7fa7151de0aa61415dfce3f55cdd9a41fc13cb77cf06aeaedc1868356af7172993e2d03edae87e913483d5b80f5ac918a77203a0c58e9d5b791b2ccf39dd5f0d0ab04a580cf0ef057af937e8244cc7389a854948c012cb5626445293d7f45ade0df925d717fe64927436530383cf1353c0c2c5a5c57a3f8a36ac9ddf47b2a1c9d848656144cfc083bdf47d49cc0cbd1aa1af3b0a8f108391dea4b6be2eb5969f72aca605234ae912addb1d9cc0ea8cfd2a25824cce551ed5018404f61ceb1977a28"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_8(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "8a41b87b91eb5fd6f1fc287f497700326788040e89e78f4566a095ec398c450b"),
		nonce:              decodeHexString(c, "fd975059af8b7d9b834899362243ad6f"),
		personalization:    decodeHexString(c, "0f6337aaeffa6b97060b2c1d55dd650853c8b7ff22bcd04b9d26a9a49b15bed5"),
		entropyInputReseed: decodeHexString(c, "d4624cd83490ef7299f2851e970b5d4392420052d5a0188631e1d91080729bf9"),
		expected:           decodeHexString(c, "78912cca929228aeb14aaafa223480653c97a65d90f730c9a330d3d57cf6acbc029c7d584a5bd16a269fd900a370e54eea696996e05c6157f224127ccf0e721768e9782bbf38bba6c1f4b6fd9eeb8231fc71a06649f564c498e65df942e80ab408f6a2bd11e1f02532984ac965db1a37c2d2fae85a243810eb5c795cd66765c34c2fbb2cb0e396179891164b0d50ff3f382ff36211e45693b6918795da2caa8c1f1ca98446c58a74a7c9903a6763f06e8ba91da251b16fff8ad793dddcfd90dda4217f546eb4ec2ec27ca321faf78d740b3fdce8593cf0492b90e115153b27737159448e43cee29f055bde94d0528cd5f0a54fd8f43db1db92bb58aeb840b31d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_9(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "63b4507164427908200349b5bea929cc27f0885af8910abb5bfbb639f01879f4"),
		nonce:              decodeHexString(c, "a2b060a8f1eb046015bcdf41de26eadd"),
		personalization:    decodeHexString(c, "ff2538d8b2eaefe11daed282bcb902ec17e427761f52876e0f710c16a66fac46"),
		entropyInputReseed: decodeHexString(c, "95dfc171ae19f98eaf3042867ec0e693afaa647899b50172cbda1bb06f50d9eb"),
		expected:           decodeHexString(c, "7d67cce088f9b12f1739dcf6df39b7235f007c7f4c3fc1f871e9e4abd44efaf9aca6f92a00bcdf5b0497aadf076edfdea2ec35120edad81637357c6b35f82650731f435337e990704db2c1f2a0f705a9707d04b6f50881601cdaca650f146df9dac9ce974cb2f94c91f1fba16ac36ceb61dfc1cf4a7a81cf79a2c8a81b5fe8b6a2a24127db8ac4a4ba34db5bbcc0c8ac6f753e9090c3cc625f88a6c969c5bb86e23dc359146d0490e8d55160fc291bc04b1aa7f4c51dd1b6d843dedcfd66c3167330c9633eee926e1c38092f3e87629527ba3ebdee5910933ff0b5c27f6e23625d1ea1ba38017d402a3437a1e0409f1498419697edbd26c22354f53c997b5142"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_10(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "50f6c8c043f46beb5d1fb612a73227a4767c4b73ee7f3321a60f96ff2f4b3fe7"),
		nonce:              decodeHexString(c, "185eb38be58768e3d2830abc1f86e688"),
		personalization:    decodeHexString(c, "9a97d6830a3a37a97a13e41125e1959adabb8138b03c64fcd7269d3efe79e04d"),
		entropyInputReseed: decodeHexString(c, "567e184ed3cfed2f22c6b2e8f04f6e44fc5168627269284a4d4ea0ae81674098"),
		expected:           decodeHexString(c, "099f98641d077938b0fc380f4053aec7f4170f8331b27eac2d0b38bbaf9749ca8a22cf76feb8f5e87e134836fcc5e8f916063f652334dc6d9307f0be08a3bb7768f092dccb8a721998f8544d16a436b470c5849267ed90fefc11d2534715c51e71acbedfb0f534f7b8a90e255f090e6768dd14c09e3c6ce4eb13ff45493807b9a3a855348143a60ba63c5b2fe99968fa666e39e4013a4af251bef9a4b80950839d372d1831fd3245968c78f74d02902a191ab05e328d9f93f95b7de7b4f42d651992267eb1ce0da73ce416b8bf636ef5681cda090b832472489368b6bbb55d9e292c397910b964e4c6fc44d9b43d31843d3a1276793287e45b5fc6d38fd29b54"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_11(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "be9258e373126d68b0a9f3d90c5ead7a81f811227101add9130eeab4efcab40b"),
		nonce:              decodeHexString(c, "282204eaee6b7ec530176287315f91ba"),
		personalization:    decodeHexString(c, "49d6e0e551aef0e9a46d9da24e0b5b4f4d2831750d7e4504201a977af601d5d4"),
		entropyInputReseed: decodeHexString(c, "dafb0782e9b22a3f508ff28d9d57af716447c680bb3171caa76b8a649743b4a8"),
		expected:           decodeHexString(c, "aad569803946fd12f786bb910238400ab5a0d278f26c9fa2d2bb8c5cf912e990b5bdfc920bf76b87084691908a3eb99da9f41b538dc59a94d65bddbdf1d86ad25b0f560119644d43d2a3497d076789caa81459dfe2f38c4b8795702eabf85a61bedbbdcba46e718e503720acb78319b5d218cee42578ca627c2fd20046a40bb0b7c96e1ffd673d6c3bbe92446d1bc25c450e0592a44c37832ab59a085294aa23ea500d1170e03ef2ce04e916b0f3f08bff3151114341c6a4564a41ba144fdd61251f59b416348c824036757c3bcb2785fdeb0731a581dcc7629754ead205e54c261e555b2cd74d869755072b81aec5adbf11629640fe9a10bc6d51235f2297f2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_12(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f94e2555ab870be715361edc1bbf283ddcb439aaa761d303022256f24a5cebe2"),
		nonce:              decodeHexString(c, "e644ee0e049a08b4aa98383ac1f39a67"),
		personalization:    decodeHexString(c, "01d1e3c6e0e1445c2514ffa383ed78321206efc6fb8737bec14dafc9f9eb23d2"),
		entropyInputReseed: decodeHexString(c, "aaf5768cf73e330f516b4f870f2128651b5b4ab28f90b47a735afcdc42a51ab4"),
		expected:           decodeHexString(c, "f4e0145971e9a71e6e88d36f6a792d1cb6b798ecc74ad3452bfa61d6bb931a6578222313a8730d5dd013a53dfd5a1d1967cd6b8d0a5cf5a90d1e2ca86718a56951b73d37513be1811318cfe36d7e951504e4890642bb2edd3fc9c6e73031cc5489fc3c314fdb27bb6f70f58162bb80b8ede284b75580bd4d53f68d67bf927c5b34f63a172b22af6998927a3f0d633ab8191594948e57149e890a27c48dcc5f8f72423ef2937c155079e7c7304be8fe977e79581d6ebbbac1fd5cc1c9f3d1430174d9c5d9c8a61efd999667d764db0390212062d5109b511de999f0ea0b673bcb9eb8e25c6320153a5df5d4bbc93dbafe68d12d953f680551914279769cef9aec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_13(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "39503f57760438e7ccd25721083e2123e52488b7e26db722a521bf902a92816a"),
		nonce:              decodeHexString(c, "40945c080bf62629d111c1d968815032"),
		personalization:    decodeHexString(c, "d514d168cbdb9e9261f6c451f4a1e354153c00093177998a2c649e787ff47ba8"),
		entropyInputReseed: decodeHexString(c, "c5aeaa8aa2dd28b58e9da88dd2b59165b105dc01f03c6a45f745f7fd542bbe59"),
		expected:           decodeHexString(c, "37db4d9498c9c3b4b22da7bf71fb33fc3eef21d140c196c3fc32671005d3ff53fff22d5985e0d40784a459a189d4bf7815bb1eb60e6a1d64049013492a16a3aa0738dad282b4a4b74ff99d5e4fe397a1a78b978e62b3504c4621de1c4aab05b109cecaad54202b511f0ef00b2ac5011c87b1bc61366044714d47ae72a34890dabdb89ce8a8fe3b849d98f517cc693fa25a40a169c20faa6908d286a7cd61376663d485165d7782de36fc04dedf64f113081a888091165142658c7ff405305f7b7e24885c47130d2c958d0a9ee7af1a4e4f1e90f56793e753756b7e7a03574f60b1e37dd92db2907d08227333979a6986fe5fbd9f22703c4a59d7e0c83e44cd53"),
	})
}

func (s *drbgSuite) TestHashAfterReseed74_SHA512_14(c *C) {
	s.testHashAfterReseed74_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3b915501e56a00a53c47b2b7de16a71df69b42781e58586011f552d477432624"),
		nonce:              decodeHexString(c, "0883667b098dff05c6da0b11171de0b5"),
		personalization:    decodeHexString(c, "9b55175326677bbfda8ee98988ae2776accc8a65547fbfe5b0cc6d6ee46b1a02"),
		entropyInputReseed: decodeHexString(c, "fa8675a5b5c64cc395fcee8d692d9b9675ab37f9a5830c340a7571f5f2cdb0da"),
		expected:           decodeHexString(c, "107926b005ab5205c04e1f9370e095c8fdc5c7ef550810ed7ad9b0663483ce3d93987f72fbd7eebf64848d064a14a0602956d40574bda19dd94438c268dc497fc2ee99cb226f6b3a17f7a425c4fe7beef212b3f69727a2259d7fab2e203490a39e94076f48b773f24d31abf1666fc5525067a74f2577af3742f1ec37a432859216737f7d30b069b32b17f62fce93956384e6d1cfdce0c258a6414dc77f944bc2fb96d92437ff5dd5d5cc97598a99bb02c3a23830a704d700a67ab0bdcd5fb07637cc58538fa91191128ca97832fcabb74b7d5b87f27a08eb35b612e37e93dd12ba35d5d4d37ebf6b6026d65c9f0af9bc91f495d22b4a7e4c125de7979e8bcc25"),
	})
}

func (s *drbgSuite) testHashAfterReseed76_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_0(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "2519241f1936bf801768d78ce24121aaafea760374f2274a5f0dee259c8456ac"),
		nonce:              decodeHexString(c, "95197f7a254639ded795a598edc29c45"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d83a938ee228887fd93e80a0c4778d98895dbafe90fcfbd0f38b3b09508b7ba6"),
		expected:           decodeHexString(c, "55fc2749b8fc921bd60e3d9bc878f3f3c6ed87b36ac7d82ba3a04ca2ec68d43d19a3538b376279e7fcc421de0fa152b1270ec539ae248dbd08223aba1e7a2eada1dd942ae8827c39b2cead65a1d6da0a450118fcaff270a592580732a3cf59f2a7bb1fe4117dfc96ec75785e14fdfef3ede18e6813e1a575a257b5b309f3f7412b58d787a189caae2a96db8075e07849b9fa1e9d86f26ea53fbd622add4743d7892f31cc97d5f2fbb11b3b022fd505baba2b3892a3018c195fc20d7cb579ac3bb44a6c42c3e01526ae4eba9bdd3251d6f3a978dd080f50e24deb37ffc59192bd183e2499c490639c1f5ebf672535a27474e0094402dab75c91b3643adc1310fb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_1(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "573a46993331d5c4d899e7d9ed885712422d891872518f7c931bdfba00bc0545"),
		nonce:              decodeHexString(c, "891665eac242758e641dde147c3bc37f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c3ac3f767288139f90d0810b07d90d0b186dc5a432a35a89331e9e4ee8b2552a"),
		expected:           decodeHexString(c, "7556cdcde6060b683452103c08f91522d904a3cca42a9a3f5971fb8b7c6fc504d39f4eca690d11fe4a1c2182266e69323381f9b25f4258cae6ab29195a61a30e2d5c3a1e22baf04d4c8f943ff74205cea7485cc285b0ff9450be7e125d18b026e044ade3e68c00426e45925faac62880dffb40b55a6521ec33ff081950b500bcb32d052c4e960a74e43049e9c6d4a60f5650120dfc952697e07a26688f72d737c507e6eb49bebccbf975997df606ce027d1a746f8bbba25cf550f0c862f2eb09a306be95fffe061cb7498fadd24149719123a44872565033b8d4ec06136b35e7145a6fb94101cfcb73574b3ac0530f3a250c2e53a3b25c23ae44837d034e1483"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_2(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "cc44bf5aa5806e19b97129543be48d42a42498050c9d781070b4302c91fc0d54"),
		nonce:              decodeHexString(c, "7c08897aed3537e8964fcafd8c9ec6a4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f681ff0ba894ce8000ca8c17509396024a75a49c4aed5c70b8f71b5dbe4936ab"),
		expected:           decodeHexString(c, "f700b3bb5aa6662b3e6c25d58c900ad5d9709affb68579c1853959340c147f23d795fca4b1af2e528d858a8f63521e699c6c516edd291648e6c96eab4aaf9552d2137ac3baa3ec6f1e9a259a07091f20cd0bfba01fb5a63c83ab34252930f7dd12da52c03fe456f0a9372312565cd292b04fb9591d6637b32f8fe08326c44f00181d0e5f69aaea87772b17c611f102e8dce0817796245a69e57916c3fdea3ae4a81ac4f32d6861a1ca4b8971049131f99e374ae180df3405d576c743a1ccccaf10d030c966ea4aa6511c79ede376d0368b2f702f428cf7f3f64f9a5c22a198bbb276100c6e5df87d99bcb5f72c55d6e8372da8151834f07175f8a163879adb2b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_3(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "95ff08b2bcdcf42e235f3d6d3e708a1d6ab2c771ac125ae4e427c0f374927d4e"),
		nonce:              decodeHexString(c, "a59c1b00ccda0640dc8b8eaef8d6bfa5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a0696d9bc616eb507087306f5ffd2ee49f33ee0c26e926350bcbd4d760420abb"),
		expected:           decodeHexString(c, "d972f4dc2ada13ea2ccd543174e7181f781f4b9ba4054d7decddbfb5e16cd3b5a69cacb3a2ef7f90cd014ce8079cfb6f0d5b47e7b718ed8957db64fbdf77d7a3fd3be00e7c81eb8d442992a46c22d0892bf2a4b3b76b75dc9caa2562c2851077e6ba23528455f94d9c3b6068642414ee11340757c52865088108a4acfaa7c1ebdc75ede19f4431a0cbeb607adeb3b6e4bd5a65dd83ed38def6362734d1239e9248cd0c0652ce887e1106beee776b3fa9cd11de5131b64a4cd55110b1cdd9b53b5c4256cceac80374c8e1b12cfb781fb0da914104dbf928f3f298e33a39f2329732fb970b4027a250af829f3b4ce6377bbed690e9ec6ecf78c8d1a56985ece711"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_4(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "fd99514d0e29c8b66f60598fe26307799c98f0f017cc7231f30278d463c20ac5"),
		nonce:              decodeHexString(c, "1caabfe73440d673af2509eda989b184"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3de1922690e93e6626c86fb47e7a4e0f80d716d8a34fee989e3de8f5ad0f61c5"),
		expected:           decodeHexString(c, "03dc3421302f438eb1e7fcec671cc0ba28fb06dbd2ed204019a7053b2e1a6f78b98df267a969b5175ecd81993188a87dcd87a1511597a85852a6fa36cafe7326a4007f3bc9941af99480692d4a62e8c0e3c7f42516af9ba19c8bf504609a27e8eddaf022a4f7d2105616c34e06d690bc9d0289024fa7fdb7084c69bdd7ea0f64ea7182cee2ebf2272adcab304b0ec9d827f89a76982bf00e33645187de55900e6a8b9153d382669e581c83ed514a345ad58fd8908bd64cfb6ef2bde90ebc81953ac03604771a908dd2116ca3e0480322d3d1bc02df2cd0595c81f15e888d1494e31e07b2a5ed2cebe3dd90f3144e4290f182c78962395d34e01db3a5dfc916d1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_5(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "9e44fd24e7e42b3827eb3ff48c28c2052ff73d6f85117a46ff9cf72f1b33839b"),
		nonce:              decodeHexString(c, "a4670150baf26c8110a9536ade1e125a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "508a8e56c4a1ca0a41223d7594b7d9720685638869df4811ff99a0ae22dc4ce5"),
		expected:           decodeHexString(c, "4fdbe1c93a68c8eaef00324610e3d919d81d390746627a52a84f5d8b9de8bfd5563145160158a6f5bd22830584d88da36127f2f7e00ac89c8dbe548633f5d6b49f287d0684feb5528a48beba5a5a70dc8cfb28f285e580bbeac0248c602a5f8f7cfbdf5b44302472d420d99ca01f55b8b114a65ed980d24f90ba00ab01d59c9e844b9d02f56481ab53847a71e1c66bff7a195321a7bf57a2581126c400f6a424550c424fd2d3e133ec09262992bc09449606036467cca2a51315f79b5a4f3547a681be388b31b21d27100f525106a9c0199dd5c538cebf6ab26b0a9720314bbba7c04a7b4403ef61c4dc6fcac134004e6facdfe933a74a63a2adfb05734a871b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_6(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "24d5f398b39e55494433b83d8d3dc00f2f3416dbb4f3e0dd2376dd1b16328676"),
		nonce:              decodeHexString(c, "5bca3eeadedf8563d8620e61a7c7b0d0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ed36c59e31b921a0b3cd0c2c2250ed104b30ee40d8b703fc13dfc7abc1b9c261"),
		expected:           decodeHexString(c, "dd03b7b6836818c603668f1967f2ef012e277cbe76f9690ae54326cebc2a1e2fe6b7e57ae4cf93e8229d311fe66f8b467cfd9615c8cd2bc799a8be942822f44f4f6d0e6ab16218c7562e0072f7bcf28effca89ee29de618c5c60fbc20c817d394ddc03672e7dd43294372c2e84295436c051c297d2c6719ec7b40806963db2d7d550888c8a6baf7147b65b4b85416e587bbd072d7ff6010ecbbe13857e3edec85314f4ba4f7e0626339be42b1f26bce34a987ca81027664a3cfcea4291f110c0177fa10a4e318f31cf0caf0efeaed9845f9c28c88b9061f55369a579a9cd004769dc6846cd375dc8b83f7117297fb654f9de22c6b1607988fe926ae522e1871e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_7(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e79c4f1058cbc8749734ae9b433ef9dcc9030292a7c1b1d33df265ea9c421aeb"),
		nonce:              decodeHexString(c, "3c25c16ae96406f4cb4da908030f2cd8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f070fcc47f494e247cbf50de216febbd7f2bb4df49ba20be6188352875007f97"),
		expected:           decodeHexString(c, "8195a0f6eadb8f853dfa10cd3739a33bb319e10da6a5fe51d4b3561e0e82b297ffadf9f603cdaa3af521823accc513682c07a25583869bcf79687834e103885c9c3d4dd59153b6ee9d6dfd46bb9ea558aac90907e5ef72e4f3bff222087aa53cf491b436672f569f8e742bcf23d06eda1a15a83bf5bc3b039ff9d49e2b6a330ff47e9e99dd6d272810443b01cb5b7400ae12a35288b6df857f7475f8c382094651cb8f92f2b56149747b6ad2e3bfad45dcc5141b25d00413b4e2a2eb27bde245f8651d597c862126852dbebd5344ab44ad6300e5d7bba78e7cb6a9d50184fede6631f3a1f4936b25a07135137c1b5d3486a4786b3510f1c140d82bc503a1cc69"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_8(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f5c0107946da1cd32222a14c3c48b934b0abf27b0aa7af72f52abc9aee6840ad"),
		nonce:              decodeHexString(c, "340158e3ed4cc4b04de079959812831a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c75b58f91a47636cc393cba6b6dec3b938bda296c35624a1af2681781b69d03b"),
		expected:           decodeHexString(c, "cb3765bfb8ed0882cbea7756773bd376fd17b1bd819df48ba2deb0be8b2f53d384f13cc50d841661a72cf9edf4bb26f595e2bc9ca42dedae8110b3f65fdb494f8f06dc35e9d87dbb7ed1ce3d50c59fa4e7be8fa4732c9dbb6bc25754e845d1a6098dfaffd6c92ff62f994ceb743a38c15f5ecf7548f907278271f5b4d4eeb04a959d54b28d8fc21f2f57c01c9ebc512df47fd7e0ae764d756bee5ab15274a5bc4aa84c35faf046c5cfa2b842eed839d97eebca9e4149a1165afe867d1124fc941a4503095f9926918e6102361faf15923ea350c5632984652e198fb754bf0a7140fe9bde0bcfb594c6ce510799ba62d62b14de733da1bba2c22b6b37e75a9ef2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_9(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "fea401ca14f8d0bfcb7c57551b748a9347e62340267ed6fc0955ae5fa054ee0b"),
		nonce:              decodeHexString(c, "c3e0debf7ee875ba26af1b8b0bfce58e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "beb63c936967d083d40c508d5ec7011ddd778e7fb1bc7bf7a8aed92556f8a94f"),
		expected:           decodeHexString(c, "40c0b6052846642bb170e025414032ff3e5f5c134297033af239e5229b53d8869f709bc1515a47d57c9789783ef6d23bc4ecbac7520cfeb84f7b770cad869babeb68ebc31276197ddf405d7e9f97b0c7a6d76096347db0ee3e6fd1eb96678a3df1b28d421e13891bef0b3d8c56fe027aebc7966124bcbdeb6605ac12d882578d6cf8d83f40f76ebfef5f2b55d33f8488ebe76da9738937afb6d1139b347792edd96731c82ca7878cb8e02b19f9b81c15c3c20870cf3874fe8e49ef2a62a1f974c9d9dcb198d3c57440742c9ce2d3713305bc5e61161a208cac18ee53af28f4807af0ce705a7b27c7623c9fae695b813febfddf20005d9b204d12fb5ecdc485e3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_10(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a6a795b575654571853ed858ef8f8b250fe7a6b62cba5eeccd3a26f9ed89c2a5"),
		nonce:              decodeHexString(c, "0b2b965d6641f57216c331485a21ed7c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "daf3a59d697dae18c0f450501bd99605039bcb17711fe980f39363ca3e8c6807"),
		expected:           decodeHexString(c, "8b6531af0640382b8b84f069a60f8958c938700749871ec11625b370c9a4138aaacf16f8c76b2872e4d3bacf2332113b00a74cd328fd78950239298adff3af1762145bcc4b2aa7b255539094c478934b088605cb25cb63e22bb4368624e46b4ff63599ac94989ce5a646b3e4a48039bb0bef88414b86b5407a85a7ab3528e50eaa89848e8d1722cf298665f42041a798be428c9378f31336b0e2f1f3ca8129b7e786cc1aa835ed74a8cbbfd6d244145f789fef39cbff8b70741008616d9c1dace9128ddbaf04274e3bdb49d36977d9cc30fbcddbfaad8315302d1b099207fe8d6198664bab24e10ee6da68a5dcf94d117a1da86dafa0059f4bd901efd4409b01"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_11(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "d7a3a0a2909d015b1a2e99d4a6806f8c91f2903e14c1515ca5cafc4d71cc42b5"),
		nonce:              decodeHexString(c, "8ec85da24d6e236bcd741d6379a3dbf6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "25b095fdc34392d29d9739158507f35e7f544570def1bf7c1170966156cfb0f8"),
		expected:           decodeHexString(c, "77481090f55dd65d46cd20a933f07b06c61e6c8419bcaa825e1b47ff6ffcdf1c5d320a333600edd567794462c98c7ce89bd584a10d0a9d523cf8b850efe263877fcd3eadaa45e6924e7e78292233274387fa675d9f5aba14ed9cf7aedbe60a66f4cdda180cae7d1b3a492b7e46243c3dc8b9c7bebd7fd6876febaa66cac9311f390317c24f125ec300fe28f000b59f89e767b670f13c4de068923bc73276b000bf62607be9dd8ab2beca1aeaf91359b4b9fa484847494ccb0e47913afe681eaf48ea28641001f49048fc254103aae5e643ad940e3d4cd5ae3af7aaf9b9b6c8ba8651a148bc0a0c705230e02a71f2a4c839ba9e49d79c2b1174d3d166c3f2cbd2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_12(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "4f08809489b2bd1f07547ec350e83447491d788c6007c7edc2cd4c64a7134dc4"),
		nonce:              decodeHexString(c, "c85f4de70bec19486d463de79a501233"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "32caa7347f7dce491895445721269f2bc57faf64defcdb71eda96c8a96d98925"),
		expected:           decodeHexString(c, "642e4e40aa2e494e28a9aa794007703a381a0ecf961133d519a51d306efed03c4c441fb1bd339787faaa798e3cbc0ca8e81006a923eb8453c339caece24d35ecad46f49788ef960d4f8db6592be31f06123e2655cbb751b19cfcd12fcc03d1fddce53b6dcef8cfb676831a9d8945d4e4d5b21697ee140847d4530ea6d4bd3fa61e8b3f6c5af07cfbd35231146e62e0f0fdbe2e5b32222c7ba488722dd1424361f7e13407b397a35b0c551800b5c15b311a14024a8e1351e1ebf5a5ec8f8907fbeb501ec5bfac31c2595df7e64626fafe93f007558ea245ac64f9d02b034385a726f14ba641c0b076904b784b8410a94d5e2fce62678389f8d5ab12aee78d38c5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_13(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7b259b5188233e839a439253b4c425f67bfc54112b49c824cd4c8c71a1bf3a23"),
		nonce:              decodeHexString(c, "4d60f38934108631a370032e9b294fb0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2f6db8958971d55995756147826d03b067fd6d32890b392fee53d3fcfe15e98a"),
		expected:           decodeHexString(c, "91021ca5eb7c985613048f3a10b2802cae86548a2e21bcbcc2904a1a92c548629870576e88be5c6e0e3b344a5feee0ddb8ece3b9fdcdb1b2f1378eadf7fdaf8fe1532a4eafddfba9f6b23d8da370d22dad8ea3ec07026cd3967a38758729d1d7c7c2e4e939a3fe58820bfdc774a837c7d5293a3b1ff7b2ff801ee799d8e4f47b2e2b44753197732ae44d35ed20ec09053b420b0c36e402ae5c14dbfeeccbe851912ab53a34858a0eb09ae5a3fe30a2edfa1481ce27ac601445d9f837174534282028ed55938b8041d1fcf47bb68e4ffcc78073b20cf32d60107daa63557e787d8f714bf50bde3fc435af2261a41d447aa7a91657d693fde5b1ea05f18ed78cb9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed76_SHA512_14(c *C) {
	s.testHashAfterReseed76_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "fb166642df51525253e85be1708b8191d5664e4cf02e6d3b659e106ae7639590"),
		nonce:              decodeHexString(c, "386c872274e13c8a539a7c649602e2d9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6be3ba39cf8c8fff904bc1ca5be10736b3e549a57b5b9c97db911d398d51b5f0"),
		expected:           decodeHexString(c, "727c8529531b7cfca4f12dd811d96db928174de263781ab0dfa69a5f3bd8fd51ce1d1f3c0923fad893b07ab6c39d960ca11e8eb57aacb4f90975c1259f5e2daff2f38bd23c3383557b7cd1e7faf9950cf4420d078d0599c6d045ff2f381f6c01266348494c08f12a1bfc3b36e1fe8318646dcaf4116466fc36a6236a4d7d865b2dce885e25ae05b458a3bad69d9ea12cad43f0e13fcbdb1f8cc85ad943cd3f9c33595add02777c0196a26698454c78a6ea1a619c8bf8909e425a75495d1257df0954f1bc6c22d6fbc5bd72fbff3889ace83a77b1960f6e163394593f981f1aecc89f83c221ee53a5541358689661f84492210b88556a30b7c51c68dafa38b0fb"),
	})
}

func (s *drbgSuite) testHashAfterReseed78_SHA512(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_0(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "12c22031d03a850f7696c927d4dc8dad4c3dd717e60ee5681b05db6426a0e167"),
		nonce:              decodeHexString(c, "cd32e3eb3f8334d9698dec627b2eaabe"),
		personalization:    decodeHexString(c, "756363f68178dac09a5c8d64effbab23873a3bc2dfbac39b6d47ebf929ad9854"),
		entropyInputReseed: decodeHexString(c, "17ed31bda64b08ece50edf5b91f6a0862e5690181734a0134e05e366640b7e85"),
		expected:           decodeHexString(c, "bc5d8d11be22679e33f40374175716e67c8b5fe6819ac53a9b208dc058170431ffc29ebd1a8151caa3e9156d4c7e89e39c124f7194095102e869310674471a7f1dad4e58f4786e96b7aa1ad7a5115923ba01d4e7a60a8f11ee9c47266c0f1ae434168b7b1fb61ec0fc292c6c2d3a8778dc7b881642fb8a3e9fa5ff3720f700ff89001d21e97c61c246dd4f87bd8a64fbcb92014d52f6e64183bdca84ec25ed3524b9abc86df2bc4dff2b76299855de61b7da7edec027893ab4edd0d6ea6348e7610e6d940af4225463886859ea4f5c53fea2c398ac2fe74a9b318b115dd46bbec6884f077835aa95150ef0b3ed34d6d5b144ff1c1e2388483d9b5fca8a2c5bf3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_1(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "a521cb5f91c89908e1b2d1bb9c43e0a36dc7bb6b274ed304a4d87b29841f97aa"),
		nonce:              decodeHexString(c, "70fbb10f0719866fae61f23d1777c3e6"),
		personalization:    decodeHexString(c, "63761bb75783c01135e1467c3ca0de679a20073a0513e71786c554dc093a4a9a"),
		entropyInputReseed: decodeHexString(c, "f274655d81b86128a4986471f217133cd8a7d23de6f276f301326899f1e2768a"),
		expected:           decodeHexString(c, "b7103a13b41f36294323b0650e7fc77b68fa36d92ef5789a9efbb69b52f5e8d71a62c5f6dce7c4afc25c33ae6fa1376472f2fd4ae169cb5b4a9064e8686a96a395979ac8b61b826d38a0f214924fd38669958fffbafbff121877ec7c404ab365f0bb3a79b79a7aa5e8cefe6c73df16457b6d5ec06c30016697478454d4103780ad8850764a52f7670c325dcd160bd95e73b6b5b0f0033a54996de79d0a17e6b61a2a4a852c88b65b0c278c7e9aa4d3ddd3ae25e94515f7220b68ff7841a397e6495ba9ccc1fe94894ea9773c18ae0c22d4bfc947e3c2f3d7a75931ee75332666065b0a175495db838b397c8981e251dd0bcbd961eadc2e1f163b10669e66a027"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_2(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "dad6155b155ae5a8e9b5ba985d9883c24efbc7b0b90cbcf831d58ac5eba6c41a"),
		nonce:              decodeHexString(c, "31f0cd81da9ec64eef75fdcb6d5943cf"),
		personalization:    decodeHexString(c, "c90242d4b03a8bb5d7624dd8bab3bbfc28860d68cd33a38ab7afdd616289a6aa"),
		entropyInputReseed: decodeHexString(c, "2d4d48c4cf14595cc5d00384a8133565a48ac0895fd9fcb1652fe5e165d4e394"),
		expected:           decodeHexString(c, "5ce033555b34155070611e6c451725e844352765f0a8f096a37ca3e97422f6f5dbd04dca00f16e4337af2c290a678027fc780948bd7961e0cbcb2bca679f38feb09dc44ddea2c96e3f9b8bae398db11a7d5a094cdec0cff1314e08a6b1942294d0ae1060cd9ff027aa9f371435ea1f4e58fcdd44b204eaaee0052cb905533d3b3b308bab0ad75e14e19fc9970845aea0a256d0ba23092262be7b006d19c3fd8e61ac2f2a5ae8226bce937f2393a53bb4b1b2d1b248202c5311b43fdebf4a1b351c90756f1b125a927422338fce50d7a6e2f18602425374a5661caf7ea3976f2dda758ec7aef4a85648a71bef2f9039600cec5a47e543128b890441c3213b80e0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_3(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "f89ae0bc93ea6db864be52127ed7768e9a8e804714699ece3d13cd4670e1dfb2"),
		nonce:              decodeHexString(c, "37ad998afb41a0b0e9c98cd4193ffd1d"),
		personalization:    decodeHexString(c, "52115a38065de57d34870c12f02f4a2e8906c8b0e0c366ef294c766fb1cb0035"),
		entropyInputReseed: decodeHexString(c, "b67f044f3e238152f9ee5f5c8832af7307d6b061d8de29ae1cfa28a6afe43951"),
		expected:           decodeHexString(c, "2df5be56e78df5fad447f5bc0e9f02cf2ed705f8ab145abdce24253e9dec98e6a8cee77d59f9699ca85890a91de221e962df85d2cbddef958c485abc2b5a44af49ad0772b0f2183a56d94d6f17720624a4fe553c7d8d410e902c9a9bb42bcd9ec0c10198131a21ea92ac4a7f53a5c15a2b348e9c80a817731244a6b0909461629b3f243257fc15a827e357f6a48e1f5ac0ed525df830e896c492e605b9ee5fd49f39b2a4219214b8b93ce7b2fb6bbe2832d6ab22df90d6d33e6cf51bac751e199d27abc76ca34aa1758e04784a9a7be356c464c155d5c54ebd3296396231ad3f81f8db026dadf7f40b2ddccef6756d0cce061abbb76d6bed900cb965e2f28b64"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_4(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b030a50026b0118c419edd4380d3ddf0d80bc446134adccbb1534558ec32501e"),
		nonce:              decodeHexString(c, "937247304ef13ab4fba9844d7f9bd276"),
		personalization:    decodeHexString(c, "372aaeae281a11f691832058ee884bff1e3e79b3ef218045a2f5d02c6fa8a8c6"),
		entropyInputReseed: decodeHexString(c, "49c7d993a6cb9032fef9904f8b614598c58db81e1a2bfa48e49826e9f6b5e042"),
		expected:           decodeHexString(c, "1154bb54f38c53b73224c3e50ab22b2865503fad39f0479b04c297ddf205bd151c6e36d85ed5323ef11dc4a32f01d733e09338979b5463298448ceb369226f9706e27ec0ed17838a7addf86b160e75b46cb94938863784d4a7509476eaaa287902d5cbb9b389bbbafb5b53245c78315cbb98884e932adebb574f47fdba72cb6f47390db4498b7a1b994fb9d74070c11c06f95ffd501499295ea625241d262acbaafb1da5346122448e5a6e5aa322bdc8c55184f8111f6c87b30d8acc52efcffb48f7bce3df92c2ea51d139c35545a86d8e5077772c96c167d0f2cb1ec1d5c7a1a9a45237e9caf8fc067ad45313c5d3e7174375a7a27ebb42cf1b14ee26cb2109"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_5(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "5a7775051b440d9ec535574f830564ee279dd73d2e74502a0d6132c09dbb26e4"),
		nonce:              decodeHexString(c, "a30d2bf2a369c45f044744c0e1c05213"),
		personalization:    decodeHexString(c, "184cc86dc549bbad740a608f99dd59a0850539cfff0a8de83bd1a29600d41321"),
		entropyInputReseed: decodeHexString(c, "331e4d09536ad86afe84b0a0834b549d2b3f0b26d6b498c07e399174b7f4cfd0"),
		expected:           decodeHexString(c, "618e62c489bafadc6e60b76795702d4ea77537de67e6ae460f02a710e6bd2e0273acabcf35b8cfa04e9e00b0edd59156129a823a7fe1511b9c66e6b4d07f62230e07abe28adb637b9df0b7789a2d33dbcce01a1b6f4c4bc455d499a0f3a171f62f6691f062c21389aff04448c4bf012c2b1bf57c788e641e853da94324b7fc4a19eca858b6ad4aeb0a71d4c71c3d7092084ec663531b588f6e259f7cfe151485f789a63f33f9b922810878c4d5d8897bfd29447b8a91c5f9586b22bb41a769902a5f3aba27dc25dc1d3a5b1bd9c34b1f95efe79fc4ef368f90eab30437311a3a99ea66a451cb67bdcaaaa1ff3f36f207164a96a0f91605c609215e830e0c7c43"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_6(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "e3ef9f669ed46eadc2dfd391e58e2175b676c90f6c00f5fa8e9a1865413dcf70"),
		nonce:              decodeHexString(c, "15cc925e9127b1e88d9881a8c38e0e9d"),
		personalization:    decodeHexString(c, "83facf0fbedb21a097dbca43c3752962086ef0270e0d5c55151bfbc6ad5bcfae"),
		entropyInputReseed: decodeHexString(c, "fc8e745b8a0521c182b48ac84322ccc801e34707240be6ddf060264725e9e5c2"),
		expected:           decodeHexString(c, "98e3cbf5548309f1c8b617de98bf4c314b01cdde3a269ecd5f9b582165d184869e500fd080ba8501830e31b8632c4517a8937192440fb259bd0cdabc33743d401732031df36d564bd0d75d0cc582e31739ced7cab8746350f2c1087c61329b4a18c3651a538a9196bb0b90c6ae3728e67d824a4e8dc56014d4c19142258a194d9fd87c5ee50520cb6338cd188274b65e18d2a77687672d33483f50e9a543d3696836a056335ad9961a7dc91aa0e07fe76c71d754d6b6d815cc009e616d4bed2b2be5b9b008b97ecc8cf4d85f20200ab63bf32fb2116db579a2c0718990d0f270fba6870ea1d705c05875cd3a4c1458392070b3ff2d2c71254720b48548d2d03a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_7(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "78c972df6a57a8c226fdb71fb305ac30597c539875cf38995884891c3a2a89e5"),
		nonce:              decodeHexString(c, "176ee854514568da95422dc8a89ce9c7"),
		personalization:    decodeHexString(c, "63aa05187ef936709afe882d98f30fee4842274277375888e3a5f3ec0e97544b"),
		entropyInputReseed: decodeHexString(c, "7e1c670157994a077ea091f7086cb29ede91b46abba728b6e2c1e0d02cac5cfd"),
		expected:           decodeHexString(c, "f3c8ec17d780024fdf3505804871b137d95ae3155b4bb867b787cffbdaec57272af1382eaf8b602b5eab3ec0d850ed5dde799371d578d93a657cc4357d494e2a8871cca96adb0f5dc72894187d9c0ae9766ddea13536408e29c14da25373b59f943e6641dae5978cce18a5f5c84ae43a235bc569556a9312b665d6b4dd81ff1dcb890aa312a9572be34b8ce88293af199c461f7ccdd6afa6ad0bb31a2c69666cc3d45dbf86c9d66900e2a220a17c7032db5f5f9313e35e9636c14c7f6af016f29baadcf6b24772b1d9fc7be73bf7ff3546fb0d3064d88317947d30058785a583e2a8ca9c840f439ecf9d93c82f60eee04d6573eb6abeb8927e452821c6c537d1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_8(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "93ce3de3e0dc853e8ea3e2d6c2576229f9dbf2a278e547f9e06eede3866bd892"),
		nonce:              decodeHexString(c, "bcaa0a57177407978a446cdeade3e815"),
		personalization:    decodeHexString(c, "b4962ff5227018f4c48b91f9d5f88ccf68bcd596944b309fec776fca64708cf3"),
		entropyInputReseed: decodeHexString(c, "f0e5299e62b217cb65d760a18b2600e90c7e676ed3df459e0664fbd677c568b0"),
		expected:           decodeHexString(c, "b68dba6303cbabb9773e499093323f8c1dac2a669415d472c18b85c4a800128bfa5d30c890a3d78ef0cc1b90d01a177808525c3d1489f0bace0275c65d9a2b4adc30060ed3f6627222bbb95b1d1d5e26f3981511af874d1ca797912558c1fe25a2556ffddf4f779da9d28a471200996c7e062d87291ece039eab37b744bfa7220b38352c57f43a1625dc9bc2405b9cf36b36d95ecda9138871013590702bab9230e4e53d5d71312bc65c5ddde632b582a5aa34363c799aed8a5b74843c661adc77b42c26290c7158233175be4a4b4bd414e1965c027c363dfe87b547887e8bd7c3cbdc08e039808c62bddccfb26d36e042d997857395ad2f350490f59d4b56b0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_9(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "b75982ed790447a297bab82d1e579049a671a8b01bed7f01f7fa2470069751cc"),
		nonce:              decodeHexString(c, "68daa92af87c871269d48f4b558e4c18"),
		personalization:    decodeHexString(c, "ec11cc872d7b6ce95b096816e4e0d50db1cf8d5b3df9568ca31ac5cedcdb7d5a"),
		entropyInputReseed: decodeHexString(c, "ffa9affa41f3c7ec36ec530a392c4170cf23b9845a04a1fae18ff86d44515462"),
		expected:           decodeHexString(c, "99161f1dd7afcc9285af35128e9dbfa60e1ccf46416ab7bec59f40ee6de65ffce79b2d426138cad6b24e0940b0fc85d507a2cbd403177eb356238dbfd20a078b3b987a343a0653d7c1cd8c675596647aaa4797d4c6747d4d945d30e04984132ded477f1e4b66461d4617c8eec57458ebbe7d0ed3340a744f766ef19b3690d0d622f381efe099f987dff68fe8647624746e8e6f02dc36fc492eb86e29f8914ebe923e4444d171fccab0f35c1105c3b6a696c354b650af8638c0e0182eec00b5a271fd8020503b73013df23e59e0f7f4a989c17a62abeff0d28d7c4425349992a76368de4ebf2d4c9d476923a28694755cf9ac8b65b6ba922a33b3115529f7795d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_10(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7b552ef6693837cc86b4ace87172fac9e5b3e42100384e4476e8c9648e85aff5"),
		nonce:              decodeHexString(c, "c13ba80536317b45f402eca083b67813"),
		personalization:    decodeHexString(c, "2b02ebcd2d4ecf80e5efc4b3662c88bc981330e5cd4ec2930d0542f73d772a01"),
		entropyInputReseed: decodeHexString(c, "30fe542b2483079740b19bf5be8ae80bc9e13d253c9e5bb41f60a97310cbff73"),
		expected:           decodeHexString(c, "dc706f353e9bfa2b81fed3f0ce74e22e73abb87281c4b636776b0a62332ea87e08b1aaa2e99ed6cf8cd6965ad7bb9a076a464c8121b0339e6bfb83aae5e6dd0f6f02a23a26bb196101c153a2df58324a1d711254b78c78fd613521ad19c68e5571488d88e20a63716a8f004bf4f4014656cfb6fe56d3b9faf57db4102fb6aab7247748d369d3cf5f766b02dd06dd49f6557efad3fc2d77a847ef13a637f3d27ae469b84c72932dbe33165e4488518d1b8ff4f8dc7e01cc31a0c67d466002bc4723482cdc3f869f9a15e44272f2b237495363941b7c301cc8a0a131c5460ba2cbadbeb587ef18671bf17f2825bc6a2899f4e7903b9d79788e6c70bf289b0c22fb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_11(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "63579af3c9ae882837f1960e39449350488d7b4ade68d1e6760f7c020234c595"),
		nonce:              decodeHexString(c, "9a6a0aa23cad3ef207b5615782720713"),
		personalization:    decodeHexString(c, "e225c701cb6aebfd6d9050ad6d0c3ab3ef47269d1f63971271b7305f55e2c6a5"),
		entropyInputReseed: decodeHexString(c, "35be4df589aa0b4d889d0276ffee4e792e61e8cd6fdff4c63d7ada30a2ea640b"),
		expected:           decodeHexString(c, "958b59d3d4a0af6d896991c79ce24c794b3417fea81cd87bafc127c2464ceae1a69d3658c1c3cf497f5f7c2576caecfadbebfa6e30e25b33c7055a6771f03219e85d1af88ab94d6e59ae835f281cd848cb4a8054023b9f895baf93ac6c1bc6c97ac2e32ce79f6fa96d795ebd6f7319e15257207348e6e3aa34ff0f96d1d1cf70a57c43759160adc787b685c41c739f8f298f1129f2a45cb441f633d1ff1b74d36806f56bbb942f33851ae4ca82110207f222fadf697612306c533c802f52f9fb9de04e273497fe881c9fefbd595c59c544a2d9b62a54932f2c277cb7e07178f9601e445ec6de392c5990801e0f3edb26c8f7a1deac165c809f779339751f67ec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_12(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "83da36f1f9d70ff8a9e0fff614e5c85aa4acc8041b2f29e79d5e3df1e2820074"),
		nonce:              decodeHexString(c, "eab80247a9016fbb18fef0918f34fda3"),
		personalization:    decodeHexString(c, "a0e04025945130540fbf86e88b34eb9565987325f01b88e6c213846f1647f185"),
		entropyInputReseed: decodeHexString(c, "6d297e34ab2590cfe03b0fecc1a921541c159b4c8423df4699e8ddb1dd1575ac"),
		expected:           decodeHexString(c, "00aea5b924c99170f1b053b670d5ed2fee55b8cae317fa3bef1d5dbcb8081560704e63259950f3db5b9b4922e3887878889b7232758e6136b581fed7c068490ed7098f6cfb19109d4c3b949f7123f45e52b9a6f3321e3db040ef96652d2749463af1e6958b4f0487a7dc60b8a9d0e10c368d8e80b843917415de3f0235da1d352072843d774dc71cfb1d2e5d972a52a2ece7903151cfacaaeea8ca9c1f1c5aad240c8281cdc8d33668f9b03ee38b2429c9fc661b83769347bf617b72b76d40269d4f94eaa00da6f3473c56e9fcc0f4af852039aaed5cd4c317a99921b7028cb09bc496b92084e026df02ade8aa57a44deb22e179cd3e91ca57b31e763fb36dd3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_13(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "3802dbd36565952e32f807e72ddcd16823f0d8cbc7e344871968fbdf7251041a"),
		nonce:              decodeHexString(c, "729198bad4a78541ced199acbd0070cc"),
		personalization:    decodeHexString(c, "d56d9aa9bc1d5ab27bb7a450f8ed104f47bc7961416eb84afe77f036346a6ce2"),
		entropyInputReseed: decodeHexString(c, "bd79f436b4c1d00f45b11ee9c0ac98044baa8f178b15de34cfc06941adbd7d9a"),
		expected:           decodeHexString(c, "591853dd1d59046183ebcfad5208bf020f7463b06a57932b429c724fd71d8324e5f446ddbefbbec33cccea1d57e6319309582cfd8969a8c1dc1c677b3186bb2ac5b2360cd3d512de3a7108ec0113b24201463bb5360933a1ac4935de9c8935ae245ba5e2cbc77566bea51783bd7fd553e66480e28977a76a5edcacb89b0a50659cd6977a251f89f9a02ed2df4b7df80e7711372714e7feaada6394976b58d8a00188034ba85314faae1df8c9bb361ae03d8e1e62cbba19eaca4e121a8c316d154f2f8a19eb6c8a3c7a84d574a39afb6a7d680ac8adfff2f6c65c0c72ebc25325739df1bf8ce4206086fd7871f39f7af16b33c97d605fbedb7dfa7fc1851045e0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed78_SHA512_14(c *C) {
	s.testHashAfterReseed78_SHA512(c, &testData{
		entropyInput:       decodeHexString(c, "7dbee2037b56fa5628633915c9667f2db0ee587656bd43e87b1a8c9d29492b70"),
		nonce:              decodeHexString(c, "9720d7c43db649f998210a8e2818a5f3"),
		personalization:    decodeHexString(c, "a3eb4fabcef43cee0b6df871ef2a7dcce385492300e503d38a800bf423347bc0"),
		entropyInputReseed: decodeHexString(c, "562bc5aca3fba2f4337cc45d4c402ddf3a9c81659f848b74f9e4ed018b13d2ec"),
		expected:           decodeHexString(c, "da4c79ba4e383185a814b6ff22d4442f9e896093a2700d095af5a35efe5203fdfb8cfbc14f2551cff49adc6b003149a6d92d19612b7256e52cdcf84e3578689d6e4af6843ca48cac7724e5c4e33bda9d41c7f260dc7d185872f49384e11cfb1c9f3ecf4f49c24dccf996703d5618f08819d7627278355c61a826f00e2e072381cb920f7c8af0b26e07fe147e5acf3550761f056df6ce66b10d234eb41f62a5c0919e405db7105c5470980f0370288948bb5f8198c8cb4ad32e389b55dc9400e946ce02ba92170e8600dc3e2ab77e102a05dfe1fa31ddd132c1299b65507870b7b624b14d0f9d01d36bcbefcb5745b9bc766d8333603060914b1c47188147c0bd"),
	})
}

func (s *drbgSuite) testHashAfterReseed80_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_0(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "260d86f8b7ee3f7dc662217be46ad23f12b12078cd8f7135"),
		nonce:              decodeHexString(c, "c7dc27b23f994a1e88db890d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fef2179e045b8d0bc299ccb96e270c01250d2bd315a7e9b8"),
		expected:           decodeHexString(c, "eba8851530bbb11b07aba83898e2d9bce4f94080f2547b088f609582b0ad8274e9e59cddc24fe5709d7b4eb83fc66df0f55e10647350807d708a105e9d0a54cd16771dfe2e6915a818a8fcbd0cf0119f869e343810cb1a0ecd83f70de10243d34fcae5f0d8bf568bdd5d1392a82b52ab"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_1(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b3f6af4fa2560f54e46dfcdf4bfa3276047a6c6fcdb680fd"),
		nonce:              decodeHexString(c, "9f01d50c604b43c8fc1c8c47"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "dc82b6024cde6616b1834f60c0dc7de7d24a19206f718a52"),
		expected:           decodeHexString(c, "d97d85f3b35ac3deb6b988a9a0500b813e9667f8e8b985d3745327f50dcbe6a8123ac41c8815fcc71273a7d3a2328abb0b2c94120257eaeadafdbdefc6d69ddba21d903cdd16f260d37163cea9f250e400a3ce17dde6e71dc6a64fcae60fe568600240885b925cd0ad1dd2a1206af12d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_2(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "97b40741c9b32da61852c558e1ceb8a3aa603f3b2f996063"),
		nonce:              decodeHexString(c, "36254e2be63275ff194672f4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "66b8dc297de67009e750696a50986606270dff524a030a26"),
		expected:           decodeHexString(c, "e6f533714c266857ac525e2463374c75664c7ea85027e1c3c09a6fadd9e1458f3bc07eb243ba49704ce062f54d3daf520cbcfac18eae07eaced0884e44d2e60ccc295b1692536a76f4c95d45ea44c5fed8dfd8dd2262e3a3561d5df34597b472a13d961128b7d06dca702f359e1fdd59"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_3(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f1df3394202ab67fe37676df884f8e2a20c5002fd132afad"),
		nonce:              decodeHexString(c, "56ff2368eeba58d3cae98451"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cadfc9c6e0644993a0a98fbfedcbf899c49d0a95a327d959"),
		expected:           decodeHexString(c, "1d315bfb00c9ac1cab6daa84773de2d340e02399aebda22328c1bef122610b7620c4adc5acb5513d3ec11714e70fda8fdf94b53c3dac6452f61d7f64773e99b9118c6dfaa173343bbafb13aaa66ee788af71631e9dc3d94e69d4a775203a4b95df73193f36d46aaa5f65b46f5f25f5c9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_4(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "06301f14293e1724b7acaa465e19011a5ef78e74249cacc3"),
		nonce:              decodeHexString(c, "87ca9d1d60482e107fa35289"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "126659528692d6a14e2608ef9fd018163144e85056f1c769"),
		expected:           decodeHexString(c, "d49b7925e68380b4a2a9c095779eff01c5831e4f61569d77c16c1d0dd8eec288300c75ae37acd297b2b4cfb5a30077cfd8a99b8d838f18e5d5945285a1a8a394eb8183bee1c83908515cd35cbf92092a29f2197b75110922b89a87f5e0943dddb7182f865e2fc2d6938e6fd009b95899"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_5(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d72de2fb6840bc8a5bfd546d22d1d54ee72d8ff87ccbdfab"),
		nonce:              decodeHexString(c, "d53f5b44a00a24b39565733e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "977db97f0bfaf00530e3eaceaec0d0c4e8271f296cff40c1"),
		expected:           decodeHexString(c, "20dec880063cafcff6ca985fa1d4a780bbaa56fd92b283950eee094da9680bada6089fd32481d7fd98b96d31230ed86bd6d70e47562f6be438997475789b9570284bc8fd2227ef71a3b19e8053cb9f597fb115642808c95ae25a9e757c461a4005eaccff042a2f0402d9e4b43a404e06"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_6(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "245a7070aae3ea6218a6de5cf7a55a3b3732df389da61ed8"),
		nonce:              decodeHexString(c, "b333d2820e77f6b6eac05c05"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "02bcf63f96bde3128ca400f9b0ca7ab710f931f597e20fa5"),
		expected:           decodeHexString(c, "0fcc18bb1d43adfa6142a35911bd332d651940a265ab68d5c4154143358465da44d821d6c1c73a6197c8ca1dd80369acc6d53b45e5747aaa79bdeb21faad1b945245b7bbb9fa750e847a5135bb129e39fd7cd95edcaa1310d89cf8160f472dd3a87c706b5342a27f8ff0faac6d041f1c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_7(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d12dc5d5df2ce6a3aae3cc2e3a7032a20f8fdf0a3ccdedd0"),
		nonce:              decodeHexString(c, "bd37f6b5370037f1c24cc881"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5ee1a765b59a89cb92057a25f1c961bba92a787d49c39700"),
		expected:           decodeHexString(c, "8220827ad52f9a8b64de24aaf08c2ca25393a8fde1480dd04c79810f026defeff84eb92daf405241a9559010b1910f4c4d52333a046b935f1e24ce045028bd2882700b9453cd3b8c65ccfd4b83a994de2c0f67136e753bd9d7f0c911cc6687873d42e5f4e8c18a82049fa8e1b0e7edf1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_8(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "ce55f83dae31a463776c991786295308a09f5d3bd7e48401"),
		nonce:              decodeHexString(c, "5a4051f94a007f63fcf7f81d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9d176d3368521f675fa8872da695a4c3500f5dc5d2476ab0"),
		expected:           decodeHexString(c, "586883544dab78fd5d4f5c42f92bbbb7bcec21e4f6f561248fe3a984b594637f799ee337b21375ad764d3ff2fefaaff6dd8f545f8e998bfee5f5146311a398f9d52c993c9f76d63d7dd397fee0f3cdb2b92c3a7fee18fd47e37bfbb095f9cdc0b10ee143e7beadd13cdfa64954c5a7b3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_9(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fb2f10748d5c8533a5e4973786466e50f8aa9c5ff391be6f"),
		nonce:              decodeHexString(c, "96c9f4c90047edbae19eaa31"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ea8aa3541cad8d6d83f529220e094a01ae4338af632f011d"),
		expected:           decodeHexString(c, "1a5163ee055a87fa25adfb0b2aa85d5dd2ae8702fbe05c5447f9a9bd92c649d6444674d8c88ec9a85e33e0e296bc45a64c43c7f610f82c90bce2d13a3d8635e59f0b5fbf2e249e69ff22546241aa7d71cae5c01ee26223020ae88af9b8118ebb7614406b25c5194fa188a82e2ac54a20"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_10(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "310141c3c35faaa706adea3091a10d7553e1c0a931e3465d"),
		nonce:              decodeHexString(c, "de0104cd4f2c9ddf4dbd8121"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1a46bc6ef022e24e6de7e705cf7fa37dd5a00615d543e083"),
		expected:           decodeHexString(c, "3542c5a6bfab47b826c3f30b3563aef746d4e4fc58d4e4f13e3eb1db59dae1e3c6c1f877e5a1ba7e01cf8efa82df173dda74e6d0e0a571b6ac2b09bc646557eb3947c592fd46484df4bb6dae97ec6a109814f36e9492b4abf764fce534f99b4faaed0b4db11aea12a668d055100504fb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_11(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4fcafb00bcd3d00951e7b22659beee436900f224c4b58016"),
		nonce:              decodeHexString(c, "31eb04342260a7a5c157103a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e747638b74b7e2418e0078c3130077729607c65406b3858a"),
		expected:           decodeHexString(c, "0e8a6e2f1c8f553dd8a7d0e841415840c70df90cdbed063df0a1dc68311ecf1513a34b8a778591ab58388f382c97fe82e37156241ad2d592a44178d2fe95566141a00eb3f681268b6f35a4fb74a6c399b2bcfd0663243de955a7ee3dc0faf7ab4debe90e0230c4eb160ea1560e4a3b94"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_12(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b8865e9e77ce1c2782bbdea529693665427cdc3df90d4a74"),
		nonce:              decodeHexString(c, "4c324f02e39d00ab05bfe626"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6c9d34501993e8914b547adca292e09f15042a716a649242"),
		expected:           decodeHexString(c, "5673ec1f690d9080a216ab063c73696f7404a1e354049eb1987df9d85b39ae2c9f84d241d3c3add85496c7c186cf5f16959e593f43c40da18a14de096e5fd37baf609c1be1b525fbe8364b2053bc4e75db52470115637dd22892479492ccc4420ea3452c760e9847c7eaab11e7bc539f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_13(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "23c8444d95fe346ca12be34f440280070d47883ab6406cd5"),
		nonce:              decodeHexString(c, "38b303f0f939c9ff4e98defe"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0e74c74a56237176fe84aef5f05a5be6f7474bdac6d49f97"),
		expected:           decodeHexString(c, "80404b790ef337c274ef914d95952b5d7536e4079ebda64952a034abad9dc01e9358ead4fb5319f5393d30b82c2eeb7ed02906b57f4f82bdf7d6f6a3b973681f00c42b2e5832bffbdf5a57829aabc399c627a823d5fc2dd282d8a1485629509c13a88fc29a97022b7935a80725c3440b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed80_SHA512_224_14(c *C) {
	s.testHashAfterReseed80_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4b0d4b4ea1c100937b9ce9cebffb9c18c45ac1a69ede4d28"),
		nonce:              decodeHexString(c, "122adfa9f63141d87c75f310"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a2d3e1403c01d81100d3d580ae67807c9a71efe7a31ecd3d"),
		expected:           decodeHexString(c, "ed855d5fcfb9befdcd771eaf0a570c37aa43585480bcd6a1af9e97e4fc57a869fca71e929c98866a1c397ec0839bbb94d12d604d2235b568663b436c4b5e244f160dd7f854aa55528186976f558143bc24507d1d58c3319264ef05b1d12950b71f11a7c931dc9e2cabeaf134b26dc290"),
	})
}

func (s *drbgSuite) testHashAfterReseed82_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_0(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d91a90376780f37d2d6d77afb72a569f1a754f4062079d63"),
		nonce:              decodeHexString(c, "d97e7f4aab4d0cfe416f1741"),
		personalization:    decodeHexString(c, "0dc3f7b7a4a4287546b5c6b75f28dc54356eba97977553f4"),
		entropyInputReseed: decodeHexString(c, "1dc951da88089f02be08c40d4a22e8f2cadd0b372d74095c"),
		expected:           decodeHexString(c, "b596ba8ff6e6012319fe322ffb7700cfc33a368682f53ba6df5e835e9e52fbeadc3043d70d540f5324e030d07c9b930b6b6bdbb198e04ca0ff3a3b167016c78b612b4e0c94fdb87abf52033e6153c1331f5fb52f04f7051e7df091fcacfa85f5fae555401207c1a5d64d504562db63a1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_1(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f8aa1dd61e3893ee4c8e9519f39486cde1ce14f6770f3601"),
		nonce:              decodeHexString(c, "9b538dd1551aa1884ed7658f"),
		personalization:    decodeHexString(c, "30c0500b7a779b5bf7e94b306857bd151a956a1de09d0631"),
		entropyInputReseed: decodeHexString(c, "5e575514f00ad3ffa1d7ad7070d68d3811a1bc999542e4d6"),
		expected:           decodeHexString(c, "8bdc79ed30b65fcf6ee9672b57a7cb9c6ec701b8b875bf8228297989a39adfc86340d4470accabcbde90fcce9a80a6bf4918997ec2805e960822b44aa1d89719d0a545d9447057d59784a61a4c1a6ca9bf940c5c82e9aa8ca9c4b9fec81f2e33039d6bd7719fc39832d565ef06e1f7b7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_2(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f1ab044f02683bc272687d3be80c8680c7a135d09b23e4d4"),
		nonce:              decodeHexString(c, "f33671d7ad9613b0d5f8edc1"),
		personalization:    decodeHexString(c, "34a492e66faa93a5c260078a501a1025e4467774c6a8b412"),
		entropyInputReseed: decodeHexString(c, "24bfe175dea97d869fb0f710afa3d59326e171f3800eb9a6"),
		expected:           decodeHexString(c, "60c6eb80f8c4c1951bf50283289264a1bfb99b90517e03cf5ea9f6d3ae1b8e8d7ccd651b9edda76717287230dda0509dec09400f18ef9c82592ab2297541ca1b7b67672f58ca1095070d08be67cdcca1690d50e7098baf8a74e5febe5352ff8f75c0b27757b90830429b7e6cd15b3438"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_3(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a6fc1c6b1d1fa25036852df44835832212a433ec0b36db73"),
		nonce:              decodeHexString(c, "5d715846aebc84b94e1610ed"),
		personalization:    decodeHexString(c, "96e2a7dd8fe39f08b0ea564b90ed49d06ca51d9b34b9eaaa"),
		entropyInputReseed: decodeHexString(c, "a8f2fb8f4280f6d53b6cefbee6b965aff3bc576ac81cccea"),
		expected:           decodeHexString(c, "0e4c32fce423523c4e9ed745b6b7e4d768fe92366f733d2e09ae33430a6433ae238c798a1a1fb738d4e1ba614c028be64d24d67b9cf885f25e34a0975cb849e6c137fd3ca8050511307dfbbc1b7a7d806e2d4f2a418b375f5935b28adb6f7afea8dfd6e8cd7d5447114bca56bd76d536"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_4(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e4f9fcb486bdebf2423ca2a6454e5353d8aad540d8f3200a"),
		nonce:              decodeHexString(c, "38a76e69d8107a0577baace5"),
		personalization:    decodeHexString(c, "4dc84f1c92aa130545f896499534f0b5d73b3aa0b4093cef"),
		entropyInputReseed: decodeHexString(c, "b28118bcac8deaf4408fa9d084a6c0d46b07d5d6059a137d"),
		expected:           decodeHexString(c, "199d829a04a2b1f59195f43fc71e67e3512001e576ace2d3c326a3eafd813097d2ed9b71f7e59d483fd7d433c23bc10cfb49c592c786a333570171bf9b30efa6bb47bf26baffb988419e561e918aa172504b5c5e498bafce77702030d5a5b2d2d5e94af93a2d004fab501565eee3ec54"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_5(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "3c77efc9366336e64159a19330f15a1a12d7b9a1d432810c"),
		nonce:              decodeHexString(c, "fd7ff576a1565de03c9dbb2e"),
		personalization:    decodeHexString(c, "69a521cc6d6d70ef60a025389f360d8ee7ed9fe295c0c655"),
		entropyInputReseed: decodeHexString(c, "a52f7795665eed76d31474d39e35700bf9d1398f96a131fb"),
		expected:           decodeHexString(c, "a8f90dd6a08ff2b9e4e01ca7af6e52fd52183a2d95bf4679121eee66a2be8d42e644866f698a039297c707e37813076e253ab7299adb7b2f6de4a8a2211db99546837630a1029254eef757f00e981f5dedcb0f47e723b445d3ed1c18257529106114a60831662916921afcf8b024027d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_6(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "70bf635a30dee0a7920ba22cbea51e6c27510e75a19439cb"),
		nonce:              decodeHexString(c, "fbd6f5b79572df6da4432656"),
		personalization:    decodeHexString(c, "e45a08551de4df3a9edd922ed14f15bdf84a89e285e2ceb1"),
		entropyInputReseed: decodeHexString(c, "c0e6b0ca6b9273ecd12d320c393a92ca159062ff29374b72"),
		expected:           decodeHexString(c, "4198f16229a06d4d8d8ce4a16aaf6c0d566d2ab785d85fee3a3e7bd080db45ba0c832d59fcfc8f0a24b51d70daaa3d8247a8295d7c3dcb9df59b64ded2940ae634e8a13e0895fdaabb320266b70c42a9720ee1e08ecb911f6816e09bb350e1bd427d73bb56e2da6247f6fd16a5ebee6c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_7(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "67a47b11ec380a3914b0ba05611fffec9063ccca639d4dea"),
		nonce:              decodeHexString(c, "04231a04d8e45e7e6d6efeed"),
		personalization:    decodeHexString(c, "aa80da2bfd91204f750864b3e0fead8c307332aabc7b3f11"),
		entropyInputReseed: decodeHexString(c, "4c6a2f75ac68046daad8c09d664ad9ceed11cc50127516b1"),
		expected:           decodeHexString(c, "a695d30435482cd2357140d81309288b66b9894697886786e5ac4be0b1c9bff5b21c07cf1b64a36cba4cf632df3cb15a41b8a2011d0a144254ee5f1733bb2338a8b7cfd60cdb6879c77566064ec24c91f3d175f3a8b29b9f01f09ac422dc33f0aeeed50add32cb0bf95d88429e6e814e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_8(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "dcb1138dd105ec427dd3894bc517313a2733b6d9f08519ba"),
		nonce:              decodeHexString(c, "755ab3ee1db71301a8410b4f"),
		personalization:    decodeHexString(c, "4f429c706bf8a87ceafe3e989d435408259298ceacc16e97"),
		entropyInputReseed: decodeHexString(c, "cb9e14f97881a274895d4fc7a59c3e433d46cde3d38432f7"),
		expected:           decodeHexString(c, "6078830c7aa176c1c6e84802a39c414fcd80adf1e2478bdb64897dce10649c34ce354bfef921da12e5f48a940a71acf9b7d6cf831277aa3c30b22e654064df8baa8af2fd350ab0ecc58d160b5cb92d946870ecc28cd57f725c1fd4abc23fd148183f36790b1be978bf13170a898c0b5a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_9(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fb1550ba3d1bd3104849775fe271856b1fd8221b1e6a86b9"),
		nonce:              decodeHexString(c, "4ba9c64c5c985f283a9c4e61"),
		personalization:    decodeHexString(c, "8dcf24d08dd243d5173ab34b1e1cd82fe02c6f11e4fb34a4"),
		entropyInputReseed: decodeHexString(c, "f27a12d5f5d18b2889bc982e70b24e30c33d3c821c8bab83"),
		expected:           decodeHexString(c, "7aee4e3cc5c7cc706055d87b9481c37abe3004eb13f7567e69d3400091e26566a26ad0bf7a71b0427ca97ca197ea26eafc883ebc7e87915d0252b474b07cba5b1962a939d98bfd742ed8d3873cc32fd68de82d224bbaafc36314028b331d9593484ccc53d7b26c2c36d120bef40450b1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_10(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "94773b7812af907f59f406567e3374fef667692a06a13c35"),
		nonce:              decodeHexString(c, "7d52148313bd6552b763a010"),
		personalization:    decodeHexString(c, "d52d506d24d72fa4a1b9741ec8a43132c948af064afe2789"),
		entropyInputReseed: decodeHexString(c, "4b5a0f91282e0a031edbb56cb9521dec8fac84ca42af15c4"),
		expected:           decodeHexString(c, "4a22d5817eb531c92e99245bcea04b4e09e763b0ad74025ec0951e146c7f6132a676a081b67cad77e667ecf4b0f0b0aee82ca044aa30a53825c22a804e09d9ee744bf9c133f253fdd226d47e38f0deaa00e786e972cfb3fe43371ec8c76ee89c5917b7197756bb88ee582f9661d4c53b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_11(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "5a6de71a6b06ce6fd5e835bbc53369117456e262df9179b1"),
		nonce:              decodeHexString(c, "27c762aed7a2cd500e6e0e9f"),
		personalization:    decodeHexString(c, "1b5ad0a986d2c420651791db67e7bf10577d26bf8ed123be"),
		entropyInputReseed: decodeHexString(c, "2da586a79a96497df9464158590b30e48b63dfc58d1bcee8"),
		expected:           decodeHexString(c, "0d9c0f4c94320dd6af02cd9a944209a21e6e6732f3bcb9f90b5583539d357c2bf92565a7c96cde5a91c04cbbac195c6ade403732e30a4251b6efff1e88af8fd9c628984a82a0926dde3b1c3a9646f26f77be3be27b3c3e57d5172ccac418eff30cb5f73e7b138fe08aa8af627a76ffbc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_12(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fd9a49f3e86f0d6ef0ad30b2e9a2c12a6bb1748b32966f29"),
		nonce:              decodeHexString(c, "60e6d09b9a970d3d8257f095"),
		personalization:    decodeHexString(c, "7c8c614411f183e805727d86a3451a1c03ad690ce6fe6cca"),
		entropyInputReseed: decodeHexString(c, "852ae97714c3102dd77d961c99e6ddc76c7f2b92770ac3b0"),
		expected:           decodeHexString(c, "af94022304bdf8d8129c72b5f64a7e9df07d71cf58610cbe2b0ab0b926629c1d2c9a5bce85d7018e85e441d669934b531264fe757939bfa7364439d567dbe5557d9c736c75b9fa798193f0b12d941b4c2e08870df2da80f6625718d129f219bf49b7e9535f0e605250f5c7cc8d31a190"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_13(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f095966dc8e8da6659dbc84217735eafb2133d74f5bbcc4e"),
		nonce:              decodeHexString(c, "02631592daa0d1f1fb4b4a6c"),
		personalization:    decodeHexString(c, "c7e3f29d3dc35822cd6f4b045fe29f61d49f7f981a0c2475"),
		entropyInputReseed: decodeHexString(c, "5ab8efff2022b84883533384e6318fe8ad1066649f9695df"),
		expected:           decodeHexString(c, "ec4b922105cc5473f3b249eba0972ecdef3cb3c6cc69390e3cf58aa048818cb8954ad4e3470d6a1f018541c8e7efcb687fa77f35072fb13ffbfc8b5155e908169a5ac29941a0942eb78c3a6cb6ddbaa5c5942f0fbf67d6c539df253b7ec7c3829439ea0b5f1803fff311c2289ecb8048"),
	})
}

func (s *drbgSuite) TestHashAfterReseed82_SHA512_224_14(c *C) {
	s.testHashAfterReseed82_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "de63c885839c5bbb0b524c2b57dcadd24cb0f370f680805e"),
		nonce:              decodeHexString(c, "70052de8b4b5904c06b623c5"),
		personalization:    decodeHexString(c, "65cfd784054972f685850452a04dfa73930bfa1d08526aac"),
		entropyInputReseed: decodeHexString(c, "677462a1a7dfb8106b8e23ad5c9f6b052dc1817c337082bd"),
		expected:           decodeHexString(c, "d4411df7e901c66a1b667cea66d2e21ad8bab76fbe189469e03b16a4b2346aed640278fc346097b6d494e74713edfd3fc75b9a89b51a05e0a295b05202c66ca95f7627f2dd3e7b70b3eb1fa1e007b443b47d5aaa3b6a3eecbaded109c9a5ce3e9534ad0f7e8eaf808280e1d31b82fe2c"),
	})
}

func (s *drbgSuite) testHashAfterReseed84_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_0(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6efb27c62118d9a61aa2cf1aef979ac16ad6c42e39b3aac5"),
		nonce:              decodeHexString(c, "6525d6ff5811103afccc6146"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "42b59e2a29eb6ab1b417d10e3cc19fb371962a77ac76463c"),
		expected:           decodeHexString(c, "5138c6d2c4bf42e525dcceded889e81868ba6139b0fd506bfa5a6f7f9ab659e15a02e3fffe4950616348e1a78ac432c963ff183a93c32b02e69fc689721a3ef6a53cdb4f9a8553a2051050c5b1fcbe57b5ceb4db14e551686727d4cabfcff137cc7706f635b07333600a422956355364"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_1(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d36d1c952214dd0a00d8c6eab6c95a0cb682a56e05d7be08"),
		nonce:              decodeHexString(c, "2c07f72c63a66c73e9a2a493"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7ca6a0f3fda2ffdfcc60a9b95fbb6ee62c336a6ff6c3fc54"),
		expected:           decodeHexString(c, "453a7d216a9fca889714161f20efb90f54d377b5abbbc89f0d01d2657449c0f604eec9268916a7bd9c48b626254047a8918991410e86cd62c03a14ca3bc0a2e34b01b2e5cf7ea99e30507ac8997014ab58847661223edeada46ecb2b05bc68320aed32589a38f02e4cdf49371e46f00a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_2(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e63bb317e7272bcf0d7f9aeca4230284b59fcc891e442f44"),
		nonce:              decodeHexString(c, "40363d3fbb8380c40404c78c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6a15a725c8f674724b6a4a867c6199523875d68e3cc699c7"),
		expected:           decodeHexString(c, "5f582e144d8c2dbee03aed3991cbfb4ffd7fd925edadfe6b1045420b8f2d488f67bd1f42e7fa39a41ce48b9ada9c9270bf22af16b290583bc9587ee3019b7eefba5dfb6233727c13e7761e3702c87e5d77963fe548cd56253f43014c9b1054569e2817e571e104a03d0269df7948c511"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_3(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "7c601acbd92f71154baaf55d6809294ffc43c08c9b6a380e"),
		nonce:              decodeHexString(c, "7d77218c4ace95b1f8478495"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4b0c4ab2f3164b817dba4d6046684346a50fd5a67507804c"),
		expected:           decodeHexString(c, "7bb7bd1f304488b31254951af497b285b455a772c60223586905c735c2759886cd8d4eaf3828c741574cc8e9b544cb12c17f407b2a97a86b59145dedb75ff28758c9886c38f45d2d48b25353cebc14ea1b5c42ebe12b41a2a6c34aaf3c83c14876bbbf3a07cdea5c51f05c691134b7a7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_4(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "9954c5b61383c22eb87f3a7a353a64ede1bd548a3cac52a5"),
		nonce:              decodeHexString(c, "f59bf452ff844439228ce70f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "116fc108fbb24fbbfa855f89f32054a309abdb0f05c5ec05"),
		expected:           decodeHexString(c, "86ace04243d3b77ef2c3241a173abba9ae89506b5cf4a9e1f3c8490e2b45f7775b9662609468de52640d72736716baf0590fba238804db78efeaa54fa748fd17a4fa1516a37f8ba1abcc6cd88d9688da17b47fbaf60730e3083175a0f3d6592a2549ff09b5d35f0f5e8b31eb2f8153ce"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_5(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6639df873edbdd346b6de75eb5c14b5ab6d4c4eef257a204"),
		nonce:              decodeHexString(c, "0a2ca06a348027396f43b82b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "42641cf8009bb2bca94034c98b4cbfc07e061f9fed774f06"),
		expected:           decodeHexString(c, "8760bdc7e23978e93b349c190f7bb674319e5fde7c41202f90caa02812b5616c4d996eb248e49dd75560bfe15b506a34172e47867cf1d15d0ea43c091d8d424c219b761e4c951c935960405a8311ed4101d00a1c0a8d786139363b7679cbb8fc7d3796ddb1e27934867063f6a6386def"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_6(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4990bf54d8996a8e4ddd0455d102fc5862a2ad5b5b857909"),
		nonce:              decodeHexString(c, "b4fd0edd2a0a4ddb7d979aeb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "97121e5730810f626ac129462d16853944107508cc460034"),
		expected:           decodeHexString(c, "135387fab2f30b0574ce1ca6e1be143a0faa1896fe72f957791c676f5c7e50d92cbdaa67ae26c63e918e99fbdfd1d1435cfee5fd361be3d3179f928dcd4bccc12a1f80be9ef7ee1a366bde19034185d967e6de7d898af8f5125ecb71e2a40d698baeea73f6f0c271f91addac9cacfb4d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_7(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d08df45082cb8ada43854a029406b252f9f16f1f7be20399"),
		nonce:              decodeHexString(c, "a4c05b7b558b0b1ae576a3b9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "499e23a843038a96f7452f5d05a20c438305da94e498c974"),
		expected:           decodeHexString(c, "0214ad1232aab6e61dc4e9ff5c0b51480fac7d3ede95f24dc223fcd435b8ab73a2610dbf5acbcecfabae04d6bb28fff96cfd8e44e76594d2a82ba9a2a5fbca086d162e43808ee5839467c20b3b05916beb1c9115717c88b78897833dc8e9a949a0251a0c12041756169a772d887b89b3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_8(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e86c1d83d1626a103ae06baa6130d06e677de3260b0eb555"),
		nonce:              decodeHexString(c, "10a3d3a6df8aae3ec1daacaf"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a1049715dd2d42e2136046b8e4986269d084a72582bb0330"),
		expected:           decodeHexString(c, "1341548082638f86fddb340fa240085c64a5a24a557b44021d60e1e1c3e15f56f7b67f90f90c72a1c629354ca4afb638a190dfe824f0e860f265f91fb48db4faed19ed095a903c3ee63cbb8e909f610ebcf74e66201b90ab46ab1c4ef72dcaa53e5d33b6830653ccec0ccf3af70af5be"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_9(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f811b91c22869d3dbf6e7c58e41a3e5800b43013bd42611e"),
		nonce:              decodeHexString(c, "c0866954f6976c302f8d08a7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9a66ede6604657799ed89c24a486df17aa97bb9e5601ba9b"),
		expected:           decodeHexString(c, "bfa403cf2c268144dc964c77ee3babc20fa5e37b0151bf757628478bda985379e3079fb6f6cca654ef83b83831553d21644118b0b8a269b999b342e41ffba7c3659134b954f776b7dcbe1317fa37e0ea39ac50e4a9ee101b02547861dc86e39161b6cd1245109bda0696cdba083dcc4f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_10(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b259c3f8cb09993680c2b9e187075dce07012daeb9e70f0f"),
		nonce:              decodeHexString(c, "bd59bf46777713a43e5dffbb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6ccc876c3ad54d813657c5a402ddfab07599e42da3f19ed8"),
		expected:           decodeHexString(c, "82dc2b590fb3c4c1c6840ed25300e6a7c7a73e056dbeffba1ac3de9376ece6b09714f16ae80463f8bfbc8655968cafedac219e47857daee084a0529e9c2aaa3a1730dd560ecb4e0098ba85bbbb3d89778fb952a5ef4c095b87945fe6340bddc8418ee0c591237e41d050ec2e4ddeda64"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_11(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "77337e880b950916299d2c6094a29c49e72607ec3e341f70"),
		nonce:              decodeHexString(c, "906d79c408e13a5f9f64c11a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "fe2d22a464569a3b91fba6ed429d923e8c2055b26ac74724"),
		expected:           decodeHexString(c, "0b5cf8df4e8affe9167f250c67f3b52d636425e8a027a7ba28e14ac7cc7018387f06d4d0776e580224695c93805abaeda39495b93dae142571e33e72cb8a264ad407fcbfeb49a252a5445d8cc68f67d2a3338ba93e9d86054f9ec22e6e9a6991e7b09083ed4e1c0549d9d592b0c41a51"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_12(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "0b4942d229a406cb476f7b4432b700159c3a036fed819a9d"),
		nonce:              decodeHexString(c, "4eabf5b41349ded88f23a038"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "433dee7418a46acb851d69b63bbe4fdebd4ad59f80369d35"),
		expected:           decodeHexString(c, "6a379db3dc670e8f80a142c72803274e0e72e3966752185dccc0ef6994ba07a0e97239690685148c35706148b271ebebca736d778d2a6cfce61f0e426a3df3fefd29cdb3a76f531aca6ab0d05e7797456ca2e5bd34f8320ec72ae233db42fdacdd5b7c1e411bf17c4f385563827fc54f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_13(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "00c41c5e773c296ddcda6e09e8d5b030c4f5d41f0484a75b"),
		nonce:              decodeHexString(c, "667a4e33097cf12e788d19a4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "57842a42d50110cf29006f662d1b5908defcedf87f323228"),
		expected:           decodeHexString(c, "c1044f99fcabcc664c363ab56445859bc1cba0b06e5c2fc4d51c6f5ceb72a48a60826fefb6c6f6c18bec703670d2345bde9615452ff3031922ff2681084f769b33105810cf727b31046665f3d81e2465742968e85b376f49227b4b4e28a9b3617ef4214900ec38097195111564080d23"),
	})
}

func (s *drbgSuite) TestHashAfterReseed84_SHA512_224_14(c *C) {
	s.testHashAfterReseed84_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "7b8b312828db717eec2252c565a27b42a6ca6f27a7ff72ac"),
		nonce:              decodeHexString(c, "990f1633f80800f40bb93e58"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6c6e07608daf9476312e5e71eda322c2799b337788fa5dba"),
		expected:           decodeHexString(c, "c3e0db0c8c232f148f2720f39cdd3c1661150a4799d1288a0898f558714e86dd663aec880b4059c61ca3012d2b9ea6b2aa28edf48473a5ff8ae2740d25c922af3ddf4ab9c1d5a484e9bf4ef4590d7b87ef08d5683e973974e6111afa1e713f0f0a95e4e9eb16765a27681e874d5aa504"),
	})
}

func (s *drbgSuite) testHashAfterReseed86_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_0(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "f8bab047d56d90c2e5689c1afe4cacff3df96da82e5c2ca2"),
		nonce:              decodeHexString(c, "5ba75f11be974cf303cd6543"),
		personalization:    decodeHexString(c, "7a65830a6bdccfcdfc6227317e73b2172f7e13968a78fee9"),
		entropyInputReseed: decodeHexString(c, "24a5da2ee26fd8adba2cbf482b42376061f62204f218c0dc"),
		expected:           decodeHexString(c, "0ae1fff30b266773abb05d0fccd57b0701210cd27748100f56053e5d9f61f13deedd88d4ad91642539165b79ea925fc6dcb0ff86215b32dca51d9e9d112b6f8edacac0fafed61a4e3bd8e5343c917ddf56049c774a19569bcfce8ecf3cf94073d3bbc0ab081de47973eb95b0b21bb571"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_1(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "81ec52b70e6b26fddb9d7b547ac236940676ed1bf9ff2041"),
		nonce:              decodeHexString(c, "d0467e6386d520dc43d908bd"),
		personalization:    decodeHexString(c, "8cc4663035ec9f798566fea93a07d8e8d268cbe93ffe8d78"),
		entropyInputReseed: decodeHexString(c, "a8a2b0b3abaa6f939d6c7b050543d40fa5e89290bf147d4b"),
		expected:           decodeHexString(c, "7611d29dc0a75604050ea9be0b700a9296da31c214255e904f057a84efb429854fcd950ffaf4411971594a579e99b17389b31d816192fbe86c811d9d62c3e0d3eb9bde9568365c436deedcd904c7d07a8b8164ae781b0146d1f16861fffb11522e4d194a510a18be3431b48678144ee3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_2(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "879d0c04004b16f3c73046058a8eb51e78dbc5f25b6c7d18"),
		nonce:              decodeHexString(c, "b15d146246299c0661b93cb9"),
		personalization:    decodeHexString(c, "d34370eb1eaad2c32bb474587ff526dcba21ad86d3e5b1da"),
		entropyInputReseed: decodeHexString(c, "62d82b7a289e3d632b67c4d9f02221bfd026cb4d57ddf622"),
		expected:           decodeHexString(c, "6d99e6ffc1259532e95735dca594e15e2798a0142fa7b3f4e1440bb3f5b5749d9424b2e47873d31db1cd42b7205dea3b97fe97f7305fda73d801e2c6ca9efc4957c9cbdf3a6575f979f8e2dfe5d3335ba24a8ea8864e2d5f001c7bdfdd39a297d71d7e895d7d0ad28f6c758577f5a1f4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_3(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4746e6460f2628cd32e999336183475ad0a66e19d4eca3cf"),
		nonce:              decodeHexString(c, "295946fd41b42a770d7b9c69"),
		personalization:    decodeHexString(c, "7d1a3e8095d6688ac7fbeab2d60371de0c486a53f48de78c"),
		entropyInputReseed: decodeHexString(c, "f8720a18b163ffd21b135762fa9b2041c0baeeb4d7a89451"),
		expected:           decodeHexString(c, "0e8659f07e9d52d63d854c216c864fec244191e0bd1f7f5419c01e16caaf2e5b83fe0ab030881f5ef3539bdf81356ea21378ab3c29e6e4024f7489fb01409456dff49da2dd526a607435fd1763bd231c2a18da0a8efa8ea5320e4a3e0d84f4442e739c3dd0af40a73114a2d9c885b994"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_4(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d14c1f7ab022176fa296424b57c85f5c864576e06681278b"),
		nonce:              decodeHexString(c, "9ca28a07d12942f6afa1acc1"),
		personalization:    decodeHexString(c, "185c96e8576e5e274c9d6c99b14014577223382c1fafb905"),
		entropyInputReseed: decodeHexString(c, "978a02cdb7bac8425395447802f1096d0703a463f78a22c8"),
		expected:           decodeHexString(c, "12632f93362c7aab0be84969b9869f2935651ca0f3fe593c60a805504e84af1f7b4483148ce2d1261c547829d73a2c5d43cb194e285eb53bda7bb08da8204b8d37c361ecbbbb41812ccb4f0d3c86a26563c5017117ce65f34ddda6e0cc272c6411d707699a5310b005bc6813d4f8ce44"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_5(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "32b2a810869e9a8ae4d2a4dbc4d3e524fc9d13c4fda3ccf3"),
		nonce:              decodeHexString(c, "d8afa296c73dfa7f832ade1a"),
		personalization:    decodeHexString(c, "58e1b1b2cb421e83ec6003f915b42b1e2b97f05f588e3047"),
		entropyInputReseed: decodeHexString(c, "72965171e91cc8d2800e9f53c9d65d6a00e238c374862a12"),
		expected:           decodeHexString(c, "0cba00c7fc76a9d328ea7e65063410dbf123804984b188dc989295787953b2246db76a0add79d7a2f2e4bbb2036363ff97016e67af6a4a21634545515ebfc43446230af57e6427f088c076abd2690172cdf95069a770fd2a1de98ac693007f2d7856c2b74b31e2d4e470b8802f07bde1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_6(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "3d80f1bd8021f078c59d51821705406d7a60ddafb8c276b1"),
		nonce:              decodeHexString(c, "0586e0c1ed940694872f8901"),
		personalization:    decodeHexString(c, "418458ada82078e3e1dadde4e9653155ba02f41e8f4a75a9"),
		entropyInputReseed: decodeHexString(c, "3df0aee4a729e590d255b337871c352655a3c5e4bf8b1f6e"),
		expected:           decodeHexString(c, "a99c6b7565d496da4b8b0637e2e07b06d807841374fbb5aedec943bd2ab54b3268bb7ff598cf6f52a2a6c2133562c77e276caa1f3ffd4af3c7689c8fc0dd2152a814e166f644099bc9d959d97af39e6a97fe18d29dab97fd2d803d5b1d6fa5c4c2ec996ff908abda32d445195223a80b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_7(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "87baaa77ece3c57815c35bad1628fa7e4bda2ec1ea4e6da9"),
		nonce:              decodeHexString(c, "40bf3a15636d5a0b61fe0df8"),
		personalization:    decodeHexString(c, "a6fb8cf2fd46f3f0e4dbe467f8aed45ea710a3a53aca6422"),
		entropyInputReseed: decodeHexString(c, "d13727a2be37f3be6b67d683a6ffe6b39a6f8d845d71d554"),
		expected:           decodeHexString(c, "9aeb7600ab5b4c267d822e41e196d8ac4c8353e0687480ca2015535cad65a4df50482d44393ef1f3000eafdd5a86fe8eb9b8fb7aef79a6f62e49f64f68c8afbe458d848b5129e2608fb9d672524ce6301b9867dd9a86fd8d0220a722f9be0a6bce54dee26832ee05db0fadba6a5e2940"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_8(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "9e24642273e694ec9d32aff0e721293754f043419b983608"),
		nonce:              decodeHexString(c, "74a141c02154d8302ee4e895"),
		personalization:    decodeHexString(c, "059ec9e70112cff772117b7e9043fab082056fdba95dd73f"),
		entropyInputReseed: decodeHexString(c, "45b652418248da268cc4aeb0316ca838987d715965fc9b84"),
		expected:           decodeHexString(c, "ed69d41092183ace1a2cf2c3552cddd16270fd88bd42592a41bca491a9d5658c99f973962922c085a2b0a6acd2a9895395b2521f5ff44f557abbc2eadc17eb5144d2c27d8b6cf3f8ff49c025da302ef928c1163a03798984470ea33e5360cf5d390739722a7d22e51d3f5f325e595446"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_9(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6f82006dbe521404ebfb84da53683c2d702075d8b8ccdc92"),
		nonce:              decodeHexString(c, "d2601aa8a30791771aa81f28"),
		personalization:    decodeHexString(c, "b2dd949021e2e6408fcfba47134e5dfcf133312e04d2f607"),
		entropyInputReseed: decodeHexString(c, "505f99b0e1433d0c457ebe8f7d0f625c27715f91d97f62e0"),
		expected:           decodeHexString(c, "6c3209f8ab15f76bb21f51bf5c369f789ef9ad1791c4db2598c303e248ee5ec95fdefcba356058bc952086699720560d6324bd203f21b03fa46954caa9b5a6ee2ae68dc59638912b5f5cf5d6462723e30f60593355c2b706e21ad6d8fa1a0c686f5436a0afdf0dbcba2d13d1625c41bb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_10(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "45338e5a51846e3d51820623beda888b7ac20e95018fdca3"),
		nonce:              decodeHexString(c, "67f1f1b17081b549f4f95b32"),
		personalization:    decodeHexString(c, "b545be4d08f761790ad401edcc0633c5a8c4d8d6e8191647"),
		entropyInputReseed: decodeHexString(c, "5d7f03169a274acb55507c6b63f3145cd41216dd2a13755d"),
		expected:           decodeHexString(c, "48a8a83d82ebb2325e921156449fe728286d8c3ca7e4aa564b4bbe70d5db7c6ec4e0e59bd2f2cd25580b6597faa44c29a9dd2a1001b3b019ad15040b3dbb33d453e0d9fbc627bc1df39c1cbf92275ac18091840d7fcd71ce60ed6940d126860e9de27d2edb4c981c012ab5a1bb9daea4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_11(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "545060fbeff3415fc5d6c16e9dbf9575e87c2e660bccec90"),
		nonce:              decodeHexString(c, "aaf8f30892481b3206456dfb"),
		personalization:    decodeHexString(c, "19e81e70a2bcb4393205de2dae53cb0b58f0777faac8715b"),
		entropyInputReseed: decodeHexString(c, "6ef635809b360b97e7c8421fd0ff474da554c701c8d09c75"),
		expected:           decodeHexString(c, "e025787afbeed564238ab0085c925bf5c62b51c39a6f493cd1cce715265b55591f11debf267a515b492a98a6fde2329ce9d48d1ed72f51fa6375002bc97fed32af0bce61a47915cc22ddcad5a9667dfe2eb8ad076916c8ecc1190ee3997cd80c699d7066a100d61648979841ca21e5f5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_12(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6f1a3286e6b0923adc80ffbe23f302371a00a299b0e1ad55"),
		nonce:              decodeHexString(c, "1292767ee542151e1464fce9"),
		personalization:    decodeHexString(c, "0164fa52d58c1ca178fc0822a1891613fa70c6fdd9998846"),
		entropyInputReseed: decodeHexString(c, "8680c7d22fd600a5cf98314f39437911ddc294abbc75f20f"),
		expected:           decodeHexString(c, "589e96fae3b1ba66ae37c9f9dba1aae5b0f4f70356c92992f8d6221220ca993545e5b95468313ece422f51d94562e7ac21f34acf9b9e1cd93fc21152f7fe85b0fa425cdede4bcb9ece690cbf9e5b0879a50a93d6f78c0e5573998aedb9d63571a70d8f5a13c2f81a91cc366c7a3bbdf5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_13(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "de41ba08b654b0c618ea840180812518be2f7f5b4d6ddb06"),
		nonce:              decodeHexString(c, "63b2b7435ab41c1f3df23979"),
		personalization:    decodeHexString(c, "9add706045904d1700bd38334d69277dbdf585aed777850b"),
		entropyInputReseed: decodeHexString(c, "c4204ea4cd4fe390847d67de17ecf3da8781570985f2f047"),
		expected:           decodeHexString(c, "6518fafe0a120ea291e96caa14af9c8693b54e09e411316a2feb8762119eec497dbc84f68e5c1c387968072b9530fd14597667be785cf575bba3d6e78e79866862b68a1919963b003705f1074c0f4659afa85100c4855c9e638b980f49fad0a4f96bc8f082baf7e2c62a0bb66f811049"),
	})
}

func (s *drbgSuite) TestHashAfterReseed86_SHA512_224_14(c *C) {
	s.testHashAfterReseed86_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "aee74531c9334c70495ce1019249c43858a65e55e4c44bc2"),
		nonce:              decodeHexString(c, "319f880ecb327f7f101f44f4"),
		personalization:    decodeHexString(c, "a4707743355569cc1dd6dde18ce7b647821d61166caf8b53"),
		entropyInputReseed: decodeHexString(c, "bef3ce1783f967118b558ef05f5b39beafaaaeeb6fbde4a1"),
		expected:           decodeHexString(c, "6bbe667c88e28e94390b1c615814e74184e8c74b4ffd3b008bfa37a3c768a4f4d460a5f34e38d52ef63c4291c25eaa428546e7ad11769240c45e3b4eab278a01aef2a3928f68ed15cb673d17003563ce64ae527cdab4257fdebba1c46b52f9a4306b5ead1632ed391e8068342d46a6c8"),
	})
}

func (s *drbgSuite) testHashAfterReseed88_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_0(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "ba72b04282dbaf8662ff8412c7e0364df6251626f0dd5926"),
		nonce:              decodeHexString(c, "367d5990c43cf924f4cb360d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c05604dd53e8bfc465491f3941ee86a49ac06c7085aa26c0"),
		expected:           decodeHexString(c, "2f1a7c01e05d3c99d595a01f233226ac1e76a6d5c63aac84edab2c336eea5cd47d7fc1e4f31d56bf50b64786e6a696744db1700b7345ffbe34576c1bf2d511074ae1c8eee2d3e05df23b6442c26499415154bd746767c66df92e9b754abba7f1cb5e3ac6e54d62899f0bc781b881ee4d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_1(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "c3633a786b02bfda873e560c478859b669f30fa12a0d9d2a"),
		nonce:              decodeHexString(c, "17f762d7c159ee2ae3edb39a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ea87d45071948d8ce89e77640fbfa496a53bf683cab12809"),
		expected:           decodeHexString(c, "4e3cb41e691e7430d56596763fdd648e3856a0c757484a867fc381bd970daf2b3417009f8f4ed8a9b1ab669462b0cd5ce306f8ed8c0607643adb7c3da16db74f332dc7ab730d19c1697de2323ebf53d28fa3534a304f1be4094759fafdddbb12d2c80c432dee824c9fcaad5bde558468"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_2(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "80b71274f13358e02aa61a479429619481d4f4268225bf3e"),
		nonce:              decodeHexString(c, "070df33ffc4426d1640aeb50"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7773a74e5ae2840ea532a91a50867b0ea61a678fc788207b"),
		expected:           decodeHexString(c, "c8c6059bf98021e9f300f16a8d94a538f5c4c89e90e480fa5666d94be4e245a393d4b0b415f854cae00bd2bfeb5c5c8118fd4cb5c4ca6ab0791beed93856a56d820142eaa9d09878dddd3362ddd04822a9ebedeef0da1de5b2718e43f59edd54eece02468e3d6f07e4186eb5af3cc90d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_3(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "e16fada4f72d3724a8bb7c578f217e7325b19905b4481d95"),
		nonce:              decodeHexString(c, "428c57cc7023f743763961f6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d930a93572c6a73ff8c801ca328ed221b68d2df6169db0bb"),
		expected:           decodeHexString(c, "8cd9e192240224f231e8d0ff629182a4e70944337a88d5889b37fe8a5f7c2d76a6b9cec03aa214e40679f5f1bb5532021770268e5736762ebce7f27e0a30ad653b036af5805210d5fff5dd4a0ef14581d0c53d2bdc804e71c025276d83c27ee9ea0ed5436b571381268ead6f810b89fe"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_4(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "bcc8ea92cce73293d575a8093ccc4cb1dcd9e9faa69d9c23"),
		nonce:              decodeHexString(c, "13b09ce7b0fc20773f297fb2"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eaef1c3ba7f66e9692bb3067645cbccb7dd3ae61243e1a2a"),
		expected:           decodeHexString(c, "5a0ec2f0be4629d99ace8d2d0dc351e56e93fea26b8aa86cbb4c3d0b184f070fb5f1f9bf032dac383a54670813b904a5f1059b85e94c0c7f333ae80c70e4ce3d4d52cb33dab3b44973a3467edaca3bd2938be6ce1ee0311ed57b861e3b8a55441c6ef97c79a776f79aed3a5f239c1daa"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_5(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "80782410e2d920c83f0f27f7f83c4a1e312e6f1e9333d89c"),
		nonce:              decodeHexString(c, "8574ea5e1a76bc63097ee1ba"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1a9d250db8e8aae70389e5a073430c6a4592cefff77c4337"),
		expected:           decodeHexString(c, "8aa5fe3ffd2968164a0ca70ffe6a4cf2bb3cb6e13ab9714671273bc4933b40a65e8b79b7425c69468d51dd89e87c9cbc8e0b4c5c0f55a21a1967f2142b972658373115ef85d1c3027e296abe06a851edd3156bb9efc16bf18acbd59b1dce8511114dd9b9bf647209cadec0e340d484e7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_6(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2dbd24e0f743600bc12ecd68023bcfaf32fcf77f5503c0cd"),
		nonce:              decodeHexString(c, "1c2f2761301aba1b24d0be0b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7fe383209cd14fe65f4801e8abb6a2f351bfebbb9693e257"),
		expected:           decodeHexString(c, "745508dc00e94eb432d233038872d5e0556081e899707d6f18a3b90cc8309d6ae92ec5d4a6aa43470455831b43923e8451acfbadff0dbaa1df1c6fe4123b24bcc02bf8491d1d6844baa3c8bcee33e878dc5464459b41876efa3426ec9542b22eca0d9e1767d6f1f539e9895e5144764f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_7(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "de08723b2ddbc617a68b0fd915d4c5223773909b6a39955c"),
		nonce:              decodeHexString(c, "dff80ef4d5560e8a09a40105"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6ca0d21597fd3eb003b5caf14ed90378b1f6a1b688c01a66"),
		expected:           decodeHexString(c, "8ef722855c8225fe154498b95de2cedcd501a383676c4666e973e291db626f8e1c8493e1f39fa92de202e1e595b525a21ae02261a0d8c01501c43399730325489805e5e425b22317facef64ad8e25b17a07b0b342f3514aae5d31b3303d30bb578ea32e2e9413e5d7b9cbd83eb9d73f4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_8(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6ed5548b0db20b2292bea014138de122de03e4d3a37f28d8"),
		nonce:              decodeHexString(c, "993772c1de5f77be87721c0a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b0a27942ddb2179919cdedb8382d39a37ed9e7016f7d8008"),
		expected:           decodeHexString(c, "76c8a9198c6dec7c2b993cbee8707955752a2f763e4b9d5c539595d75d4b9a037b7c9abf9ebc1b73147912f8dafc6d4387d92d7d1a4082a66aef9ed6d391c7ab6c82775403f45064f6ea7016779f809b5ea7da8b7491b22fc76a32d7b9c76e6639263ec4ff1539cc265c43f835a7bfad"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_9(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "604ce45f0accf6ced2d1c19e399cbcce9ee2be0d6ee5a888"),
		nonce:              decodeHexString(c, "2aa6b1ac9680bf8f6a53e6e5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "70cdd41e2c03b6850ded28813359a8525d9cb2065796dd1c"),
		expected:           decodeHexString(c, "d978bdb3438e3326ae6aebc4830dfbd82d523a6944845fb30012eefe0ca13f76249d491b4958cf76e5c3306d8c1be4dc443dc4e1f98c73fe763eb4caaf4b22d2dd77120635876ed62fda9b83d3392287bc4ced6c1e78b176707856b4621bc2a6a5246d359b1099892199f86a458adaad"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_10(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2dcf2472cab46d6221f1360ffbe992fdb2733df827633b9a"),
		nonce:              decodeHexString(c, "f1cccec329488e1b431a758b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ef90998b29518f18165efa8636d491ec28b805d431fbeba4"),
		expected:           decodeHexString(c, "5d73610846d80361ad3b63b4993e48153a1cf01f56336fb84e241711ac785c740d8712a53d7d3a367be082d1c608458e70b1332a0125c53f614c376064b9af6ea095204efc8468cbc80532d4e5bcdd47c6f78af19273dc3d9ae41d8cc3b60e54febb9c7dae0e31c398a32c625d59d038"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_11(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "991375cdc347b3f70fc7e565dc2af364a05bf057df587bb1"),
		nonce:              decodeHexString(c, "b5eb29307af71a7b6b17cec9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f290b547b5fc76282524854b843dbcbc28837b8f4f82be21"),
		expected:           decodeHexString(c, "60c2c6e1a5a92859d4f392265bfc53f7718e7927bfc409867a88552f2ff7f3862d626454b7cd5718c6fa3406cfcdb282d8f3a8589b49714dbc8900438387d27d9a532001f44a80b670599353a5ce98daea7f195c0b9c66fcc3127dfd73095fc8c5a874eae8008e029a2ace1c2a4fb007"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_12(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "99eb577261e1fe73c85c6c4ab9549f3421f0b4f3755aaf8c"),
		nonce:              decodeHexString(c, "7f03c5716d9b148149b265a8"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f28c8b6ee75aea69fb50ea608247bfe988e161b9b1261bef"),
		expected:           decodeHexString(c, "5f530e615804f8a3d63d0173e26f5d5102ddbe2c3227bedfbd48d23d9dd95438925c8e1eaaa4219cd00b84bd8c424e9215c3bcdc1b03c087ca9d1662719759702abbd53ea235eb34ae0a5dab35cfee23aa83b1c507dcd24b3ef520b3919990235da7a8b4a7f3790ff47831644c3d2f53"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_13(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "9b5c575e06e4e1e5faccf76598cf2c0257cd45631238bd5a"),
		nonce:              decodeHexString(c, "7919ff2cf5270c09b8ad3957"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3f2231dacab4e7167dd748c365b2388481f1fcc22828f546"),
		expected:           decodeHexString(c, "41acb548b7f3dafc97310b37ddc13238fe82646c7d25ef8079c50ab5b8fd671a13079fab984d34dab31b6faa6d80f257b440783ca42bc8c6d0a7e971eac90af2c5d307d6d60a142f61508795d03614bffabb4450ab6aebc9b5f0c8a461c185e701208a111f7b70286b630d79df09007c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed88_SHA512_224_14(c *C) {
	s.testHashAfterReseed88_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "ab57fd009184afe0c40499bf459b33e2721e7fd577ae9e33"),
		nonce:              decodeHexString(c, "19aaaf960f132233f2c90f34"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "da3095cc25d10936959e73be621821de6eb36bb527af0c40"),
		expected:           decodeHexString(c, "1ee0f4b24f8baa5ddea66a65886ee212b3ef61399916fd15857c7fb506c777b05d14a7b272d3f5ef50ffd6f4638372821774005c8d3221e0d256a148ee0d23a705e1cc26fb6b9db4e236483de9d771120925dbc64f657f2df097cca104f6b90969f92803c74d8f64e11ddd44ce6169ec"),
	})
}

func (s *drbgSuite) testHashAfterReseed90_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_0(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a68826e92785ddd32d798d0754caba6e4b42e5015c41e2d2"),
		nonce:              decodeHexString(c, "f080bcfa86a6344e24fefc88"),
		personalization:    decodeHexString(c, "074942d3d467bf101e019e6414e787b8a3b1d866c2e8d3f0"),
		entropyInputReseed: decodeHexString(c, "27239674c9465bec820e2ab648ec3e9908d36fc1a7248415"),
		expected:           decodeHexString(c, "e9aff0ebc74672529d8ca4b05455e3ccfa6971319b74bf46d84c6da46b9b9076f92e31f426a62d9b3b165abbb4b23da032050c180230f22ab17ed7dd3512103351ba65ed915233b0c801c671b9f2212376f4e6be7396e50bd21f3218e3484f1c3cc87a9f3f308d15152c3d6a4555f495"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_1(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "db5c03dd4ced2b82fde32c1e48cfa1b666acd1a468dcdf9d"),
		nonce:              decodeHexString(c, "6f7e66607a6daefda5873528"),
		personalization:    decodeHexString(c, "c947e8a6e8f8b10da3d22b040c2cf1f1f8f807e58be8554c"),
		entropyInputReseed: decodeHexString(c, "4e9d25ff217921b421870e1dd2651cbdad8374d7d9ea9409"),
		expected:           decodeHexString(c, "a69bb5c0ffdf96102cd6b9f77b4a2fb458636829737acf5bd2d40c0fc8ed7294c270b66dba2d3d69aba24b96ba895683c4024c4ceea0744972489a2bf8a29312d608f518da423251a0b06ac9fe971736e17aaf8adb343c09899391c5881c1987a664ce744295a320b5893fbface0d800"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_2(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "dbfea4a7c0493df420f5a941fe399922cac53746e0b4a640"),
		nonce:              decodeHexString(c, "9552a3500d7f832712bb9ed2"),
		personalization:    decodeHexString(c, "e0e36cac176c70ce6a37dde598559ab67f484041e9dedf96"),
		entropyInputReseed: decodeHexString(c, "20f7c981d9e84d552bed9c4f51f0774fb0812abaa1df531f"),
		expected:           decodeHexString(c, "d46f2927a2485ab2c0a8ee4e76601e1bc22248d7cfe7a1bafa96438af5dcc60ef83ea32638d363008cbe8efe93b8aea8d53b0f666b7327f3f832e8015e5d43a33a8ba581e023144cd51ed312fb8adb328f6adbe9d98b96373042337f1e896f674c835368858911a2a29424dada920f33"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_3(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "3b526f764dc20e019d7ec2e8cd160ee8457d8e66f84a9583"),
		nonce:              decodeHexString(c, "38029d853715e48e2afa9752"),
		personalization:    decodeHexString(c, "0965827ae07e1ad20e1df8db787784e08c56efd901636e8c"),
		entropyInputReseed: decodeHexString(c, "06c5fb4da1dd2b49c1d6e0c4842bec85bbf3b2ea442f4567"),
		expected:           decodeHexString(c, "ce060d8697ee33a21f4ed516771353ef65276f13d28beedac506012b16a726dc3c9da84d756444141f1618843999287e7750e28b5811eeeec386b6d110e2491a396e60375e7b44d938700c3837bb1c376ccabd6b12ec18c165f1f377028c629b5f475b48930a7a810afb82d3b536c2e0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_4(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "24044c7ba5835f374ef9ea049d7455191f69534f964ccddb"),
		nonce:              decodeHexString(c, "90991c56ae5c9f4064f3a416"),
		personalization:    decodeHexString(c, "f580bcc7782d0d1ca63a6aa47bf79e0a226086766d548fdd"),
		entropyInputReseed: decodeHexString(c, "caf5ec39227dbcb246d71faa6dc41b1947a971baa3d39f02"),
		expected:           decodeHexString(c, "577144ee8d49afc152c0d8a1b8d4f25978a103a9fe2dd16be0d8bfbb9cb184255ca793f2659cffa9fa7e71bfd48be23c524e6aa11048ad7742e256db6f4b9177ab3f1bdfb48d8ea0d54b41e44cc3277df31acdeba6b78f8542d0a2d441961ff8d62278dbe39a1f0f84a6debdbc42f940"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_5(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "38869cfda6a46e0f71343fb446101c923ba249775e89d7e7"),
		nonce:              decodeHexString(c, "882f53c81946eee98c52fd2f"),
		personalization:    decodeHexString(c, "2d277e827be1b1b86d813202a25490caaff1dada2cbc63ca"),
		entropyInputReseed: decodeHexString(c, "6fb8de60036d992e1e77020817a3181204be02a9e8576c66"),
		expected:           decodeHexString(c, "d08e20fd84f67c56fc6498e12b02a60c9277359717a567b1a560816b5ddcf746af8fe93a915d2ffebdbdd9c6bb2483a0cdeec933efce8be083c0643da906af4112677e9e2a77e63b8f053cdfa1e12b138735feba5280e1898b648a00556e8245d719289a55a71058a726871ff43f2fbf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_6(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "cfac02ddd38df18bfee40ef6d2bc0c247f335fbdb22f1602"),
		nonce:              decodeHexString(c, "414e706e3e0220df4870b284"),
		personalization:    decodeHexString(c, "8b8ea02681e6f5027602f86795b20eb7701983e7384ac2cc"),
		entropyInputReseed: decodeHexString(c, "9bba186d25218b971f9a5906f0192e467adb536538d0e2fc"),
		expected:           decodeHexString(c, "a7f99ebeb29331ee7c99063ced89865cc5c397d6b5d15934332119c5f94855dbc991a4e7c1057a707e5c38d539c02c526195bed77e192c6ef3960ab1c44d5d446886de77c9454fe9e2e2c87330c8abe03f439b1b4302318fc3e087620d114781756ce5cdd448cfe1f05c808405fae49e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_7(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2740fc385f6ad6b7e9fde78d2ab58c28685d0f178d8dbdf8"),
		nonce:              decodeHexString(c, "229380b08601b6ffbe7a9ad0"),
		personalization:    decodeHexString(c, "950f585babcf18337160cad32dcebb560133bd8fcf6877e9"),
		entropyInputReseed: decodeHexString(c, "e75d77b57fdea756176cea0dc51473852b32cf7ed55d7147"),
		expected:           decodeHexString(c, "72d2d08c809a8b80662d00a521fcda26654444477769a5aa1d8b67fabb32d3b6e1753290c1a819534c86b1d6bb00a8cd42c94b072339d16c3d30e22852a023f43e52fb720ca50cc0f762d77702a5eaee8154ad077acf166b599bff1ce0c6f5203a166864a07a4a656499a8cbcd91a562"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_8(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "4341e55a792af8a1998493bce8eeed38d5d890b7a74e9121"),
		nonce:              decodeHexString(c, "d4573ff309827af810c92c2f"),
		personalization:    decodeHexString(c, "13ca74bf166ef3065315d950ff8f42ba71ff806d86ec6d19"),
		entropyInputReseed: decodeHexString(c, "1c5c4f65148d2809257775ba9573ae6f8762867ca7cf394a"),
		expected:           decodeHexString(c, "ae40d28587e163b7d2decd55f1c95deba5525002b6127fdc6c830c1c28847c874f7b31c1f003ab5e46d2f2ae9bb67b9ba8db3f00eb66d8dd1e3285f9d17896ff623ff7817e32ca623a69096eccde559cff972998058eff40560322c490dbffc2ccfd50bd96a1ae7f77d17144a9999c53"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_9(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "45a5546d5a7174035ded640dce12c3e4f8b4b5512ddec81a"),
		nonce:              decodeHexString(c, "92f96fbeb2084b1ae9e68be3"),
		personalization:    decodeHexString(c, "13f13c6189f2e34a8fc0ca6b6316df5b59fd58458e9f49af"),
		entropyInputReseed: decodeHexString(c, "cd3cc4f0e13f6597f9dbed179f37673fd0a8109067b537e3"),
		expected:           decodeHexString(c, "637649077521409a729548e13b5a05532dc6b3dc60fbd21abbf40142ec55b0d73735d07c5e8eb85aca5da2a13870d2de819390654a8098a1a708e2f7af5600a0cde1388624e14fa231df02e5f79bfc1911059a7b9bdb159ee3c82eeba9cfee36b798d635645e5c020307187596adfa1f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_10(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b7e588b991c5d10acf44c197b8fce7a469af0b4e12a429fc"),
		nonce:              decodeHexString(c, "250575641f3c36413d390cbc"),
		personalization:    decodeHexString(c, "4df8d96882cea89875398df569ca665e3bbd88a6b8a9df63"),
		entropyInputReseed: decodeHexString(c, "59a99bf479e6e5de588f4acc8e4359ec09529cc01d228e58"),
		expected:           decodeHexString(c, "32285fa5bc2c55b68a74045c6d3c0fc4c89bdae02f2149f6f2184fc7d6e07a7a3a0a08691ff45d3f70f318c6d35432df1ca3f481ef37c3de2e49d16596dd71e58a9866ab63c9c8363bf3e30ed7c5b4f0a1f6f4ab646dc0b69c48b8edb429ef49168d3298711677ac0532133f6760d728"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_11(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "54357d75e1257b10f0461bd7679498afa51ba705d2d39f3d"),
		nonce:              decodeHexString(c, "9c0cc6c7fd9b94b6d53efa8f"),
		personalization:    decodeHexString(c, "37d410b899bec27a5edc00a258c4950a342df1674df52a46"),
		entropyInputReseed: decodeHexString(c, "6b54367d9557ba0480582f4736c50131ba08b9c56e3ddcc2"),
		expected:           decodeHexString(c, "1f1c25bfa1ec8671f31d41aea02a745b15a05625dd099348403f4555afad88c465d6699bb2d1f3958a2077c0ea75aadbe61048abada4721c39794ba62e00097540086876bea543ea685739f1eb266f7540ae1e6843b22f6603ce6455ce3855c3b2f1433d806f9d7bc0217c27e37e421e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_12(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2f815527eb6b79a93b4849dd69a66837216f4bf04d499844"),
		nonce:              decodeHexString(c, "d4f1cfd9f28b67b7abd31094"),
		personalization:    decodeHexString(c, "705881415b3b21a0ac5cb6d021f4b6e95a36e74f379c4074"),
		entropyInputReseed: decodeHexString(c, "5e0492ce449cfa61e5f5bb77e26e8eefd025d444429c4900"),
		expected:           decodeHexString(c, "3c11ca0aad23c5163fd169f09ac9d64eb16afd615a8c0f32e82b198665574c521599612d35f7bc968c99ad6ba2b00e95d4d008b872b483f7647be81940d583a6c2bee184a08bbdb8f5ae17a79afc873c5024491a1a205840c9140930a56588a19730fe220e638e9ec075fbc390f61dd5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_13(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "c8469b8546417eb464c0c13f00bbcad97785bb1d22ec99ff"),
		nonce:              decodeHexString(c, "3da65a2bb742c45afdde0f36"),
		personalization:    decodeHexString(c, "97ea01253d9463c62c08678a0486d54fae42ceb91fba7aa8"),
		entropyInputReseed: decodeHexString(c, "f5cc52e3e2d174d5b4af680875016649e690271892a091e8"),
		expected:           decodeHexString(c, "e41e98fb0d1a0dec201742157ae5a8f9882d0152713e721e0c9135bcb67a90e5908d5dca0f1297d819b0cf45530e5a743c11d21b48a50b0699059e3db3687480fce39a367245e1bb0ed5082f3627b173383367df33fec0b6785106c5236f2d0be52017945eb7f34979c4d37f12217f41"),
	})
}

func (s *drbgSuite) TestHashAfterReseed90_SHA512_224_14(c *C) {
	s.testHashAfterReseed90_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d6ebc843255614872843fd03b1412b655a8714ec861522f1"),
		nonce:              decodeHexString(c, "c51afd218800d916b784e407"),
		personalization:    decodeHexString(c, "a302b992e2d633292eedc5ccace3728dfaaf92513b27cd6b"),
		entropyInputReseed: decodeHexString(c, "d743ddadce4e500ee40349b9071cffc5a236116abb85adf0"),
		expected:           decodeHexString(c, "50187775c5a9133f6540d314f4cc84da928b5fcbc37413e11fa28a0c0ec9ea57de3881335c5b94e051a8d6b29a9bc2668b6b11907632a802e761492a68b4f11c32df82cbcdd46a6539caf9248bf85a99c76b1d0d6051f22ee9fb638b4e7eab7e789d75eaf85c8028601dff65c1803dfb"),
	})
}

func (s *drbgSuite) testHashAfterReseed92_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_0(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b87082bb20ade9aa1963003004668af6eedd13954069ca8f"),
		nonce:              decodeHexString(c, "5a0165f192a8e58d1feca1bb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eef774ac48fe034cfbb2c02a464ffaa22f85da6f7829c32a"),
		expected:           decodeHexString(c, "5cc221a934259d5f4d792d7c07a9e55f192d5de139ae9d2117d01e8bd1b9993eb5a8cac21c28e283b855bf3fd285267a2dfba694dbb384a8cd5da9d9472eaee3082bfff471629e19d68c3afa4c9fde3c354c2eef3bb7bfc69b589a17912ee9856115f353361bd67496813f14420dbbe0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_1(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "0b292159831e5792d5707e32cb37f3ab0f959217efe2b522"),
		nonce:              decodeHexString(c, "18e1451ffb0882d2776efb3d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "955e1f9b48e5de5c2401f8c7cbe4a8eac2a231a3831d2152"),
		expected:           decodeHexString(c, "cc7fca440d90087a277223485311684e0388f2db1bc34d462dfe206777124d16480a637b1e5def1e172b94c20357bd9e69427c66b75d316483846b51fa800d19556efe16c67e0c6332a30a0ddacbd0c97c378d6a4a06856ddd2094387c0ef6f57528d5dc14ac5dabea7c363e111488ce"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_2(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d8a7e1ca90a715cdfcf510293a7878da48f92c9fd4177144"),
		nonce:              decodeHexString(c, "c584df8be52dac27bd911e0c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7af2d889dc46e25d73da30b45a776b7d308b56fe04e31a04"),
		expected:           decodeHexString(c, "17ac85151bac67468b93a976e68caaf2942518099660e040d1f0fd34fb6e6237fff91dddbb5e241b4eace1ecc5c78aeff457fb3382612de0002e685a6e674adb847c1ede2b3da7f2e4fd4417cacedef80aa6c02f3fe856204dcd8872133d2d61eb0f2ed281f031f3fe02d175b4ddd9d9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_3(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a541bbaef9bf212140841204a1edeb60a295da94f1e79ee6"),
		nonce:              decodeHexString(c, "8affef2e80a6c644b03a65d9"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f40448408656e9a1813019f9c34778464dac77f566cc85f6"),
		expected:           decodeHexString(c, "9d76de1148d5565a8ce4d88c69aecb9b7ec01b1ee0173551fc89f452468e4300739799a2c5297b6c165a4ad6e3249a00cbd09fb347f01258f3cf1a87694ed4cdec41dfb21486fb89f5e59dc87e88683c14503b66b04d1a4b94886943b1fdf898e6e6e23aabb96ea1b4b9d8687845d02c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_4(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "8c74be22f9744aa85f1c4dfdd800f4fc739fb217970c2304"),
		nonce:              decodeHexString(c, "129952478b991763bb7d499c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eec28a03379a8e5d27b2e802602cef82dd04d4100a4c53c9"),
		expected:           decodeHexString(c, "918bcfa1a74cac31019b365f42b02e3ff221f3d9c9042e9779c6211bc24d746a54c746feed1b8c09dd2853ba52689799bd5f9ff38b7764c6049ec7cd5fb9083868e33a9b3bf47e3ae412aa8f95b29ea5190db4d4583aada7ccbefcca03befaf1efff4b5cb71a2c5abeefd42e12e3b390"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_5(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "cbfac657865b9f488cc5ce87824f2d4fe0fe6512483e6b7e"),
		nonce:              decodeHexString(c, "b03c27ba96d08d92455b1fa3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f1182c118e12a35a38aef6b4f7cce3b13d92cdf2cedb31e3"),
		expected:           decodeHexString(c, "6bd43a18c177f51a28438c13080f4a850b5bf3176b1991eb0a9d29f62b58a0fd78a415d8850b92d30e4e0a61728c7d159047ec08aacab5dbf501054afb14cf403acf8c2ee3e2e488c74f64bb5a6dda21f8e74871401f22b08a2b771344c77d89691c870731bf4c0e887578ef02aec82f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_6(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "07908172b571d330c8ec9518ee249d398434a087776a7fa1"),
		nonce:              decodeHexString(c, "6a3ebb9be8d70c0ccec3d3e6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3f4c470e9bb706c760d5d40c02256623207fd4c89546da6a"),
		expected:           decodeHexString(c, "89defe8a13e12422182a2e482981515c3914e6c204db068edf9b352eb509594f558234f89e43692c85e007be7e7e779b646b06890f7e64d619281544a13aedb8e7e1500d6efc43e965deb3ebd1fbfb9e970a8905a2702be0a1d31422533292b6a0b75b5bb8f9ddd3a155db9413430ebe"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_7(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "238fe08af957faa7a5d4d0b550f1a2399189621fa12f6155"),
		nonce:              decodeHexString(c, "201c8191cdfbb92bf5c6e0aa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2520f7da15dac6276213717939892a63ff199340a77d5809"),
		expected:           decodeHexString(c, "b44d850f1ddc7719a680748354b9d62fddd203b9ff1a403c018e8d50ec561849ea7f4a2788e6c957f70fcc69ff070dd2a9a87194994e5e16ea728ca5bc656eb74a952a4b55ce89a2a761c6baa03384c3d84d87be11ec5b0c7c53272272b73e84d1efe1b3c57a168c8ed8417348f080a1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_8(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "d3ef130e63830ca3532a2ff1cd24f479f7dadddfa47a9ed2"),
		nonce:              decodeHexString(c, "74cdc95d610ac76707c48a90"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "204a23355e3292b4c9aa9c7b8b51a82a0d74c580e531c22c"),
		expected:           decodeHexString(c, "db859b39308c9ae2c3bcbe76847ffb94c7499fc31d3992bbe827aec5cfae1e2be53c16c35e5e88966528f1598e719b3dd2ec19154504a163fd31024b826f6a1f20532cf1428e560226767d818e6a88961e698db53c95933d4bc008ac29eecc49d8fdb62dbb11771ac8be16ca7bdd6fe1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_9(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "03969d029d0146a888a0e1ce7933fb54d7e6abb4ee1f9bd5"),
		nonce:              decodeHexString(c, "8da0ffbc3e9cf6a208356b02"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7d7e8f0e1b6a2052e749f5b5636a9442b4dd6846429c6d29"),
		expected:           decodeHexString(c, "f7fb77bd89de819dbf4dc3fb3a2357afb5b36749bc660ddd16e8d6e036ba1a8fbb2b85a97e1ac25abb2e11db25603cee1fc5d62887498545936941aa5fe33c3a24841dbad4ec7e8b50a8d6242e0667ca683b438333077576a8d2ff17e8a7aa7234b20157540c8adec5cad30b0b25568d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_10(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "fafbbf3fe2e5ac54b7e7dba0950268259591edb6dbbcdf59"),
		nonce:              decodeHexString(c, "739f54433c33a1875410bd0f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "82bc3cdc45e11ac82156690096d9ae6666108ef65601124f"),
		expected:           decodeHexString(c, "2e112a36c8f46954ec450088312a8f5de0be2a8ebeab0074d8dc83e203e3c8925a393730a7b2f5816a44d6d6a43d9948d9f5217602a7fe79ea135f06c579a5d6379a11f0babcd1dcceb58737d18189a79ea85a1d72b96fa05d9a1b9a5f7b6a63546865a4ed34c8702aa5762740717864"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_11(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "976da7b1f26c42815ec7c8ca8e1b1af34bc7e4c79441a020"),
		nonce:              decodeHexString(c, "a001314874d5245509729adc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f72a0abd140d53af0730efe9441638519310e6eef7db3042"),
		expected:           decodeHexString(c, "be9526bf8a2399b84ae61494b8842c45ac71894dee71ad09360e55460e1d432493624e75632dc678380177d80283aa1e159a45015c1e867f32e22e3b49edb6b0ec23603d021fc3e7335fd4fcf4c5442be7cf4fe63147dc550f1c7f4e45649c3777dedbca3f3f0e83fe95b294c37797b3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_12(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "dbc38eb839cefba868318dcbaf2970378a994f6748da4257"),
		nonce:              decodeHexString(c, "a840e839a48c6d821392168f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1578bfd94ad010e4ef57934e1ebbaf241e03c6fd0d3b1712"),
		expected:           decodeHexString(c, "4b8bdc9f96bf9653157446c844518b0887c59921bbf803d7077850ef752f36e1ba85b6da0f5172fb31003db5bee3f0935dc6e6d5a640a639b94eb6f74c84c194d56807a0ada7f18368bfd0c9d7a9333146b832276cbb489560be6a07ef9796d1700c3e86918fa23b3e7a5c0437f7caf3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_13(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "02c12deef00281efcf7ced56651b86701a345234a0725023"),
		nonce:              decodeHexString(c, "d8affde155725f493621bd51"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1751fb9451551e155279465234e07614eeee45c2beaf9ca2"),
		expected:           decodeHexString(c, "686a9e39098a7e530cbb3f6a51be75c8240264ab0bc7abb72ea8cd807e487fc39703ef6bd77d005b0481cdfac3cd0a852068116b632dec22427501356c643e0048ab7c0122b6d6221d95ff4bf6578a4e0666d295cbe33351a2b237eaf4761e7918ed4538056b6d58400be56799c3445b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed92_SHA512_224_14(c *C) {
	s.testHashAfterReseed92_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "83b38ddf03d7e2f7eb6bdaeda857682d15329213014fca77"),
		nonce:              decodeHexString(c, "49b3291d93607d5d995eb572"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6b1a31e6c709a782f3bac467f16b55756eef36f09c8905bc"),
		expected:           decodeHexString(c, "ebae58a12ee1723c51d0c850c1ad177f4583c1584203cce91afcb63d6ca2f9d95b933fad574df0fe5bd255724718481b3565001e7ebf3f752f72e4a0cfcdae35cb4a7d0b3e82213ff74c160c56a539970165441f4f47151cc608297715384ebb9f7ed1ba0b2fe7bf60e2be3de761b433"),
	})
}

func (s *drbgSuite) testHashAfterReseed94_SHA512_224(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_0(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "9a343285be5e248a07342395636b84cfebc8aa15ef4400b9"),
		nonce:              decodeHexString(c, "7e367fc9954622581bf0d616"),
		personalization:    decodeHexString(c, "1f079d03cc6ef78d80d76093385be4a03635d4dd5a9642b5"),
		entropyInputReseed: decodeHexString(c, "73b459167dc63b9794f7bd4becde4e8bc6d85ee5c32721fc"),
		expected:           decodeHexString(c, "22218fed5dda0ed24241791d46d795d28de0b326f540e511def83019ce215ddf651bb9a475a34da5ea8de8658f0927dfbe1c12d6d76afa80c4b3579c1ac7c0879058447a8d5d413b79af7ece8622c7193364e66a0c4a4460f63b5c4df16847043e90f0feab732553ebddddbe40b3ccd4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_1(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "0020657cea8f3a15fc370a06edd994c43ca3fdcaa81de7d8"),
		nonce:              decodeHexString(c, "780fbf7deb157c468beab213"),
		personalization:    decodeHexString(c, "7902c5ccc94ead533c973e232803a0d1c2f2c4d6e52b0da2"),
		entropyInputReseed: decodeHexString(c, "74855868baa03c1b0ebc3fed8f1dd6405ab93e3781370de9"),
		expected:           decodeHexString(c, "10c66f8d64b13e71ccfc72855688e467e046eea11e9686bbea0e84b69885ff45acffb0941d097ddee466fafee98c214da885c3e472abdefd6cede9395c53445831836adaa224a893e86afbcf8f2bdbf138d5a53e90e0bf3934d9b0798d2f53aea67051d971c198155ed9486c75d9e6b7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_2(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "c58e2867f5932493b5ddcc8a986ce6775cd42aad678af932"),
		nonce:              decodeHexString(c, "063ff398a15e8a1438acdfca"),
		personalization:    decodeHexString(c, "08aafa8cbf0b4aa982e14da67f4c0f45d67c9777ba46bae3"),
		entropyInputReseed: decodeHexString(c, "15300486a484a206d9a5e7e3af096b738280e627c521a876"),
		expected:           decodeHexString(c, "789a868c2fe4e9f900a3d7e6066c54cff138c039161ebcfb1a8db33c60927aa31522759ca1a986744efe2bed05dffc06fd1a666b9cd1b53b5f97f02e2f5a6d294c79a68fb846ab3fc991c1c28d3841186308a7d423c9319feadc0b8d9168978fc6b60e26221248677ab5a7edb90073a1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_3(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "05224b0075a49e5a4c0e1f262d53d1fc3e4f6d0f764823f8"),
		nonce:              decodeHexString(c, "5d8156701e97b9ff6358a762"),
		personalization:    decodeHexString(c, "1d1b5e09cb438652212d7dd89075b55a3f8cc7fc36e2ad68"),
		entropyInputReseed: decodeHexString(c, "dca4f30651b71ff44100a5a4bf52c7c174066eb667780928"),
		expected:           decodeHexString(c, "660f3393264e8fef7c8deb7ff9d8a3f2dc474ea79689baebd4dd8eaf50623dbcc6897c40c9e98d184002587b4ef4532dc1f7bb02a74d4a5e76c393617f1a7b8ff60e9749be2228c88befd14784258302d4011d36609e2c169efb3cd67e104a2855d8bb4d41af69df516288fd5e525676"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_4(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a05748a02a42186cd8ba00340d4147bbd2d6a10ae03202f3"),
		nonce:              decodeHexString(c, "b6b601b532d93ca89c0ab062"),
		personalization:    decodeHexString(c, "59a25b2b8d0b0f0a57df614e588daa5d06ae7d78199b0cdc"),
		entropyInputReseed: decodeHexString(c, "2a1da97272b7213d44e436e799a09797b199627e1c23427a"),
		expected:           decodeHexString(c, "a6733ea39471122c6b7055930ef808462c671b75c2ae4aedf60842d06eeaeb9ccae30904406662e0aad0c3c64eb2a5dcc832147faeb649bfd7aa9fada1eea720a67576adce7c30ee4937c95260bcbbd93138b37bb7cfc1df151d9c6421d7ea908ce75f06bfb8d52b2a52f2bb7a323cf5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_5(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "b56645bbf976da3e20b212bc3a8ab7ae6ae307b7a5d21897"),
		nonce:              decodeHexString(c, "b82fa35d93d1990b446de8cd"),
		personalization:    decodeHexString(c, "a64819086a878194570a4d99c10ad63f03ba80075e2bcbc1"),
		entropyInputReseed: decodeHexString(c, "2a4ff36a22b347573edbcbbf3789347c8eefb96a6e359efc"),
		expected:           decodeHexString(c, "2515b11ac80783a76d09c9c17248d159f4ce79d6eeb20f6929d85f0c4e9adad157a8970cb224538f22d04ade508a64a28b0d34686171adf3a8dbe6d23e6d484f8299e90d9f97bf905efad537d52f90c40dc83220f89c781ec5c7bfd1641d9d37badf56104073f91621cc331fccf30b12"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_6(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "7fdbd8b6c2f84824f891080df8a870bcf120b6e0d25fe0e3"),
		nonce:              decodeHexString(c, "7b158a65abaf0a2fc9853485"),
		personalization:    decodeHexString(c, "475d43b509340aaf00709a154ee39c265d46b45c95c60401"),
		entropyInputReseed: decodeHexString(c, "009782c2f729e86a945ad3e6f922be416c9bed0f5de17583"),
		expected:           decodeHexString(c, "d8730a2140d65653982b042af3b27b8265fc72aaa90df8550de72645bffbe24266ec550f9c97fa5be93493ad7b0f2c760b34b1f81db22d89d711c8e319193e45b725ce76e6aa93a6ccc044ce3031fb6ae29f587119502a6327e9dad15923c4c213464c2cdd1c670c021640e361e8fcf6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_7(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "7c286fd3a98b53b0a14246547063e49110c831e34edad581"),
		nonce:              decodeHexString(c, "d96f6148d8ad43bddb17a96d"),
		personalization:    decodeHexString(c, "4547b7fbeacc896cba5a577a9bef55423c15f29f94c33a35"),
		entropyInputReseed: decodeHexString(c, "810598fcaf7b5b3bc093ffe02844b945ac48c1e17cf439ab"),
		expected:           decodeHexString(c, "de13b9ebdef9717e4fa8b3d7fe09f25f8cc8369500f3f6ddf772886a841802953ad8cb71c2e90583c07ef3006dbf00c62b61648865dcfea70b931a0f5097e35a3c7639d826a5d426485496e20831fac4622844968161bdde8256c77ee8b175d243b24b853cf8cc9b6da59c9732970f7c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_8(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "a44bb10e0455c5cddef4ff7b4dfe1e945ec395f1fc47a93f"),
		nonce:              decodeHexString(c, "0fd9989e6557d59c4e88ba31"),
		personalization:    decodeHexString(c, "a7f334e751aa6cdfdbc983556b236fa57be411d2c15f9fbf"),
		entropyInputReseed: decodeHexString(c, "10014b90867146a1b4634f5421981b2cc6f8caac5fff8c1e"),
		expected:           decodeHexString(c, "ef0e7ebfd41bac0760a808e7b64cff734fb4385f713b5f62cca129494c251609edc7d83ca3343ea297c677d86d248fb4e572a1bfbacfe6e346724a782287920545e12780868619023a4fd43f22cfa45d072bc261009b48a9df0b2e1a38dc4ad83f686df120ea0f4c411e5c569d59e7a5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_9(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "84113c30ae7c2dcaccc0fe1df9ae23fc29bf34d1923e3db3"),
		nonce:              decodeHexString(c, "2c857fca5f83e7e4806e4c7e"),
		personalization:    decodeHexString(c, "6470b744dbf7ca4def84039e779302a18f75df4cd01b25c4"),
		entropyInputReseed: decodeHexString(c, "7bba9cc9bd5c5c107642a8adbae61f0c74910a970df776b7"),
		expected:           decodeHexString(c, "bc868eac6d2608bb445d01f6af1c4089ca216bbad2ff111d4a56c4a9954e1e8b9cf76352fd88a40f0333d2cf8266b2ab037c82f9a7ca2319b919955e15753ba49c6dd19fc4693207d1d87d6c4074498b7be10acf0c7fac9b0099a268c4aeabcc504c8c5d75d9163f1e29ec5662c39936"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_10(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "c18af724c195d19ecde415923ec543e2d3f71891497f351f"),
		nonce:              decodeHexString(c, "50a53e94befb9e3db6573131"),
		personalization:    decodeHexString(c, "1939af899c62189632511bd0ba90e53b427c4ce327974552"),
		entropyInputReseed: decodeHexString(c, "673314f6d484605c65d1b0753307605929dde71392e324b7"),
		expected:           decodeHexString(c, "3d877b3405aa1a747b5be92de62f4e217a77ed4686ff3c8b0a77abd28cc776c3ed2747d8b3be88c8080cabbc731e47e85956dc6db5ab0cb2d2c593bc6e0ec852d9373323538162e06b450db3cbdf6f77e682a68bc2569b834ad136b4cdeebad59fdd3c9421410e810e129a8654764613"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_11(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "6b7bb877c3ef50ba1628288b0038edfbb043714d0ae06f1e"),
		nonce:              decodeHexString(c, "ea0f034cb8304230fc37ca8a"),
		personalization:    decodeHexString(c, "b943666492b6e426e06c3fa7e9a2fbb5ed950ec80be2a4b9"),
		entropyInputReseed: decodeHexString(c, "7d993cf6c2417daa3ebcc887e3eb13ab64aeffd2480fa55d"),
		expected:           decodeHexString(c, "715ba17993dfe472325aa9e902e93637aa72e8db4e96cad8143a7a97a7e66e1721e69453399c2528e98800782a34738a7bd9dece452af7634c9f502e2392dc50b9c70270f51c3273650a21394ff262ec72ab19621f1a573fe60fb1fe852d2cc0c34ef73b2cbcd9f16b53a61ecf78496d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_12(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "70b39c77245b0da3005badf0dd6d59a4f86e6faca253ab97"),
		nonce:              decodeHexString(c, "9ff849d524bb9156ce79f950"),
		personalization:    decodeHexString(c, "f352b715805f8949596184dbe6b18f33a88eaca256752c91"),
		entropyInputReseed: decodeHexString(c, "09e806ade68d2a30de12685431497de36e4921dc710e0c48"),
		expected:           decodeHexString(c, "d6d13ce8b116faf00f64d7b07e8e5f64e38bd647c6eb8dd070da150a034ca64a3f63477e1a6f5d6d6da11a05b29ebef667d8cfe6a6f7944b7327ac1278d4c930678b5ef0d4b75be904240403a58ae5797490068daf0c399d96ae280bc31b21e33429ad847be7a5c500985300116bc611"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_13(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "2df3b80213db6525e2b74d6279fd9e9e518370b697c213cb"),
		nonce:              decodeHexString(c, "d65540e532affb1fa8219d4a"),
		personalization:    decodeHexString(c, "3b1d7c80c907ca4b1bd469b31a01f4e98429597c20ce3435"),
		entropyInputReseed: decodeHexString(c, "83c903ad3be2a3edeb571bc1c7f40d9f711b52365003fdf1"),
		expected:           decodeHexString(c, "5fa28a593cad68459ca1f628a37097d088928a980fd01cc4e404247c8ae157d2448f91133d08fdd5234b77e5b7bb9e4773714187132723de0bff816701c9aaba9a43b824a096deade1f9de007f71a5fa8cc4d75f1804b485bdded3afaaa3045245d0ddabf8130981061d6cebb4149a0f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed94_SHA512_224_14(c *C) {
	s.testHashAfterReseed94_SHA512_224(c, &testData{
		entropyInput:       decodeHexString(c, "48526befe3ceaaad80ef9b32508dd22ed3ad69be23a989a7"),
		nonce:              decodeHexString(c, "2ff8b83c299bd69fde890a75"),
		personalization:    decodeHexString(c, "b6fde7130a3089c09dfd21f48a981d5077ed48822bb1ef81"),
		entropyInputReseed: decodeHexString(c, "b2a7412047190e416333347b77babb0fdfb9abbb92932113"),
		expected:           decodeHexString(c, "74dd08172f3e99b59c4f54fc7a531646e72f13daa25547d4efce1ae97270cf5538fefa2ae2620a554a0b605f9ba2c2acf3a8531a91cf73a53b333c8226967fddfb956f9a43a6cc9ef31e8c9bc57f3c89b82fe5f922096def7fb7c42ea7985442ac61c14e0504f53d357568a64e9ef385"),
	})
}

func (s *drbgSuite) testHashAfterReseed96_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_0(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "561990b88f065730e52950dfed63ff91cc30b25f334fc962da383b429e238a38"),
		nonce:              decodeHexString(c, "b7c000251473e03ea2dc1fe8bfc0f75d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "294cc1e6cec4eaf93e55dff324975f018f4d47308083c001e6298b5ea269e8c9"),
		expected:           decodeHexString(c, "fa422720ebc7ba86836c376c2485bc19302febb339e2688eb1f95efc6f8db3d2d72c4e6827b750c8ee6d73b28304d6103fbf85edd16a78840536311a4feb6b5377443013f465f17f664ad4d099279135ea10d0f21e42ee57254ced1e95231d67e19fb00d8631975b8367c4a9247ef59e81f996b35782b206b6e9f61d9aa8a02b"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_1(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "56575a31ea7e9a3d078c1c3804c4750c6d3bf3608fde8d44b515f1952628e49e"),
		nonce:              decodeHexString(c, "04fa00ef160d91bfabb792ca6638cf89"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e28b9a0fe0d6cf1ae579bc7d406a4e05536ec11ca97cc35bc576b4024c6885c5"),
		expected:           decodeHexString(c, "16d35ca0c89813d190913b2f7bef50a300974d3e9a08a80ef81982aa4d7a482a212436f43784bf5d77b2052a9bd066bc67841a414982394f199f0d2b9e77e41d95f4bb779fd31075bae23598354a4b6cd841dca78ac2caed895dae6e82a27f0b5fccbb32f997fcecf983d0eb2bbf96bd439686de0987912a81acf13bb7139807"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_2(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b0b3bfd1162c4fd09b5cb1535a076743348d59714bf28e00440f075453a977d1"),
		nonce:              decodeHexString(c, "a87bf5a3f701a2abe809376b4069c562"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "ab102a81c6575fa3e0f5b3c2e4308a89deba50f272299260152721c3cc4397b6"),
		expected:           decodeHexString(c, "2ee98c89652818e3b2139e7e3bdde1da5b8bea94fd6e11a2af880d8190243f40b8aaf0aa5958dd77fe5ac821400671c49bd4d488e3e021b09dad1c5fc520059abd38df2ce6d8ab8135ce24696b5e02845a7ecb6e7ed90c53e4c70edfc754a743030cc6ee6c26a87c56a4acaca097d91a3d44ff15e438bdccb93159cb918b77bd"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_3(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7166efe1f1503bc9ccc9a28d76d690ceb889cff7a0a9596baeabb72b607a5a36"),
		nonce:              decodeHexString(c, "2aafc1495ecff5c0d2f51ff7ee97fb34"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9306652837f51f5317b94a25a7cc2f7635996e44d84bd5a7da75ea717123bf08"),
		expected:           decodeHexString(c, "393fe27cead6a25f24974c51ca12f45cc4a22159179ad340b5093199b981f2b788487960d9605211ec979d51d6649bf2c8d4880ea19683de24c6ba685d74081e58e40884f8150a5d2772be3204c677d5ce251465bb4153621af351251d33aeb2b904a300ae322169da57ec73a9fc7e60db646e583f1d41f1f2920f6dca5870c3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_4(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "828995071f29c65f68c4406afdc2490417a124ac5048232e878ccbc92f9a2929"),
		nonce:              decodeHexString(c, "fc42e40284a90eb50353fd74ca1d73eb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9f2d795b7aabf34b05f822b1b026dd6cb6443eac99afc76ec447f3e4d7e61449"),
		expected:           decodeHexString(c, "d7709a70c4081f7ad34e3d5b5eea17f4abfe7fb9941f6cb4bc330f9a9056cbdfd57dec01f310acdbc454a5221f77eb59c3fa103c304aaa0c01e55539e763d800eda6bd5b1ed0b057a4be235b083a1f3832506336820542ebbfa6bd4998801fe8bf3c6378373cf7f8c5d5b35d15b41647d870aa4d75d88bfae309ffa9d64db442"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_5(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0a4ff37179ac0850feccd07b235599b35274b2c0e8173956ef524923be41a31f"),
		nonce:              decodeHexString(c, "debefda38587c15b8cb79b970a9bb1b1"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b1ea0046dc9dc332ea7a76c5ba48cb15d267c9c52552c0ed69ccc756a004736a"),
		expected:           decodeHexString(c, "5e06e5e232d53566ea35145a44ae426295f3ba1995669ba00e337ef0e3cd8d4ae6cf919299e293e34d19c01eb46cb1b8f7f11522687c9db5ba4fb103fafae86d357e57b77262626ce17d56fd909522e605a999e2e48a6ae687c367363f22f5a23c814fb41c86e2d4f91e77899de6ebca387a82a7e8e1148eebe6a1f4e6966f8a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_6(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8dd97496f25999ae1e7b74e0a4d79bcfdc2404518a1796c82e42c028d3aea154"),
		nonce:              decodeHexString(c, "9c68bd602298ba109a27f29c2b1d8cae"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a039cb96a2a0bb1a6858f366641e9afec8b248ee2355c4bf7ee227695b1a911f"),
		expected:           decodeHexString(c, "6dae18185ee2d53038c36fc5d629e6ab2c8b1dceb957fed33f6dcb8a410b16d97f899ee9a38e96b286f2ae05ea6aeca20c48e683642a339248c2a603179adb9a47e1da759f62eb66570a2a39ae2ec1497318a771a813f7c246d21178dfbc7b5ce0d1dc4fdee34ee5aa3d5968892f23f7b020d4024a678bf860e7bf22bb941920"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_7(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3a91c006102640bff0784d38d7d0f4f6ad640a23b9b163f1540a25569b812347"),
		nonce:              decodeHexString(c, "4a9c2b771708fc04ff65d4130029ee7f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "56246dbf6d03ba82d7f139f72a970b19a789219314b77fa07882a806a3be0446"),
		expected:           decodeHexString(c, "dc71055060ae2b6b21bba77cd598a689308c1e16713ba377d7793815880c77fcdf471316cb6d0b289d4c0725937878e83530259af8a1781e8856315df586f51d0f6d6c4081612ddc6c304a5c72932f9e799633daddc383497f1014d44ecde26a9a107119f63d5fac53e1e2e94035db282b2be8e7cb3cef59efdfa99d383d62a0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_8(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "1cdd354402c4d3d6ab1687ad764120de2e1327ac83a251de78f472f38b4e2976"),
		nonce:              decodeHexString(c, "8d4994e8897e337ad1b08fff7535b31b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "6789818b9650625eeb0016deaa9a80d3a121186f1661714ffe73f79c8d41711c"),
		expected:           decodeHexString(c, "b85b21fa539c2d16a86b72a0f85144c4a15175f4ab136f91858f6a2c9757110a42abfbe93255a3c507fe3d317ad7b9a4de80eb8e87c210bb316e75dba1bd5b390d9b98a666f732fa0213ee772b8dd958456815dd8b433b3909d518bb5929c89d3195347129c8c1d912c6bf5dcc0c3514b0155a52a7fc61dfa8d6c2d49d18c503"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_9(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a2bca08478e429266d13acda8d722f64375f445451f8582f8e9354bf16408b9c"),
		nonce:              decodeHexString(c, "35f2be50018186f1dcf7a102cce3415c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c747747305fd69bbe69599cee283dc7f762e22898f3e6e9113c2f3d43b2706b6"),
		expected:           decodeHexString(c, "4fe67de4629cb541c99744c7cf366c85e45eb0e1a5f28f9ed8a4f3adae2aba265892e375f38828216018cad4affbe40ac590bc2ab16b537e907743efc80f5da6893add2d5e4596a7b69e9ace79c4edcbdaefd95c16d8d67dba157d59f12356d52af5a0d4b56f8e521339654b63f2383a6b38ea96a0f761f7856627c6cd97cc40"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_10(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0c64bac50416301cb1ccafd98e0fccbddee4628e6f1866e76f26125ba6fef354"),
		nonce:              decodeHexString(c, "2ff1e39ff881ef747728cae9542fa262"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "363d02e334f145c0802acefb015845a16aee3a246989381fbe4bc6723f2ca837"),
		expected:           decodeHexString(c, "84b5a5e327017a275b871e671a172725fd7d9ab0f42d59cec93563f1bf84563e5638bc36ed3cf0e54e8f5b63dcb9fe03076fc2d081e57883f38150d287fbe3c75814ff755f0abaac4bb5c5f3ea4191c6f4cab72749e37dd9c0ba99b282d965df494ac0f7be6a8fd5670a9101e443c024c61c035c470f67670c729d23f28442d6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_11(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f9f5eca9658f81dbbb2874524ee6b91c0013c6badfdf5341c78544e89acc7db1"),
		nonce:              decodeHexString(c, "aeef9144e46cedffb3927e029362b39a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7b01ba5a2293569839d32f3a6e28390beea8e6695c873279464419a6a1fc01b7"),
		expected:           decodeHexString(c, "5851f3285d61ea9d9e4ef9596e0b1a641fae062fc23f0080e6d58197662ca65ccc37021c6e54e57785173ff240e940ea07b0f816a19be028230c86dccd5c9c545fb3e5b3e0276ce2623cfe03b92b76fe53495b50af5b17dc1f9e7a5211c0e63bce746125c9f18e78dfa1f7f821fdb94b4136191fce7b31b1ad813534ec3c580f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_12(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ec509fc2e2ae64468d7676b84237df81e73552928751c529f0c813248d191b7a"),
		nonce:              decodeHexString(c, "476c92b012420aa93e57d7021d72553c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0bb699e84e141f0cc1ebea75aa70fa01e5c144785ef2cf2ad5ce348ad6fe0d0a"),
		expected:           decodeHexString(c, "5fbe6554e6b59bc022ce869e09ea6534dd1b5f88f379f2895fba82800e7ec63c7ecc9f19b667af359982cc5fc683d7be7b7a724e1c4d42e9847d8e228a2062afd91cff99ff39ad5298306d41a1d10f87e84785dfb5efbb4020281f229ad5790b97f3d8f58074e7f3feb7a8a305f97310439bde4ccc478214c11688253d5033c9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_13(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6863b79692e71cf79c4dc9990335db39b9402ca505e4127ebe62c2f12c718c14"),
		nonce:              decodeHexString(c, "e12e75a2fcf555b618ae8b589dc5e4b4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "83e01e2a868c87bc238624b03f05862f5df4c3c3db25af60e6eae3f6b07b19f9"),
		expected:           decodeHexString(c, "6518539f59fd3c0ef60a11b2cb265a7f3df16a746b34c4811f363a1c1c1f006f835c43884179ba9d1e36ea93bc45ec1368fa3a9d2ec85db66aec5740b8d79cb8b028336b59386282cf818e7aaecaecfedd46fcc30dc1147e7f09e026b780b8a1210d0d59260ce2dd3c2c29e17fc9212af1a4ea497eb4172306fd71d0c54fd2e7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed96_SHA512_256_14(c *C) {
	s.testHashAfterReseed96_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3bb727d0e6ef1e2db61581ef75bc101b3ba854aaefdf2f9ac39526668ec9474d"),
		nonce:              decodeHexString(c, "ab89cf7e251158bd4a597cf47bee4530"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7cc4090115cf78fafacb4405f727a98e2e840bde6a4f8cd08cb038d22cf229f1"),
		expected:           decodeHexString(c, "774e2ea99dccda60ab2fe72d756459c613480a09ea9de0cd592266aafc70f90fddf477fa7c2b91b689682694fc6910d23487cf3bb53e046a71ecd6ffdce24f8efe3641401c975a21bef892eec5c967f6bed27a2dac8e9d03b223e0008583f0e8b9df2018311b09c640bbf9887f842590803ba203b58e494cda7c60beb6c6ae02"),
	})
}

func (s *drbgSuite) testHashAfterReseed98_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_0(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d1beda2c6f2b0b141b6da6038bd24dc8958c1e2cf8970c830f1c82f4a875c18a"),
		nonce:              decodeHexString(c, "bb0992088555710adb90efd674b5cfce"),
		personalization:    decodeHexString(c, "121b30fd8abb4765ded97217b3045aee1a74f942e65b855f21b616dbebe33537"),
		entropyInputReseed: decodeHexString(c, "73f1161619054e9ad10c37e15c86fba2a9070b96ebcb502fe7079c91e8859d93"),
		expected:           decodeHexString(c, "cb4953120c747d981c8b6b6f12f9b376c1390ceec72466db289aa1aaee67a425382dabcbdfe2067c2aabd89abb4a16f40b3cce3194624edc6aa4b8d296056819045807864f565fafc12041f62996c4f47214d7c47f6439d3c98fbbe0ed27278d78c50334b28388461021c6a0f7ef6857c862dc70416005ea938c2eda363ab319"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_1(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "2f6c7788a66d1198a48fafa5afdc654de3774966c3e4ae2e3a09b994a1a1b66e"),
		nonce:              decodeHexString(c, "98d4066fa776c4dcf7a9ff9432fa6460"),
		personalization:    decodeHexString(c, "94ea29fd6732deef51f8731e1bc6afb71dda0c87c3a09705e4b0d1e34c4b4305"),
		entropyInputReseed: decodeHexString(c, "540b745cb6340c316cd4f5b552bfd2d5401613c9c2b5092545bc75415465c282"),
		expected:           decodeHexString(c, "4e64b602b76f191e847b1820a7290e6dbeeda10a7db8ae42e6e4552db6e745cd58d66f2a3b3c1d135dfd97e0308496332bd7ed7cfaca925e9b4c3c9a15049aed2eca6d4d55567abf449fade7ad35c4b620e7d5bc272e4ce37f42c7be78cfd5b0eecc8e18426c211b96f28d199393499e0639e3bc8e88ee2b5b19d0d27024fb11"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_2(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "e3505cef4b3a2c0c3a0e9739b7787fd6041f8b633fbff10addbcfc7e8e1661f2"),
		nonce:              decodeHexString(c, "e6765bebf2805d677406b623cc580276"),
		personalization:    decodeHexString(c, "a75c184177ca690ac8bc7fe5c3219a8bc5a2935a6111dfe4f9847ce30857904f"),
		entropyInputReseed: decodeHexString(c, "5f706cf340db410ed3eed6e460e20e501ee4dcb8670f7c1478ca92b717d35af3"),
		expected:           decodeHexString(c, "e7c9847448d54d9d1cbc369d48391f2ffc518228e6df3236c37a86cf889ca903b25be7c009f1443cf5857c74a2a134ac321b9af7fdbc089bb3c2933b24a3cf3b465902d7e5a338f5cac8149c12bf85b08f221c8d32b7f0b18634e39a37aba8f8a102a8974fdd51adfb225f7e1764eb46eb13ba97c9c7353f550168570cd9c5e4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_3(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "bd2569afad5f050c39854aeef9e833ae617bfddb604c0a554ba6fc5741794400"),
		nonce:              decodeHexString(c, "40d0c1dc62100fade5f0c56b40de0cd0"),
		personalization:    decodeHexString(c, "2d79cd678ffd92e9ca8df78abc01cf5c8ab5eabe715ab30d5da52943775ff83b"),
		entropyInputReseed: decodeHexString(c, "5dd846fd8f80799cb522236997a998385026c888db9e70ca042794e784ce2f00"),
		expected:           decodeHexString(c, "b4aae1ab9968d860829b8532a4ae5345cb88edb45ac9861b51e87145e477a8bf4f6a35c959ca8be6083688bfbe99efd57b5c01b32906f553f877cd6bc3b3aaf83409279db80aca602e0b9cbbe6408c18b154b1f1bef46e50bbda937970449af35ecf6de49f0ae54da1a7455db8fe0975d84075aef1463e8566c326d103d96576"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_4(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5b065e50b53bdca13151f6aededce5f73aec14d40d7da5735266c281e5d6996c"),
		nonce:              decodeHexString(c, "07dec5f241c919bf008e00c1cf110c2d"),
		personalization:    decodeHexString(c, "0d10d10cb808f09f115de01c35fa006506b0f3ffa0d836bc75f7aba3e56d536d"),
		entropyInputReseed: decodeHexString(c, "dda8ff092849fba0df2948fc8e6c590df1ec851223b0b07c2572da8cd261f5cc"),
		expected:           decodeHexString(c, "2dfb382fe54af46e7429a2d55c8127c65c238cc242d9279fb329aa39d9007f947e2c21f901b8abecc7811bf7493284712cfa46cf8666989309153306860319731391bb1fbeb0c7a063dd0ba5f69559f5999c03bfe1cbccd7bc4a74d95428096ea528cc5288d8022f6b50d133fd9efb154c92b653c997aba727b028192e95755d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_5(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6d825b6c05f1a72d8fa84b9396791e0c9869f8e7f0e7ac1ffbc79aecb62aab58"),
		nonce:              decodeHexString(c, "d6de5bd1574dd34833fe6fa0443e9085"),
		personalization:    decodeHexString(c, "4938233e9485f0097dd7a77cf102e9df4b00a4164a6f8f9137ae26f7a08d497e"),
		entropyInputReseed: decodeHexString(c, "e61193cbe5d63da701a67a37f4cf16027d0e8a597ef2b5fffdb7db5ac15eaa1b"),
		expected:           decodeHexString(c, "1904ddfd74099d996e72e80b90c70a23212059fb4d7ec6ea4498f8c8f7d5525ecbb6daadf177bece3b8b6569b4f1467a43b5fbc4961aa67575270ace0682a9a3cb819b76aae2f52b052af45de2eb21eba1371aa5de464c3b8fb2b12469017039b83ca54cf3d31a847f98e26729292d6d08c4c1d270d5dc5b302fa811b42e7998"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_6(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "50fab608960d112db7f5ed4bc8a9d900c62e5889ce7881b5184370f3a40cd6e9"),
		nonce:              decodeHexString(c, "22a3cede0bb8de213a2cab93b3bfe0bf"),
		personalization:    decodeHexString(c, "381a2531fd3b38209c3fc0545c044a7a983a49c88a3e2a81ebf25f19bd45cbd4"),
		entropyInputReseed: decodeHexString(c, "a05d715b87d8fdf3df753e1d8d4f951994768416d81b47caca6a823f97741e64"),
		expected:           decodeHexString(c, "73b265dc7be63003ac4c3448bfd084e10c50dd4bff1393c7a518a507001130cca861ffb09e9fc620987e642154f6402cced33b98588be98461527ab3e211a889e89da18072cb747098147895e611d2fe40966be95b1e08a352669b92920b07ae692f9ab21e2c509acac5534474d151bb0a04c1dd5d195835529d9055c51ddfee"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_7(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "e2a6393c4e65f41b2eb558407eb349facf6b3845c4dd13165baf610dc116caf8"),
		nonce:              decodeHexString(c, "40a2c18d8e0d9b68060d24f7fa31decb"),
		personalization:    decodeHexString(c, "abd18f4b7e0101aac292a113ba6ecbadfc8750cbede424b18133907b44adff03"),
		entropyInputReseed: decodeHexString(c, "78ad92d1382d2334083f54867b23e249c6251929fe43919147c1ec9d36db80a5"),
		expected:           decodeHexString(c, "da2cdb7decda7cbf4b50aa519672a91dd87c0b78028d5a92ad25c9404e9301a39be501dcbc08804d7beea91074b25e74683e91a9e3ff3378bef6c0c26404a05f1862e5419ef5d8a950e9e23c0b9165b140d047b5234e8113f54e85a9590e910498d39b9522b2b764a3bfb9f2137c736e622fbc9ea1403b398b9d7adf4b440eee"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_8(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "27933a4d95b6433f2ec81fc3e8039eebd8f8b6bf1394c85e1bd5cd936b805885"),
		nonce:              decodeHexString(c, "f8598e6f65e2d67d8316d56b60b0d82b"),
		personalization:    decodeHexString(c, "a42605ac9d169a56b22fcab3c815092e9cf7ce682130b52726f80abb428ac042"),
		entropyInputReseed: decodeHexString(c, "d432dd535facd82fb88b3968131f1e4ea3f7b21996652198f59dfd1db16df515"),
		expected:           decodeHexString(c, "597a458e86fe6de7e6ac8df1006b498e4e62115e862680b10394d94e1603d8961e14060bcf96d7bde84292829c0c038901c3e89461c38b93cc6c510857027e58f5e54f3af06d8daf528a28c9dd30ffe9ab16fe5bd6a97c02acf34f5b3142fddf53d82b9eb0b80910861bafc1a0f3b6f1f2fb51283dfad8e0e7d63dac2c1615f8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_9(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d6f8fe011a2e080b216d4b7357aca6f3822a58706a8517c7cec521bfb0227a1a"),
		nonce:              decodeHexString(c, "41adf41dcb754a65aa9e2154b5c825f1"),
		personalization:    decodeHexString(c, "838829b7a3f5c6fa833eafbb60741519206d5d34d85fe0a5915ac99e12dc6609"),
		entropyInputReseed: decodeHexString(c, "73edd052b39cd2ac74d7c17ddb0136e354809f8048a0535e0b4a5ebad64d8ce8"),
		expected:           decodeHexString(c, "89c683035b7c0c5af68c1446bc4083a7cc51da09f4a1e9c66d96e839841b259c02ac6c960c12bb6242f4ba03383bc4860ca18dc912b97119aef23cbb1cba16829b7d9dcf8ce741258ceff269e8fea7e9ff07337e7a623bc6c26242c78abf41e6a89879956c6915bb1f85ed9efa366e3599d3e8607a4164a2c61452f74406ea7a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_10(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c45ae6d7806786dda15e300f26c91b5eb109601e6118cac56e347df9708e1652"),
		nonce:              decodeHexString(c, "85ff3557a92db12ef005b93866ff5f41"),
		personalization:    decodeHexString(c, "43ab6ea902920a965b15ea7b19bfe6b2ec7b6761754c8fa88b7460a556cecc64"),
		entropyInputReseed: decodeHexString(c, "c2c49f57b7b1efca89a1e030dbc359b8acbc0bf88ab5733ffc3591d15207d205"),
		expected:           decodeHexString(c, "790a8f6a3a816169b2c63062dc8f4ea6b5dc1112337a8365ca2573bb9d52903f9ef635496bfa1753d02764bb7fb3ded597d0076bcc17471e0069c18ee2d0df63d12568d0ded10f5fdd42cf4b18aca9ecbd07e3ac80188e7bc5b22ca0a4ff805b2d269ddebf3d514b0aa08581291bde6bbad0483f804bca7de03bb8b16e1500f8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_11(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d297fa452e5659f39e000b45778007248b1d2b81c78f0626061a914527d418e2"),
		nonce:              decodeHexString(c, "720ed1f7f7f4fce2e19313ec5e5178b4"),
		personalization:    decodeHexString(c, "53f20c26e83bcf014ed2e452d69a63b47f04ad0724ef1b5ba3083e279e64000e"),
		entropyInputReseed: decodeHexString(c, "84eeb5769bb93f6b4f472b46771a464c957c2ccd6f07dcbee31f09edf11d3fb4"),
		expected:           decodeHexString(c, "32dc229728e6b1ea8b4357d88a087e59454fa60d8e3843369ecd306fe89517738ae6bea1094b62bb04a99d838d96d024ac7b75ad83d018260147964c60ce9b7dccf78dcaa4e3c03fc084052906908b9846233aae7623997a92685bb389ff14bd4b8ebc765d170be87d2faae89530a903ec838d678d22451c185ebcaaee460e31"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_12(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "de01f45b2dd8df80fd5c0c57e1eff623213170199912772fdd731c33709475d3"),
		nonce:              decodeHexString(c, "6d18ec744a1943fec980ac5938c67794"),
		personalization:    decodeHexString(c, "586605bc3abffa25b3960b259b1c8e19c931b5eee1ee48f48ccfd053424002c9"),
		entropyInputReseed: decodeHexString(c, "24c51ce6f1b1fc8beaea4b02647a48205fe80785f1469e16149bbb748f458b95"),
		expected:           decodeHexString(c, "8262205906e1aa1c6a93a64876517ab771f6727dda55f120c48aee6a77a5a7b73477edfa7f9551155f7c2b36661f2f44fbcd8ff6f3955c2f6e3940f761e59767fe63f93fc3c58c0da7973e4bac1dd6038c1819c66c95468ab7c438ffdce360df45c5dd2554754ff7d5e5d83cfe904ae791e85786074514a969e538ade0721567"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_13(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4c76639e708982cc7e59f836722b4c0f602ddeeaf49ad98fc9a8b72195c6ff34"),
		nonce:              decodeHexString(c, "162e69a25c4f7818a562ccde5a74c3e6"),
		personalization:    decodeHexString(c, "7be278014fc689afdc1fa75abb794703ec4fc19b0f0b266adb870b41d3966efb"),
		entropyInputReseed: decodeHexString(c, "d5c328e466830c87212f656d90a2f037a1c54a922b216bf422714fec37779a02"),
		expected:           decodeHexString(c, "e18cab0e9a533e9ac50df426173fe02cbd1e22e88fb96ed4f3e25af67c3535f0b4866fbfb371b7856a28c2eb611ef8bee99d001542e73cdbe01af29d8488336a69ed81d38e14b50f88bb6fffc19bc21beee0e4e1550c70264e4e9954cf7f09da663205c03e3ea4411b1ad84653edf3866c3ff6462aeb506b3a17d38b7c7b98db"),
	})
}

func (s *drbgSuite) TestHashAfterReseed98_SHA512_256_14(c *C) {
	s.testHashAfterReseed98_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "1f2d244d29cd6fb53cabb5e4d931c70ae2aa43ff46e6d43bbf325279b4266fe7"),
		nonce:              decodeHexString(c, "f6db19aa792560b2e180c0ff9776a69b"),
		personalization:    decodeHexString(c, "b77ac6d22c2c6be63633c0ef05d583cb732be155ea0f72d02bec7e8b3ba51731"),
		entropyInputReseed: decodeHexString(c, "78d9e4b62aa6a004b36ef4fe974cafec66076a2c6d85d95af124d2e336ac52ec"),
		expected:           decodeHexString(c, "80be00a12bbbc6f683d632640c03dea75184fbb764e61a06eb4f56cb13021fc2107dfb9e0bff0fb89ed0038118d75c122ceb31a32be3f359020b1fe651bed7c81f96a39e399ae26c3fe09136c3261b045e987d14867d624a173b466d831c492e58a0d0ba90b1aa874b7dec73959c1936d6af5cebb9568e99bb9fb2fe882b4af2"),
	})
}

func (s *drbgSuite) testHashAfterReseed100_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_0(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5661047dd2e053a91269696aed79ca80109d3ae95d61aac21137cdf0213a26b5"),
		nonce:              decodeHexString(c, "c658197c390382e084e00d2b0a7f5778"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5b965293e66cca9b7aaab22c906d4d1121c6589c30f41d768085daba5cb2d968"),
		expected:           decodeHexString(c, "47b061f52438858f28b562df9e64bb59fac776ff3271b110c3e52907b1b75f30460575b5d568b723f591a67e975074207f19423489bcc88a2943c588b40ef789d9b66c355aa1aa821723faf02e1e92dff82c4209eba2c80af454f2ee409e79d7afff6f1e60d2f592d4c5f6e4656a7dfd667b66887da227d8bc51f970b3963e28"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_1(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d5890253700672f813b957b0e60a6be64718deecff06013d454ffa777afeda5e"),
		nonce:              decodeHexString(c, "e738bde2aede7250c19ee41b89343c7a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "f1d569a373968274654e2221f52f94f1c89d87eabe2349dc5653c38a0141463e"),
		expected:           decodeHexString(c, "0706b207a4d595f53fb3bf31898044781ae7193414f3f8f82a7017443b732f988d9f24f3629e1d317b484e32df7383443a4039c15ed5c2970f5e016700451c73fab346185ee35c4d3ccb043c29fb860d60dee3fe42e6afbe87763c0c9dfa202e63a805360f1798e6907c5dd42839dafe9c7d7fe492a797dbb3826ba0568bbddf"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_2(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b108844081cb0ea7112e27213bbb3e451c394022da96eaffbbfeea618960a031"),
		nonce:              decodeHexString(c, "f5d7738a1e7e78516152fd5d8c85fc3c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "20b5548529184b052b4e6280a30c7033d83aba50ce6f2524db9b7967ad049e18"),
		expected:           decodeHexString(c, "71050587cb15f4110aa361e11b1b5e622c2a486c06f8f65f35eefdedf24fbde327d97cf40970b554fd80e0bce2f3cc5edd4f39f3612c08b7c4bb17226345e9e783c44818158ad0c477649cd79707cdab9f7b072a1d0e60d21bf03d2cdaae798bb26c040c39fbf48ec8ee71a5b35f20ff42030c637ec153e423cab7130446a0a4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_3(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f1063885947ed782c356af861cd1477611eb664fb1dc9bd8078e8f6dc6acea42"),
		nonce:              decodeHexString(c, "407762b1baedb468aee4d88a4af92c01"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "cf9bba9bc6f324daaf625f26a5cb7df8e8e49afd0f1046b4ecd427bd6f6e5bb7"),
		expected:           decodeHexString(c, "167d4a54583bba77225d5ce88ad81fec343e706a399617c5bf1390653ec81f983574caa1d988b8349f480fbb2a59b00cfe36d96eae166e6df621d931884fc3810bf9181e607d8b5a5a40d8f6eaab37c13990d625ed920127682a0a442ca4477b2864302714b0a79ecba6282e7acae065217ecc5a687c38bca7713dc59c026de8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_4(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0f471f44e9d3e1a19ed30c2710aee3fc78838363e7078b1d1f5d0ab293dbb618"),
		nonce:              decodeHexString(c, "8d51fb96f02c3ca81580cc847f985cfa"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "709093ca2a3f483a1e016ba70aa34b4d1d35ab9ff4cb92e6fb39be89c4a7ea87"),
		expected:           decodeHexString(c, "f4345ef177a516e4ddfc35cbe9becd67187846490fa8372f9bf372fdbf0404abb105186921bacc77108474876c998ee20167b20cb69cb04bfba5056f91b569606829345b3471f827aefd72a3601402c304b26f9d8489d85e065c538d5e400f569091fe5abdbb133fd23be3111e58413437b4d01ea9cc7a76f514927e814e3582"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_5(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5338e30176fae9a418377b607e836ec56c61bca1ae81b26c80aa62381573e787"),
		nonce:              decodeHexString(c, "cff6adf530d9e62cafbca67066fb1dff"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c9e4116e4bd5940e657ab11c86ae25bc249df8f2a23e0b6239a8b8ec2e739cac"),
		expected:           decodeHexString(c, "ed7fd7d39604fb1b78db0549cd99821738fdf45c973087088b12c585aaefb7bc5b9ad2446c36b867bad63513bb33d03d3ec78de7060e4d8cb99881e88e4bf470e1fd1f526af4e8761d9e014ada47378d4d1ee5809e6f84e3fdd409217d85334787163cb2b10199e869e112e9437913d5f752b53ffce57f29ca6eb982242a8a57"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_6(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0ed9cc3a2fe2c5962224c904400b24cb528a34f129b78ff1005e93bb28a230ea"),
		nonce:              decodeHexString(c, "c9d5f38e2fd8e73f4ff26e4d6695a139"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "eeabc2a8005a58c264e32e945cd6a8e0ff08a9287c5172121e6a525dac730237"),
		expected:           decodeHexString(c, "2a505176f6bb0f79d945a9b14504fe991af7c1ed5dda06beae9a11dac932f178ff5354b921a3db4d5a48bac7f2d58e7f0fc964d41d6b8384bb31ca557a9fd1829e6439f462e5da13c1db7aa6a93684a6aefb35f57649499f2ebaede9caee47769da4fc259396f6f62bda0dd5fefe3461d731a73a737e04c31d87c779fbe4411a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_7(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ed806dbde9a29a5016c9c8181b9b21ffa0d0fc848f26b73f1f7e2d1992beded9"),
		nonce:              decodeHexString(c, "93267fae77342255573548fbe18e1e06"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "7c0fc90bbbc041b80e0bdaf42a87e3a683de3a6e0d494f04f30971c49be20dbc"),
		expected:           decodeHexString(c, "da7517c1d8dc6f6e92420dc10c3106d06d9fd8506e161866230b9a6a1981e150d84544e425509c4f69815a5d516d148a24bbec1137264c3ca655f83b179f44a346ebe5515a47bde3b0df21be83801a839de191b9a83343be5a08e4e9412d821fc81cea3475dfc8fc3ce0d7fc989e05de42d4e034c6d83c713bd5b504dcf4f8ed"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_8(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ff0a0ed640a93263446fc5f6dfa94a48e64292130ffc1ea882cfc158a1e3738c"),
		nonce:              decodeHexString(c, "8f6305e13711a9c3574dcb346c4f0f62"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b192aa9a37d01754ec5bd43e216e0bf9c5f8039d50fdd5b76beccf827ff1704a"),
		expected:           decodeHexString(c, "98ccf649cc8b1ccb38109e641a09ed0e049698da47ae5af638bb7e1954f1026db88cd6621d555c0d872831d87017ab033534327f5228192ea9cece87153cb5d5e13f91cce05bb934a8b0e39bce54e4d7faaae07dca8df15e6504f1fc724745fe15f417d377d734deaec32fe2d41045e13de72d16b59641e893188832077d225e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_9(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "424fb353dcb299a8de6d2b56271b69441a847b923dad190cc9cad7a13cdbf540"),
		nonce:              decodeHexString(c, "39a6cd61f7b816ca914ae090194a1935"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "19b65e76f9751bfcd76a04a5acfe14702b2c3e7afbc92fb559edf9aa8b953a39"),
		expected:           decodeHexString(c, "2c9d10a06519721386d720ff3e51a5d6d2d23f98ada910dd9e085af6bbc7d262cabae77514fe9bb026dc8f1a9b252cec8dcb4bfb1b54c06523a441932ea1823c44c758a6c9f88656cd42fbcd3076c006f1acbf6722fef767ccef8dbb5abcf8e758fa189b616d9ee6130b84bba2ecd1d26f8408736f1cd71d92333681e064b5a6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_10(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b32f28fef09893230ae7024714e010efc880ac923d05f4d62ed973635efc10ec"),
		nonce:              decodeHexString(c, "1967a747e4ec1d5829292abf68561c29"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "3f52dc2b3d4ea95b7fc02cca5cab3c2cbe14f28fb274b415ba353c43a0bfa3e3"),
		expected:           decodeHexString(c, "e30653617d01a6726aec9d5fe50e807dd3745e885c0aeff13a07196fff0584e590751bc0059a9242b2b31641a515e240909df8bfbd43e66a5463baf095ce151e62b7c494c21b61f6a275a5f52d32395e00b47db6448f7627e7df9542b5b0a6414f2650102b14f0f96565e73a563e8719e2b322b28b2f3d836f4129e5cffc0144"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_11(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "32c11a5cc81f8e15a3efe94f7cf498b338dac28c49d03f287d84d5388bba2e9e"),
		nonce:              decodeHexString(c, "70d75cc1c53b57fd757f484de917769c"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "98ff17b375f8cae80e8614afe81e96e0bf24bd161a5226dc700375d6c4972782"),
		expected:           decodeHexString(c, "4884c573dd45d6046202ccade93f92438bbd6237066dbe124a80d0eab6d3768ce2e4890650f6b16978eba3d69350ec9d4d23360d5776086ebf2136215f7df18476b2acc27988a01da4bb3ef6eda67c40f33d95850c167a73f4c968c7adea24fcb9c37226a8a79fb648edb433af4f9b7667fcd4ba4959a46bd8cbc49837b10dbb"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_12(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "563efb029a7eb80db9e0eb56cd8f9f08375be04697f99bdd4132db4663bd38c7"),
		nonce:              decodeHexString(c, "dc073529a2172891533effd7225b2914"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "1ade27b1dbc69e7457f863be5ca1e7ad84907f21a235d8df9d901a0aebdf6c6f"),
		expected:           decodeHexString(c, "4c8bfb95a75837b4eabc8914435c6ca9a12985116d8e75d1465afa72b49121e4134104211e00ea4a255f28ef0b3ca6d3071d39d370a70c0ac4d28cfcb5cd2e6fb523949b02355b7e55dc83822396bf7751838942ec23fb017fce87da43f6a3056ddd24a985dde9956d6e5b03e82f2448e6c5a739e270d7789f4189680a93cf6f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_13(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "67b8b11e7448e83e74751718a1ba0ae39196e42e50610a12e82e32000fc3e3c7"),
		nonce:              decodeHexString(c, "07fd7526ad35051012ed733f0bbdfffc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "a6c2993496d792f2c7107a2799caaa1ba43a15810088b1d896bab248387f0814"),
		expected:           decodeHexString(c, "c58db2f786d69fd30322b7deb74365f19043500c4aa795d66799eb3986cf5d9df2b4b3f79f3d374883a93a1f2f39660793aa5970c7a9d8c45a8a40b7dadbb78afe540bc15c17d83fe6a89d344381e1335ab5d7effab93f08da060f68ffd5113511a856c703b95d9c5f90cf838b12fd0979b4be0362dbf05fc4a26aaa3e8a974c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed100_SHA512_256_14(c *C) {
	s.testHashAfterReseed100_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "e4addf4141e0ceca2db1ec27663d8f77a66ba2d9c84fa9bdfe839f55c48bc822"),
		nonce:              decodeHexString(c, "f4a62497fd0abc14b60097797ec90280"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d363386c86a52bdb14a438110d56f524123db43137c048c2e2c7afe38232aae7"),
		expected:           decodeHexString(c, "5bcd6df7fc2037c47fcd4d5a21949f406b7e0966ae85de0ca1f95a2bc9fca4da9f6cf58b6689860ba0622266ce18a21f4dd8b91a0f4fbef51978d2e1b3986213e5fdd71f8b2d3cd43512c8510378342ceb98805c0e5a33d840c73d18e7cd33b8f1af8bb73dcd4a5acb7f855c03984461a507fb7babaf21de1fb4b7bbe248b82d"),
	})
}

func (s *drbgSuite) testHashAfterReseed102_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_0(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "235f349d7ba798e2ee590820660b858a71bd9c14443b95abf42a777b49353013"),
		nonce:              decodeHexString(c, "00f8c934e3b52266af11554dfa880536"),
		personalization:    decodeHexString(c, "0cdb83a2da79774daa4d3f76e9045579ac65b424d89778e4a5512683276fabca"),
		entropyInputReseed: decodeHexString(c, "5a3918027f129629f42ad49fe7ba3763ed24265e8b4511eb2d709a10aa711da7"),
		expected:           decodeHexString(c, "6167f042fdc288f9ff23702fc4b9be2c9f997718775e02d954efd2dd24467f172701d47ca35b50951384df509085e76ac33f158fb1da0cdd916e7f92905631f1fab0e9441e4424ae498ef72cfba7855c8033fbddb8428d20e99d6bf6fc71d4990d3d8da855782c5d13c28daceb29175fbfd0c1d923f6b4d1fbea12d9a9f4901f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_1(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d8ac43f5123d2d3981f8b6b823f197dc3020555b4f48439a1bb963a571345244"),
		nonce:              decodeHexString(c, "979f83705db88bda087a9c9493a1b27f"),
		personalization:    decodeHexString(c, "075db0176b9408824cce3acdcdb1c65a4377945f5abefa1d698e0dd0e99ea25a"),
		entropyInputReseed: decodeHexString(c, "3e7b78a7cd848199ea128d782992c54b9810bb243c92d23c5adbc00398108c62"),
		expected:           decodeHexString(c, "5005a71a686614ab011007a93afd1cc3188d2a0e9a005a353cdd21356effc792d5d5d95f6431241e75936993b7fdd873f31e90695681e929d7d5a97b500d64679738f65d4da0d0eaee86cbe286740fae671301d9cdd5795e0ff709c4da46fec7511a9ea67022dc2156db32b0e2681c44b191f227bce3a0c568892b53d02952c5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_2(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "2998dc4136c9b6f1042feea93b86779637647eaeb66c575dbc1a893a12f31a34"),
		nonce:              decodeHexString(c, "ca9c8b7140fa53baceaa8d1d6ca899f3"),
		personalization:    decodeHexString(c, "04de8648a582d4c980d3ede3352b66d291fb84e6e7d690192555057bf771375b"),
		entropyInputReseed: decodeHexString(c, "d9912dff1c342998395c8388884bf0cdc9f27f06855fe55d35ced3d2e6d684ca"),
		expected:           decodeHexString(c, "8c34d465fb130d4a7dc7bd4db928328b37667860dafbb0cb712462a6fb42f7b2d47a1f6fd0f9946653d150eb4d1e098e4eb2871c8b6116794873c126f5659588bfcdf8873779401446d80b1fd820c714ee9d4f853bb63a5f41dc151ac421a57d6e100618cbbbdd04a89992634194817a00c3c0ea244bfda2b3a87978448b9cfe"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_3(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "1641e3fd901c5da915214c51e4bb85828b65e0a10c2d5c6b5ad5c618f87acdf2"),
		nonce:              decodeHexString(c, "9ccbf89695673ac2da43624a7e88a4a7"),
		personalization:    decodeHexString(c, "2b17b60b0280642fdd773a99dad3b786e763f64958c6142260f70b2e3b7994d5"),
		entropyInputReseed: decodeHexString(c, "9593b59e31ee77f787b0da7ffb48612dfa3006811740c139be7e82f1414d5241"),
		expected:           decodeHexString(c, "832b9524e1eea8341c4cb95fecd268a758a89d1fdd4921d892a2b3511bdac8a1399ab181c0a7b2c6d17ba00d6ef526f45eb11d5d3b7f4ff308f4a9273c30993f3fff8e4fc5bccc6ff569843280941061d38ca65980ae2313fb945c0f23d74e2858d984fb8cc8c335c3e294d9c2e98a8967aab616a773f3466535a2853ef4afe7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_4(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ae3552e0a8fd07fcd89086abbb92295fc922b7f36467c086ce3ae490c54ab3a4"),
		nonce:              decodeHexString(c, "d75ac30f239db2f0319df6c7ade7c4f2"),
		personalization:    decodeHexString(c, "ab0c66e445d080d94138cd32e78467a85197d84f0914b36368d5f57a9e2ed88e"),
		entropyInputReseed: decodeHexString(c, "abb013ab7e8a27efec6588bcb714cd4da8e765542cb0add650062a0f46c3daae"),
		expected:           decodeHexString(c, "2be58b327bd7b1a25752fbabb33e78144a966c60baafe4e29b492c1c673454f8ab3d58cb049003a2ce25952823e151caa49ecccafa8a26591e6bcf0858e1517a5d95b8f21aa73aff96d5d0bbdee855477009f0a918f5aca72651f000eb3fea2e4fcce0380b9148454463fdba0312c9f559aa27e90a75c62946126716758a080c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_5(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "43108503f4326b07c72ff7cb4d8ecac8e03e28060689760771b0a803e66d9520"),
		nonce:              decodeHexString(c, "bffe6671c68b5a9d3328cc0467040ca4"),
		personalization:    decodeHexString(c, "072e86a99cf8a84e68d6acfbeedbf222d7b8111a5ba16471f33d54ea4386c3dc"),
		entropyInputReseed: decodeHexString(c, "bbc82efa21dfc6f0577ce06aa20313078212fa6e7d65b25f7779722f16734d27"),
		expected:           decodeHexString(c, "b884849ccae8c40898ca31979c14b5488a4ba2855e26d81626c4704859f8b4ee0722489119c8abd2d7f75bf88db74221b754d3ac6d18edd108e0627d8bdfd0e83c54c174c4df28d0b0fd82bac66b127ebe3724de74c70ba1813faee3610266fe69cb9d4c29920a55d19cc9d6b60f2120b97ff47d84f090ec56cd1f189ebde3c7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_6(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "65f84a74fb3b242013c3ba505882095acc2ab3e8f7fd5822e24668adef87075b"),
		nonce:              decodeHexString(c, "c1b3949610c0f83785de7cc53c6ae552"),
		personalization:    decodeHexString(c, "03efd8de317c8e5087567e3f52117f0c31f49c4d88d6aa67624a28a8ba7c33f9"),
		entropyInputReseed: decodeHexString(c, "569c911fcb31e722b60866fb5a5e7311ea0afc4d2b246c34558e8e6c42dff154"),
		expected:           decodeHexString(c, "087cce258bebf999a65feda5a3cc67af9b6370cdf17ac9bbc622a840f2983811e534788d0487f5765a2d04cfa74d70efae81b1afb46bc388e8ab7de1881072e82a71c0e46e0990fe1d9f32eb7ee94ce9075105ae228625682970659b10f38231bbb43d06f739e8e72ab1cc54c2e4c3cccc973932493812a65ec777974ec4a26c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_7(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d15352d0ba48860ebb160f11b76a195e1b73233bd1baff1ab90692cc53ffab5e"),
		nonce:              decodeHexString(c, "26672535defdd049e38e4bb4d5d1a3d1"),
		personalization:    decodeHexString(c, "37c2bc099ba9278b80f55587701ac84502965075de57c9b0ca1611f9da606734"),
		entropyInputReseed: decodeHexString(c, "3dbd380ad972ad323120baeb55715b10f9d8e1efb1468ca0ff39aaedc1d8c0cc"),
		expected:           decodeHexString(c, "9d0b49d64334c990952f0907fc4ffd61082b89e06f4c24252339bcc47233971e7a2aa49194af18a989031b5bc87ec89ebea27b24ac600dd60ee5cc37ff0ef1bd8d32b0c27d78081664850104cc5df8624617a943b5350c7d99cce674113d9954ffa05b6312f6775bd9db27e4ccf0b20e4bd113ea77b54c1c6f240ab21d03cb0a"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_8(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "646166b9463a1b36381ddda57576b6db8ea9db4f2692562b99a8dbf3535f5f12"),
		nonce:              decodeHexString(c, "62a64f28943a5b200b93be1f46923cca"),
		personalization:    decodeHexString(c, "b5f64f4a6d63a4f59b1934b717c2485982f7a1c429af6f474f8179a2f37789db"),
		entropyInputReseed: decodeHexString(c, "edeb6f747546c9a390adc6d7ab795ba7409d83b5a0fc39ca130b068c457bdebc"),
		expected:           decodeHexString(c, "7e49aa688a2b8386540dc03e5f094c552430e0397f3662e8f7fa450395cb391e5a76d00255fa0c4ec99b2f7bfd9428a68950dfb9fc4e22a5972b0edbaabc1bed54645b95480314d65dafa3793eb692fcd412cf5b3363c63178db6f53d45091b24e6426ba551660278354b674d00a061cfae0e7f4e304e0a8ce97d347ac134ad0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_9(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "dbb67a65a60809fb3db077ac4424ab83dc9998db4a49de5ade94327c931379e7"),
		nonce:              decodeHexString(c, "beafc76ffa265e0e56f7a7bcc9e8e213"),
		personalization:    decodeHexString(c, "62eba2c67d3f8183c783abfb91f862674a2ecc5b1220d140edfc65ccce4afbfd"),
		entropyInputReseed: decodeHexString(c, "7d8a4f831abb82fed746b375087b0a94ff210e8f9a5686280c9146415eaf3b7e"),
		expected:           decodeHexString(c, "39e6eb5999fecb56694feb507f4c51cf96e0619b320314fe44b236bd1d66083a1751dca09aa60f9ba45cf1143f068c7b61ffaef455820e7f980e09507fd63cf0aca28cc5d6e7a96394c7110a0973c0b4364dc64a872d6365ba0545f854c83c014ce84e86d9b9508090f3ea519b9253ec2afc8e9fc3e28120fa658ee139d9c79d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_10(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3f78ce0552bd65bf20b6279aa8c75fecbe894e5b55d1f60b1b3d19210bef8fd4"),
		nonce:              decodeHexString(c, "db2079fc9af91f4c7a4f3b58f0e77d2e"),
		personalization:    decodeHexString(c, "ba4ae607af0b8546e6036e3edeb26a220c65e677a469ecd3e2d6ca57b9520fae"),
		entropyInputReseed: decodeHexString(c, "a8ceac04932448d756d3eb3ee7afacf62df2ad2c5b8cda4985ed48e02a4c34ef"),
		expected:           decodeHexString(c, "6d472824f4bf4f3f821b6468671e83478b3a9f8eacb9c797d0ce5306c5509ff6b504b9c8e58e1055a67e0558e97371ed1addb04274298f7be91f7e9f416800f4ed280eeeb8b33d794d80c8dcc2034613f64cb652e368d5fad8b7bce438e7fa91d07eaa2f0dbf1967c878fc28c2782aee0cd5b6a4941f06ea6c7aa6c5dce70b96"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_11(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "2d8c209b15f1b6c009785fcebd396135f69b416a66292815ad250d06df3687c1"),
		nonce:              decodeHexString(c, "6f56d361478d54fe8f2621e99e806a94"),
		personalization:    decodeHexString(c, "8d822e5d814031e3d41425b15691a272167d1edca3efcfc4b2e56394a172beb6"),
		entropyInputReseed: decodeHexString(c, "13eb16a203d7a69b28f8accc40bacab38368694d0366672703e7f219f6b314a0"),
		expected:           decodeHexString(c, "0ea48915496eab416f6420344436abc9ec563735911ec438ea94347e8cfd8c618420a8e631da1be630554e6f2b24da4c7fd22d68a3bf6358b895698ee7e320a81ec9a6f684c7071a2f0e8c268b6a91d148593e5c847a5f92dbfe32e1cfa4f0c689dacf3ba1caacf4f1836954c835d5add7dc56a75f63a8185ab5a156b4f9c97e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_12(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a08d760e3ae1f3e648ebc82e5793ed507bdf291ffb3ba9de7916bf37aefdbc14"),
		nonce:              decodeHexString(c, "102a305bb49c1e045b0028257b4a6eba"),
		personalization:    decodeHexString(c, "821e85fe3efd9aeb4040cae09dbe7b3baa6fd4189b9601ecedc5457453658980"),
		entropyInputReseed: decodeHexString(c, "7538cf5c8e2728cdb4ccb88852298dddd9e9b39b7e12d7f8e2c3201ab54e4b99"),
		expected:           decodeHexString(c, "77dc50cc3bc28bddce3a2a5995d32323a71ca65a66450d5f5f22f02289a1ed9b9018c009cdd4fe9b98a0eef6d702670e6c113389f180b23dfc96a891c16facf3b2c7f6d8a5ab4c74d67024b8aba7d4bb913249e94b0e60c5127bbdd307fa28d362d6330c7838e50c29cbf93b10afddd389d8090b0b9a1a8eff30e5b0d0c99236"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_13(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f11c97d0d343b928180a32d61f852c08d6ee44710e771750803b83dee22a2a0e"),
		nonce:              decodeHexString(c, "2f7e26af2ed056e5c8b507a32204e662"),
		personalization:    decodeHexString(c, "8a60002a9b21bcb2e544206bdea00692def5b47062510f10b56e5a972cce18db"),
		entropyInputReseed: decodeHexString(c, "cdca33cf750fc134ae4a4b6d2e45bbcac7a4e66380c02954645fc8fca6a85b4b"),
		expected:           decodeHexString(c, "85bc17acb984ed2f47d424e07a9251d519cf5c58fce0671df3a3e160c58b0b9dadf30d581097cea51a46c56494627d9fbf97dac5a38e5f5e7a794be4756e014619cae0ffd95db0acc13293a46bc5b8194b88d8734fbea9fc3f1dac4d714cdfcbe8c28bf6361f832fa594e7752853bd718d0135ae0a79ef55410f90909e67d04d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed102_SHA512_256_14(c *C) {
	s.testHashAfterReseed102_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "355be61c368eeb9fa3f761826ce1ca932cab4128b999491162e8aeb47d7379ae"),
		nonce:              decodeHexString(c, "f5c08a86b15bc9f5f9d5792f51ed69ae"),
		personalization:    decodeHexString(c, "ac3515544638a3fbbf5e4a534df581fa57a85a3be680f7e1197993e018c7f6cb"),
		entropyInputReseed: decodeHexString(c, "c791826ac17d695c46038a1fa4c3370d645efa8f70e84076783b53b5d2266e9a"),
		expected:           decodeHexString(c, "04bafe6b991a93fc2560642c8c424a535d88b79a75410a0422c0f78ebb1b5e4a2e5dcda8494c2d13933f3d5c1130bb8fabe8cc5bda45e877d15618173afb79cd6b5e7dc2c65ad53eb0098942ac866721eb86c6b049fdbd22bef22a42f7c8b398a88e3cfc8eb498b5ab197762b46721e20fd781aefe4e395e701b2e2b80fde359"),
	})
}

func (s *drbgSuite) testHashAfterReseed104_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_0(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "e5701a7b27835afddbd2c40dacc0b669d706c56f7608a5076a4bd22cc6cb4fe9"),
		nonce:              decodeHexString(c, "61b8c01b48b54b137ecfad3050ba5bed"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e601c5d38bfe28e45e930261e723665fe751a98dc7571e6b3dfe4bf36561517a"),
		expected:           decodeHexString(c, "c553311f244dba892c30975e26dac49f6fcce8c32a4815417754da9c0c18fe8cb35af8cf09af1b9bee530fdc0761d8d3fe96abd8ccfdc3e3c9149e56de6731596b4dea85e4d0f53a57f38370cfd42b175698125718838289e71bde792b343b5c74ff13fb6665302131b8773e37cdd34824ff59d3e15184c41057e7fd78534f28"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_1(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ae57968b688866d61eba36d8d2cb19f5d0689874b4e25d610f7092872bf622ed"),
		nonce:              decodeHexString(c, "cbb2aeb88e920400870768f949889bf5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "053b484add88b1bd696419c4d249b30cf107c995e5d60bacf75b611105fee5bc"),
		expected:           decodeHexString(c, "f15273147f975378e932c8e2f6018f4a7c6df5acced2bd21859bc90e1fe78f986ce6a107d9b1c9a55aee357125c1ef76facda02544c826dae74451ac01516b5f68da13a167aee8c3bd508100efc44536cd243ca226b9d87ee1e32b11dcf1b152f399f42cfca5607ecc4f8a37bb7bb9de0e782d52fef464e18dc2eb9a20e758ab"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_2(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "07e272b97a3827efa6ab255d2bc6bab81e43087c32aa879b5ac0bb935d1f72b2"),
		nonce:              decodeHexString(c, "9035f9407a30d75adaafc4c1b1f53227"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d9d33d1cf4444640e18ac43f92b0930d85346656ea2b72162d1191d7ed828e22"),
		expected:           decodeHexString(c, "acc3d0f866908ef9d7014a68809e0d04eb9babc041a134ba15515afc31c340327e37243b8b48fa46dda2f41fff8ad9ee81240796a3ba8bdd436028e527cc22c7a90c1e39b0aa106c18b635ec61cf6793bdf56f8aaaf568bfacd518d56a2cde83302edc18cdb2c5a2f66588943423535411742be7d5198a642e92097879dcf31d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_3(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "6c99ebeff732b7756170989f0b15f50253be22f3ff97ae6efd37e8ab18b304de"),
		nonce:              decodeHexString(c, "77811f15b928b2274e9065438959dc13"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c2566497cc7aab074d112fc9d6aca390828575f14be160ad0c9e0b15619c5fb2"),
		expected:           decodeHexString(c, "fc5358d55c043aef9f3192a58813c6038a60219c99bb4d0ae979b5e68b1ca5e57402348c3c430785aa960f38c9461aa760f0c762fd45cf974c63bb3be2dfbbca68bb89bbd9e7062179b586f7aeb51aaa0c004385259c2724a928863e1daba844e78d11f0f428069a85d71023c0dfdc933fa711be38df65a6f292630c41f46e48"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_4(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "2dcc761a40727c66e60a22190973c4a591ce0b7e1aeb3c394b6666aba600c195"),
		nonce:              decodeHexString(c, "8a78188be701a7a77000046a5bea425b"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "5fae1d6cb1ae904f3af5999d5c1d219dd6d91e39d385ea542dc45d0602fab80c"),
		expected:           decodeHexString(c, "aff005ad3948f360601f824bcb3c56602c583c74280886ac8533497c4c5941924c206aef0d2c9a9618d4b1c5466d17eb8aa52ac7fed713cc0c81484f6eced984ac861c24d632ed412e266daa5072e30725415064b78458286f5ac062cfc04f80aa7614141273635724d455ac683a6a7bdadf6b5831711ad8aca8ec759f454de2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_5(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "51963f0ad434671a83057a0624ccf1d3452af2ed95da2e3f30d4b0425e5cc004"),
		nonce:              decodeHexString(c, "8af9464470cf49cf9cc206e9de52567d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "852c8958fb77819e5f27b5902dd3a70baf8abfb65a7b2de123e29079a3b7c1d0"),
		expected:           decodeHexString(c, "125db63b92d8745b668cc1c1baaf02d589ead0892e07553c9911ba0d5978490523bc29547bb597b9cb9fdb45551eb4a0cf94d03607d431f342aa9c51bb4b144304e0bb439dcdaaa6146e4b5a4e5e4db3d8f4408a63ecb7a78190f46de6a5021f30779fdbfc1b6fb30d09facb44f816525cb4cd0ae52f1c34331f9a7d8fb39c1e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_6(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d8a6ccfe26a34a23c429eb071325c3c7ce61d98e394bbad48430b579d36fdc1e"),
		nonce:              decodeHexString(c, "42966a2aeb8036bbd17adf1023dd0452"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4fb96f592abe27e6ad3429caf5bd63532995b0b6568e713440f611a1e0636230"),
		expected:           decodeHexString(c, "6a65c6c23e1d27ef9900d4e901af70292c1ea7e2d9e0215c01318f8ee3af542e2fc14773e6e80167cfe0e27a73572740683e0a9d724691ce64ec595dfa205b888f4bc77ed0cedb2519cd915360b91f38b1b07189054422a25ab38117267ef6a63cfb6f5c11f068721e1e715f2cc6f18371beef8963fc3df40936df70584ff5e3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_7(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "f861825d554217c7316f9bd4d5230907504ac5fae35e6f36dc05bcaaa2785580"),
		nonce:              decodeHexString(c, "aa0cd27ba96417a2b3f13a4d6036a97e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9ac2065743e447b3c5c7dd34533174394a1ea98f60a41e027d2975b9be27d485"),
		expected:           decodeHexString(c, "3bfdce23fa2fc655471347efd94eeadc3ab386970353c75866b2d4b500c9d862f0b6078e75558fed46a8a77a61c5c1611c4212f700faed05dda39c35259fbe82455f3cca08e92ea20d1403eeca6da8101a478826c9d0ab6f6c30feb58a468a9c16ee965efc37f44b950b132168a2034825bdb123c6eb603443b842114c5db0f1"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_8(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c82c9468d5499633a1cf77d45df8ced069f43fa8f87c2008a3233e78d9c37fe0"),
		nonce:              decodeHexString(c, "c47c555c154decd24c0350905176c492"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d580d8c3a3ca72fe538093103e9f5dd4dd0032b86e2df71777a74ab3a7104cb5"),
		expected:           decodeHexString(c, "b2aa5e232ab245caf14a60822706ca8bd8e5e181c11ddd16a18fb0159c309577c859a4ad59715783341cdce9315a6aeae3b4f12c3112f4763ab487ff86b8e3fea8f9b4136a29e4c83d3430264e8ee3e646d3eb620c67daab6a74173b5ce86080bfcecae65d11efed10c68d8f2f4dc845b75e9328756db14b197414ac4eb27b77"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_9(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c2ab76dae1e66b2672d567af47aae64ea5c016de1a4b473fd5b57e9595cabd87"),
		nonce:              decodeHexString(c, "d8dace830915340c26b54f08f252abe4"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "bfe623703aa294d199dce8858bb1b0dd5329e17410b5745770c9d900ccfa405d"),
		expected:           decodeHexString(c, "f0993a1aa58bd057d61ac6fef7dbfa65839e16d8f5c738f1c73b7ede5a535db7eb1fdd6378ecabba18493261c6e67294182633fab3b33f16fcde34d05e8f9413df8dba5bde84cb54ccf5d40e34d9a9baa644dbf284c5e50e23a9fc4d55012239b21aa568b48d7a929a3332fc41cd39a116c8898fd243fbdeebea6a75f1e7975d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_10(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "1857b509195c9d17d036fd58ae52f31a733a9287f1d120336b49f96286ed18aa"),
		nonce:              decodeHexString(c, "ccf3b16552600604c5dcafe32262ddd7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "2a7cba05522a4aed466d8d8df29921ad6ca0fd123abcd4c2aefac2427f5138d3"),
		expected:           decodeHexString(c, "04d562d7e51346c1a97c99413249e863380a714bf4127577ab64ed0f4c2ae956ee8d0c952dc57d3408eb8017712193a2ed123157827a18795c61d89097a9c65c543a57cc19992a3bf99a76e0523e5146fc73e651eaa0172a25e111b46d053acdf66268eebf533364d3c34e0243cc07af9fbf42fbaa6d440b4caa3a14ecd77068"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_11(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "80ff659c41bba24d949a3188e64aaaebaeed48472e6ddf448bf47646243c77f4"),
		nonce:              decodeHexString(c, "6c26e5f583fe4de005b708fd2efd0ce7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "8624e708708552a7ae40ba77cf014001021422c0ca1b76b9e938a1801182dc9b"),
		expected:           decodeHexString(c, "bb598bb7b5defacda8e746cc3a0a20b17408ef34deca100465a595c2b48f05c2d9ef18759fcc9f9ae9fe5eea9e4f4fe4e0c7910a41ee244831bdf0cc3af038c2cd59bd9c2e73251d1a0596e4265f01b2caa3f5f34be5b2b97e76039d88df34d6f4bcb682a51e4916b0bd2e54cee1c6793cace49567555370395813471a7a549f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_12(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "4a86d4bf4804eeb1479b1b3ba7492d23560255d2e7eef27b0d9e73a911bddde2"),
		nonce:              decodeHexString(c, "ac67981042286ed3832ec304bae1912a"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9016df4b3ce764d001ce5dfd4aa0523619d0f03e3a9ac1ec028600fd5eea5960"),
		expected:           decodeHexString(c, "6bd1308e623ce1163153e833296b89016272b2c9dc59f5ed21670d0ba78e03c80cbb5b24f1ace88053b9c62e15196d30f21990c69eadfda13a7645d3b1510ba67c55cf56fa9686055817cb2f87b61741bd82eace80e033e8152c2bc04c62f311f9ce7046c6d410abc448bca13dfbb7b89d900cf6ffd5c454be8667845fb349b6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_13(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "895226215f6d276564914b6772ec2664e69af692a7fb936c9c436688edbc62cb"),
		nonce:              decodeHexString(c, "a9572553b6ae846c3f11446333b9bcb3"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "9bb8ef32f07c50c777be034f97f76b4ff43f20a95c21a22daf46aa1832c23bfd"),
		expected:           decodeHexString(c, "936d0951f038f4d53fcb49aad0986e3ff208a035096653dd6f87d1d1d121fb57204b950e645caef58fdb6d96ba736d3f3a40789f6435d49e3173aa8a9ba66bd177c33b280ac77b2ef499f138109bdfeca97680d4256e526fb2487a5dc28c2834c3decd7b7c10e5bb59a7e6eee0b2cc2775a8e91af5513b52db755cc7eddb33f0"),
	})
}

func (s *drbgSuite) TestHashAfterReseed104_SHA512_256_14(c *C) {
	s.testHashAfterReseed104_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "62841da5a07dee3586ce0226c8b459e23ad4d7d3d7a0da93247344e74e237a79"),
		nonce:              decodeHexString(c, "25cd414fe4484589fe3df8cdfc24259e"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e95a49a1df44253238865442cd27ca845d880339faafcfbf09c5bae7fba5d799"),
		expected:           decodeHexString(c, "86e91fdc329ee8fe0719c46752e25d37c3d6da4d3683851f48591a38589e647ebd49fe085ab398fc6f16c82155065a807253517fe77ef75cb87967754f6ebd9c126f349af535d298554006231196d4200d3e1ca34ca13e9b65745942e376bb0fe5462e0f08729575a95a41f61dcf12ce164fec57695896dac585e62c348a29fb"),
	})
}

func (s *drbgSuite) testHashAfterReseed106_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_0(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "bcba2cbc1c9791fc89f0ab2dec2b11a5b7e9bd87cdd88e305ec70c0196f10c0c"),
		nonce:              decodeHexString(c, "0511c10d243ad7e4d5246d3a757910a9"),
		personalization:    decodeHexString(c, "c1f18c48a62bea81b6e261aa7514e9127714d3904bc9a64b8153290e428a1b77"),
		entropyInputReseed: decodeHexString(c, "50793585a0f3bb37d15723b0cc18d8680c8624ae38309625719fc919503d90c1"),
		expected:           decodeHexString(c, "fce8160695400a4552448232bec1f45a3a8982d919d4de6c7431c46aac02e15ca9ba3cd7a2c0dfd9f73e27f7b6608cb87b186092d772569ea406e3a9562b3af58c9cd3fe7616df45fb2fa5060da0b883fc26dff6fc76896226b1bf9c7f784947754e3652bebe97fc2455fc36b3b694cfb9f37ee51790eb5e4ed3d5ff155393a7"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_1(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8d485c24b057911796c04d8ad40b7dd6756cf35c3ba6d79926891d9424ce8fa0"),
		nonce:              decodeHexString(c, "344b6f28f5e83af65b2a3eabd1c5aaa9"),
		personalization:    decodeHexString(c, "269cda11bc81fe85d230d64c801eda09aa3051d6d712b6736ad4d651566090e6"),
		entropyInputReseed: decodeHexString(c, "2456f3b2df53d70eb83ffe6e45c91233b28aff6665aee28fd665c3aa5519be3a"),
		expected:           decodeHexString(c, "6cc3a35cd2d63e87488ab3c7aa02d16a04d672593c10a61c9760fcee4ce6f370b813c26be8b83234720493582a92b816ff445effb7448de768572836fa941e0fee5bfc4bae9726ac2c3d3b0b9796d7c706121c91e699f6b7746b88983772418bb496961aef29d168c707d779ca92168dd4922b3a1e20c273aac912ce8ce5e0ad"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_2(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c6c41771817b5986da758c738a62466472a7e9cc72d2fed9c8dfe58f797b7fa5"),
		nonce:              decodeHexString(c, "5b9dd666cbaf593d16c500adb1e8a077"),
		personalization:    decodeHexString(c, "5270e554dd0eb0f87800a2e90f840a46e973c8288fa97f9d7a6eaeaf253e493e"),
		entropyInputReseed: decodeHexString(c, "822ba8d6c330c246c488e274659bb4ca533cc18656b9d7869f900778000c64e7"),
		expected:           decodeHexString(c, "4cf7391eaafcecef489d1cde06881b74469ff04b9b9acd20544c859d79aa04ceffd0174f7faee644dc801a4420f9d02543c0f589b048997c8d610081e31b5d1e5f1e39ba6fd515312b7ce2f006791d79e7dc02d2f39d77f276399fd7097848fb1438c2fffcf7a686221bc127df2e1cb83d37067dc329b980299d5e706b21ddb5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_3(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "df164f8827dbfaba39edea6a902828ab8f0dbf7d5da7002febdbfea84a9d6b62"),
		nonce:              decodeHexString(c, "817d7b06bb08109e51ccf8fd00259809"),
		personalization:    decodeHexString(c, "1c7575a3bc41b1d08e88dc27185114094989ca4dc4bbee073a0157ff5dee0cb2"),
		entropyInputReseed: decodeHexString(c, "98f5d9d49c30cea2879ab1a6ddfc139ddd506416171b4603d8fbe52e933cef3f"),
		expected:           decodeHexString(c, "0ea237947223711f5afc5aaaa44b88c5ef1e86a7221936dbe3a358efb0888ed79392989698022cea9e8af69bc59e11291261f7739b8216ca949207e5deee6bc85b4a967a0ae858d20f9ad6d4c5d18bef3bea6bd94aef25c5c38bae9cc498eb44c6dfab61c6260df1b1e398257ae71495450753be05b15b5a4922922934685460"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_4(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3eb600d5090c5e9cb9d1aefaaac71164b3822e056ded343fa7e0f15cf5fb7c44"),
		nonce:              decodeHexString(c, "9e9769f81fabd6cc68d015f25fb46e16"),
		personalization:    decodeHexString(c, "91b24a5ab0186f530db5285bed7fee1574f80346d25de312e612addfe08b3794"),
		entropyInputReseed: decodeHexString(c, "84c4466523ba6553205658ae9b8ba56e09aa3370009f548792341491f27340bd"),
		expected:           decodeHexString(c, "394f75635c7f1de32d2304a08e282c1d0e7292ad4a9955a69f0e3b60a363a9e84d39bb5ace2718b7fd10b3c8e7b500be8c6356f7e74c141c54b2628ea338dcb3da8213ca02fb19aa0594ec008a4f5af4e3bec15d2c00d7f49a1c81f7a4041213ce5d41fec11f56580f0e305f6edd2154804e0440e77a5010f7eb78304760d5fe"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_5(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3772974147cd3e3b00d39b1cf88a2672ab8127a5dca5580b38b94dbfae668d98"),
		nonce:              decodeHexString(c, "a7de66248f502ecf5a08769b2b46f8cd"),
		personalization:    decodeHexString(c, "9be274631fb55b81d3810cf0d2dffd4ae7f9dacbaadc0342f7e7c5472b5fd9cf"),
		entropyInputReseed: decodeHexString(c, "30640862670f368d8bd86fbe59553e4619d0c4bbc4b34de8eeaf8cf952fe200d"),
		expected:           decodeHexString(c, "faff9fac229a9d5a8f8ec6c4a71385b73d14adda41cc5da2043afba5652e7bb974b22b73caac181580dae23c47f1c069001e4b81aad01c5c88d21b62480a1ff594041291c0c1ed6a8d67dc42818598de5447acc13284a5088e408d09b3bc8efc1f03a3047b4717f635dc698e1b78c5a1e2a60e80443174064d811c808521c213"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_6(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c8c12e08b3c7a4d81b6cf7a6fdb3acd9ffbe7766a8b52c657f74ca0323f36e70"),
		nonce:              decodeHexString(c, "29ea62742851205f1eaaeee678f64b8c"),
		personalization:    decodeHexString(c, "c6828c5888a769cf88d7d37863f81d726c52aafee9ab0243ddfee2e0ab69041b"),
		entropyInputReseed: decodeHexString(c, "03445cac9e1a944ca07f091d58ff155e939f668c2312a06879077f7d1d21a249"),
		expected:           decodeHexString(c, "ddb9986a50b6c1fa4ca8b03ba89c588a6a97b2a293c1b99866a5a52d5c22ce00fb84a0eb7466607336910778c9579b41f30773ae50a93ce6a6e15f0afa42f9c485fe4dc792abf9829c498508b5df058739873b7ccc4e8a4056e4820b1b772f0ace057fb49763d5cecce49f608373b1f2355254bad081a7abd7aeac0f4364cc8d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_7(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ee170b8bf9cf900a8dc0586ffead46fba7ed6f7b9ca219fd2cf38e80ef1086af"),
		nonce:              decodeHexString(c, "d51dd7df7e16526d9a58d21f7384a7bc"),
		personalization:    decodeHexString(c, "049719203c8691ffd613c96f3040f134a4086c54fb6f1d3befead91017fa6edd"),
		entropyInputReseed: decodeHexString(c, "a9e9b6bcbb06805e9ab1128c91c6cb86e78c88e5afa4ad7de9da3c89d1910b81"),
		expected:           decodeHexString(c, "7023cb8cc3ff87b8505e88f174830722d9cf44835d26140d810c6afb27e546e4be5f6a75fef5e57d71286522ebccccaab8c56e6e07deceec4369091447ac6a681048f0a313fdd216d02323ea972b9d9f104b995b2442bb8ff42c518bd83b60df95edfb959f3133117a51da58c0a314329e7bd2485cb4646018174dbef126a657"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_8(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5ef165d75a9560218b7922535b61f601c0f729a91f02e236cc2fe4a8890d4891"),
		nonce:              decodeHexString(c, "07f0da8237e4ed2773bd2d9cddf06203"),
		personalization:    decodeHexString(c, "3c85c73fcdd1a5276a6070b1bbd5c77cc34569ce716abb69dae39457bb83d771"),
		entropyInputReseed: decodeHexString(c, "d77e2434059b791d7b6fe36ef5e361714ca7e29be1537158564baa244768ea90"),
		expected:           decodeHexString(c, "5341e01be7de7f2e80333b192c493511471c2c509e69bb8d3ab9c62e815c73893846e3efa297aa8d195398610ae7e9ac2ebb25a4dd8bb3cb0d6a847615b6f856cf3184325694bfdb17a65f48a4b91a6954c82156256a77a1701394fef38a84c265e643f74e5c810ee35cd0a95f08815ef5533e250012d60a4561323316ef05fe"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_9(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "c99a28dfb7caf801d76353d38f2fc3eb705e36e24c2af9e49dc28cf06cb1f768"),
		nonce:              decodeHexString(c, "c5281cd8dd979470e7812f271cc7a8a5"),
		personalization:    decodeHexString(c, "977d3620db131bdb42aaa0427e564406fbababc6fd39b4b67d80ea73d601c71c"),
		entropyInputReseed: decodeHexString(c, "6f2430e12def384a0d3dfa2038d3f078954a355ac13510d27fe9c96e05087bd8"),
		expected:           decodeHexString(c, "bef87a5784120dee0a650b8ada95f6ad2d39ba6526e4657789f4d50585770825e2949a5899dd2af996620d87214b26f7b1c9f6e08b2d3554b8c763b1f24bebd8739eb72db21e4d3075f239b60164e3fa51808178af384da374571a705e162ff29627cc93abe8e2df92155f7ca7a493d6f9f271afa39e6b2a6292d75ccd395972"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_10(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "9f356b5d23dcf7c2c334ab0ec2c98b444b801f4ec033d7448b703d88347f5f57"),
		nonce:              decodeHexString(c, "0a757acbf989cdf0ccdda4db88d6f20d"),
		personalization:    decodeHexString(c, "4dcac228a6acb4a3233ed46c3a4d3cb544fbdc187f0a56b144a9e058ca20e42b"),
		entropyInputReseed: decodeHexString(c, "e782988929133e80977e9aab62625c14cc047a3588bf191456883985ef536680"),
		expected:           decodeHexString(c, "4509ab3a80b1190971e2ccd5f23fcbf0f0cc12e6b5ba3b3c96dd649c98fe031e7cd330226aaf12c24fe23d9cfa5fa18fe1dd6d019542adbf17247b58d4f653da1c2370fcf63478b1aed78d3e486c1b877c8115a0c12fa1af5d8155ed90fddafe2db121ce697b869a567045e00b439359615ee909a9286e711950d62b66ed0421"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_11(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "a6885ae6116997f0486c12f911b467b3a41b07fca9ceee9ea3bcc95397fdc98b"),
		nonce:              decodeHexString(c, "fa6f84dd2c46714639d3e9e3c9e27b03"),
		personalization:    decodeHexString(c, "185095c9192699777aec9a35fb822fc9ed77b7c1fc46490731ba857ced589aec"),
		entropyInputReseed: decodeHexString(c, "a6c9b8fa3a6ad4784f68541779b9b8f4838a2bc9e48adecce4c53217e9b49821"),
		expected:           decodeHexString(c, "a893f83897c001291e28c18c9c5ec588fad08842aa6c22db5863ba80bbeb923f79b7bef80cb0144c0da02fb6d372a2fa13c9ecf00d4415e5a734ee65eca5446c21cc8982dd75429abbcde6faec27d4e3a77b0f621f30ac92d06fd1b7b22d2bf8a8750051b3863187357067e6cbe3c599b50b0ed7a2da50ae6427a2f147315864"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_12(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "b2e60639a237f6e6468cee8b64a420f230a870540cbb2e0e8e415ce0d0bed2ea"),
		nonce:              decodeHexString(c, "bb25b808a5f94bc52ba593a256b8a6c8"),
		personalization:    decodeHexString(c, "af61a7d32f27d9867ee92a4bd29457131f965e05bc1463a1d40844b3542987f7"),
		entropyInputReseed: decodeHexString(c, "9085bae1fec7309ef65442196a4cd3eec3b62f7eddbabdb5c08911b09e1f047b"),
		expected:           decodeHexString(c, "b3c74b8e3061a2b25887ea68b28b23c10e477246bec3a45bf4a4f1cd362ca9a8c1da7dbfd40828738e40ac0bd35692a036220e2854b03e04057c2bbed32231f7584a8f1444aedda7093cd3ea3be855e9bc2cf7a2396e3cc2e2b154a188b4dde8e337ac9b79ef1d1471f1546d74251f3842a016023abf9279404f9f899571db9d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_13(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "1db46589b42243db6fe8ffef22b02d043b7a04dc379eff96636f5e86fe5a042c"),
		nonce:              decodeHexString(c, "d162aa3b89574eacbda93f92cda6ea5b"),
		personalization:    decodeHexString(c, "9636fd261e2ee6f7ffccd3bb614f835231a48a60234fe456140fa08afe2f593c"),
		entropyInputReseed: decodeHexString(c, "7c9c24789afc96ab44621fb37f4fed523f40614966554a27c9cbbc61a9e517fd"),
		expected:           decodeHexString(c, "d312c8f275bcf4637478b030413daa7a62c26253bc523de1a55bb031e15dd4ab94bc2a86fd77a2cc9028a44340d735b26e6b61883c5b3484e381bd2de4403c4aeffe43584e6f829e43a821d93f26da3680676912cf64f827b6ea05b19c9c05275cebc73989b412fadf23c8c551240d35f32ca031101e69e89d607a87935b7d07"),
	})
}

func (s *drbgSuite) TestHashAfterReseed106_SHA512_256_14(c *C) {
	s.testHashAfterReseed106_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "7b9e7545d3eb5c28fbf9e4ceae860bf77cb349ebc8aa7b55286284d34eafffe1"),
		nonce:              decodeHexString(c, "6407fbef5b119107a72f8c68dd3d83dc"),
		personalization:    decodeHexString(c, "78fbbe340d3f64262a3da5cfe9fb4d4c78bd5d526233ed17cc00b690a3ea01dd"),
		entropyInputReseed: decodeHexString(c, "80d6249c047f9039553d1e476b406a93199a65a7e1a8208f85592582d0f7fbe3"),
		expected:           decodeHexString(c, "de398481d3df49d329d54eebe4ceb47965ae75a72d6f1603da4696268efc78349907cc63fa387f2d566d0fd0a941eb04787881b73d19524fc6471c6d66ee763e89ffa7150b09fe324cf4b7739e9ed185c9e2c81a6cefb394016493ee9ba28ddb4732cb470eef916278039b6b2bb1b317805842b89c1309c7f90960945e4d4772"),
	})
}

func (s *drbgSuite) testHashAfterReseed108_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_0(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "8431d61506397e80ef35e229755c853afca9ee0a70f43f48a70bbba193719a71"),
		nonce:              decodeHexString(c, "f84eddf483f6972bf7b3305ce063bef5"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "39e8615359d8a653bee4d969e01f4d71b6e9808097871659493e7a7f59fcc439"),
		expected:           decodeHexString(c, "ee532248399f165bd429f3e4b0d93cc29ec6b1b268ab0f55eea07e8352650fc6c02fa9094d9ff4bad76f0ee04e31e3938094d0b46b1392167a458dbb3552fbb8fb4355d1d556158d73d89e745d6711ecd28afab21e15541a9399581c96236e53b828e2ac633faebd35856bdac8de491686ba63514f336d44c59bd69c118911ec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_1(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "866a3a712e3e98adbdb4bb597cfa462d3bb7e282fb2c9e147286bfb4b3a21912"),
		nonce:              decodeHexString(c, "ec1e3bce9e9345dc8106e5bcd6a36a6d"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c13be4d68e674937fe58ad5dbb106756a87767176cd565434fd73a8ea5cf5597"),
		expected:           decodeHexString(c, "fc766d1446bc2a834031e45ac689e4f8f66ce3a688f56b06c87dad6f6b471917e2887cc3e1946a2254e940023bfc02419cccd813e12c8c5756c67a84c47b0ac64e806889e32ab8597901fc36c8cb8a5d515e9ae85c50ea939e1a7d1a5895e71f6e92bbc88fc47a340b85097d25a5d4973b7714d17f07c77d1686af0d8886ce31"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_2(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "822b84b701bb87d90697c3c952ddf465f1fee6bb91bceee20b1e1be8260f0b4a"),
		nonce:              decodeHexString(c, "537312da52387e8e8f87a0b50b4a2a54"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "e2eb4a5d2daf8de70acb0b075494e0fd3278c9602b45db94c062e4b8f8666e9b"),
		expected:           decodeHexString(c, "57bfaafaeb6fe3730551160e49d17ca7c2163e5db6161a3ce8c7ba0613f210069b82fdfe0f3787083822d0cfd22405cca7bcb0958351935895b0bc17eb2a99e2362a973010b3f7a69b0aecfbfcafa6d8a7e89bfafa4774e2f7b49bc776ac976dad43b9541dd5d3be6bede6abde326e21da7f48a8d43ddcb8b8c81b9d3e9a8fcc"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_3(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "10978df0be846987409b7e567ac685cde4ec84b28cbf1f4baa183eb47ea9ef09"),
		nonce:              decodeHexString(c, "5f46249f4ff2d9dbc8cf98c12dce2dac"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "0be8dc5142eda9832cfa4edddc782b732ef1ab578dc0cfa50654320d6b4e6fad"),
		expected:           decodeHexString(c, "650df01dd3c977a065ac54cc9fe6bb588cebe60e2a83f03e9818d175947270d2aa0999aa6e5fedee5ee3a4ab7c62a19e95babb3596bf567dd7be9cd6b73377831b09d1533efec4890ce955bcdff5a1af813101b1ec3e3f3666efe7c587a2d69118a6cac0f8b55e9e96ee528895a6a5ef02a2f5a2df7fcbf118eaeeeed370a64d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_4(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3e0771195e8cdea0207d296354c6dd09f73569b31649b58e64b11917dcc3bc2e"),
		nonce:              decodeHexString(c, "8baa3addd1c9b2d5fa6fd93473d119e7"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "507ebc83973c4ee594849698f53a719f8e27c6438c91b6ff3228358b83bbe981"),
		expected:           decodeHexString(c, "d637787ae5e1ccb2b1ae8875c0aca9ef1f4984c4aad6437e51844ae86635dd05520b1abe5f17bb64e90d9852dfbe383b32f34810d23e6c5e891f9ff1be4d730b765e9f94d52fbcbc9745f5ee3fd9bdebbee1dc8c70efd903a1718069323b93ff4a86e8db6ec2e2f6e735c3fea3e75771a244f1f57c1528e0fc60fb8d9bbda9ae"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_5(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "940463932905fa8a8be58d2898a613dc303baf0e76a61fef11d9fcb2af6c2bad"),
		nonce:              decodeHexString(c, "58f6f3ef216a208310249c721006a443"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d7c186253abfaa995d72ef3c9a2ea70954e2dde001e7d060dcc64f5a997e81bf"),
		expected:           decodeHexString(c, "5431ed8874efdd44a4cdc3263449e186ef35aee56b57f5c0f590589e8f0117cbc4d73564ab7ada08528798d191e47333d6a186384d3a518447f86b50401786c680d43812230254cc16c441eb72b15200efa45f463549cb5e15adc2441a035de16fb81c12d1924e7d280f62fb1fe0f3866ca5cb6c569e006c39a17bddf013849e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_6(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "d032a9414c85d6c5c6493f1b402eabfe4c9b3fb12d2143f27dbfbd10f5647c48"),
		nonce:              decodeHexString(c, "a29b1be8e0d887b4412c404b694a3b2f"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "c3280188e211f945bd124f1577e29317d0d4f1f6f90c4065d15976194dfa2407"),
		expected:           decodeHexString(c, "0b24cd5291cc94e00148fb6617fe2203afe49e3b6b4997842022cc2113a391f282eda00aabd6414eb162c06d15909522da8c5245f53d23e15d1e29d7c07afabc6e1dcacd14e4ed8e7a3e73aae66612ed63352bee779d43bd137855136abb53d2f8ccf0a8b1d17d52171501fcdfb5a125d02408817d1d03e7dc5c979968646ef6"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_7(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "1505f115d9e6ad625aab241bfead47928366827a045f98f82b1544bfe7b36228"),
		nonce:              decodeHexString(c, "a374caff7882fae81dd5a27a7a9d6139"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4612abbe1f52ae0c08d839d5f11fad3533170fd793e513fe77d72d715496a8a7"),
		expected:           decodeHexString(c, "9edd8d1d30d7a91f7bf96083bf31ee5cd25c52e1f6910d462bafa5a3e4023c09258d2abae2833b0bed88ffce076577cc5ac8b5193c669fb03141dc4cdf4d861a53545e656540880c9f4a60f43de6b8c148ef5be349fd3b9ac2985b11a53625a004cf8486d9fa1552ece2941798e76f51349ecdc87649dcd823f5e42517daa5d2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_8(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "ef7385f43deb3adcfce926a175f408844a582de4642cecc82e783a25d0490853"),
		nonce:              decodeHexString(c, "839b47fb7536297c9e2cddede828d816"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "485641f95e2ca1b577d313435c703c1a7cb3b4bb79a917360929e3d2060aa066"),
		expected:           decodeHexString(c, "7b66505145409d865b86eba61c238ccb01d9a24438c3a291723066bf19a8bf1e102f2eddc758616738797c6348c784b28989782f144aa43eb7e72dc83210efbe26cb09946e493b6574001fde6f9f09d427420511b3cc021addd3f6c3bb741b4dec13592414a5e1bd911fa1ae3b3fdf2e704dd69406325e61fe37bcee2e5d86e5"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_9(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "60bd6a8b6c0a2de61f24dd06e18fd14006609ea4b3f82c94e00a7a356d65cdf8"),
		nonce:              decodeHexString(c, "0454f25a34b7ac46a9f684248efe99cc"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d10fe87566eae778b3614820a7713a06d702fcb9d412760e98deae73e7a8d846"),
		expected:           decodeHexString(c, "3bfd612a8b92605e83f6328545060c98672910f85543ec18eaa302eb4df3a8c8bb86a3ed4266eef62d0d9b484b17a77b83d07d086042fe511add4163883f859729127bd38e5b5e6658ded9cf8af7c6d0b144dc7938e8aaa7306a4e99a5e83091ac43007b8584244d96a9296f3e7c3c777fa130196dbfb283663feaa565f03841"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_10(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "818b066c4d78ce4f2417209b3e7b5bb48eb25a2ac56c41245ea7f8cd027a752c"),
		nonce:              decodeHexString(c, "33ea5b625fba106c2786aaafce1ce015"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "b38780ae620997b8a686f782e02585ca9babcd84c852a39f1a37a449aa3ca437"),
		expected:           decodeHexString(c, "42462aff5d6fcac225a736f7df0caade7574a5cd83ed7aa4839c8c7bd46b5174e0fb2f884d4ccdf30c64c5bfb7d8a0d08536d7e61ad46f920f1176f0ba54bec36cf67963d8785d54d3f8c69d072270a61b59db9071d24621c967860009eea3220b6b82a86e1f764c21f232aaa70af1c162a8fc5882a748564aed2f45ae996e07"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_11(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "1a7027c35f66181650b942c5385287c63e3861439d3b7886564ba18f4cba278c"),
		nonce:              decodeHexString(c, "3f31f7a44d71c46f444fc06476e241d0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "d08f7e7bfe973b3f703d96a26e643282dd6a5b3496219033bda3a2e98731939a"),
		expected:           decodeHexString(c, "814ac73c93c2abbb4e0786192a0b8ee37f5aeea75f9753e5a0c559d6e13b9bde00d2db9334844638c67c7fe48451f67888b979409bbc5281ab98604ea6ace8b72fc17e3d6dcdff0b0c4391ddb051031a604b027fa9c7956afe9040ed7d6ba18e032a91d2d0044b5f584b7ddabffa661c36c0c2fa6f05059e02ff5ad73ee5b0e2"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_12(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "47ea48f882117548af1f836cd2defc0a15fd4071fd95d04207159901fa9e4e0f"),
		nonce:              decodeHexString(c, "24f93f2bfd670a680fa5c95f3378a5b6"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "70dfb527604396fb42204d6273464870b797a9105361a4661977edd000e6c9a4"),
		expected:           decodeHexString(c, "15f57eab409b6e3cf85590671dd33813d3e44f5dafc225889ce19c8209350e64ece6217ace826196e7fb890e30927ae4798d6906192f98404a916479d689df8301bd85ee5889fe84b7637afc49514ffac4777fd827f8650dcbf4b90619e929ee29b7aded59816fc2ddbff4f767bb580aedaf0f1444a692b1158964b84fd1f659"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_13(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "2795a728fa5d1ab52321efa6b8e07f0a5406bd3379d5b47b2881d05a47b1dc84"),
		nonce:              decodeHexString(c, "9424605793983327e8e98420b859a7e0"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "4df5356180423bd174192e59c0472b8dcdc29a1e02bff621eef8907f7e4e246b"),
		expected:           decodeHexString(c, "4884e5429d76361c12ac1db26dc6e4ce8a2751c38b17686863e7920eca739519825544b6936db3c05d11f31c151632ef176d50407bcc2ba8393b62721d82af6bb1b53d8f1609d5ce89d827a51f9fdc9e1884a5fc4cc84dad51deb56edb98241b42f45048da77d3db8c1b93453cfc6b9ce46dedf12c3ca97d6163c9634d94a919"),
	})
}

func (s *drbgSuite) TestHashAfterReseed108_SHA512_256_14(c *C) {
	s.testHashAfterReseed108_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "cb391e64b5ef694c5fc9e8d225aa825a07b327ce286391184650f7e925829bf6"),
		nonce:              decodeHexString(c, "853640e7f7188a5cd2448cba272fcdfb"),
		personalization:    decodeHexString(c, ""),
		entropyInputReseed: decodeHexString(c, "71ddc8aad75e2c0192cddb92376129c2cb9b8b736715c2ffceaf19880616a088"),
		expected:           decodeHexString(c, "875c36c142b6f20d3141a867a78559422a413e4aa5098bf9de63b465a63a5a4147c781eea933297ebccebbbec9e2b73925283087be9567191f5c53cd344b9e652ec792ca4179dd8b39c5b3f2796769c3fcbd66d0b8ea3e8055c40fe330da9e95c3a547b64c1231b3bb95de54ba682f662db91e3d3170fcbce3dc6f2eb9dcdd22"),
	})
}

func (s *drbgSuite) testHashAfterReseed110_SHA512_256(c *C, data *testData) {
	s.testHashAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_0(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "278996dbb037a275971698054e7de85eb44b06e7a608aa7d9646e8a0b1f3ea1d"),
		nonce:              decodeHexString(c, "393bb47171896e6b3ade83e3486d8cc6"),
		personalization:    decodeHexString(c, "9de1512030eb0dbd1b933d600edef66564677820175d10155551111ddfcd6b16"),
		entropyInputReseed: decodeHexString(c, "a3be69a635073f21fc4dc191084229774afc6131d208160faefe4f7205b0f510"),
		expected:           decodeHexString(c, "ddbdd96e206ab66cfc72e95f1d9551a549d01042f327573ea362e60684d10f07bd81342c9e0535391d16f61f9bae076714798fc26fff729e334212554a186d46ac4907e9720c23e9e7da96ce830d189421ac79e457203cdf208c058e1aa2980ed3f5c826a6c093b7af36252d17cf6de8a9bc1b05389b90d4749272b547190bd3"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_1(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "3cf9890dd9eaa9012acb5ff2d65603e33c1bf64bc66edab6059ee198dc9d9d14"),
		nonce:              decodeHexString(c, "1606491231df54f4f855ccae7857ba61"),
		personalization:    decodeHexString(c, "338e3608dc403205cb5547563b794eeca9af0cab129e3d4fa44089d135bcb653"),
		entropyInputReseed: decodeHexString(c, "b9de51f9d39d11d4eef221a6f406df37f6d83f74b5b061723601b4706f9c1be7"),
		expected:           decodeHexString(c, "406adb505387bed7c59c16df80ceca9869f4e7584d3813eecf9177fffa36d356917f6397acdc697ebe6b8a56e8a5f064ce647ee36926ce5cf33da8be966d051a428bd96b39892bbffdc341927996a4c2018b227188c86755259af2469fbb19e20cad5185fa40f6c4558b84f333279b81186209193fd66b3147f5dc925365b8ec"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_2(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "eafa9548440c0785ae3b939bc5cb3e3c17062e499add57da97ccc16d39cd22a0"),
		nonce:              decodeHexString(c, "62e7b24bd0ff845c59bbb4c6c5fb1363"),
		personalization:    decodeHexString(c, "e7d083b972459270bdc9b3303e87ff80cdceb6faa284dd53aa3ba44b60805707"),
		entropyInputReseed: decodeHexString(c, "3f386c5e53d99e78c519c2f8ddb2add43d71a4060f13ab29cb27350672d8a7de"),
		expected:           decodeHexString(c, "efa3b13abd300fd5be3c27d4e38078fef163a4dcf650a60f25227304a5fa57049143df874ee55a5d5049a75a176739c3adce128c83d217c264eb9bac95b8ffe210d7b67830448bef8a471b11372d8b52d21190afc7c924e73debac48ed8bbae58c76cbe98d3ed221e8906b41089cd0a7e3b0c029401d24568aef7413d6dc889c"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_3(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "970f192838af08b37bed93144af2149146a4cf6cb18051f9e62c82294f88b40c"),
		nonce:              decodeHexString(c, "b4477a47379e9e4cbfafa54aa4f0c15e"),
		personalization:    decodeHexString(c, "c9ae9ec24dd6f28380aec8afec784f22058a8323256abbbf625978949f485fc8"),
		entropyInputReseed: decodeHexString(c, "aa72b2569b39bb44ac61e3bbffb5639afddadff29a4881b3867b2157bafb512d"),
		expected:           decodeHexString(c, "709cf6335eb02287a94f69e59bf54a6ade807b638c6e7a984928c6c87028c541230d94683d22c016c2d11599dfd5f51ac7396edbefd51b2fa1cfa1231f7d836f0041094e86aa85baff7774821569ea234fa454dd80a536c8b3ddfc0373401dae417180836931408a7ebdf63f985bf4dd6e9306706d17f273b898ac8b4ec5443e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_4(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "db5c8c35f1a51ebb258cf3c2094d67e68f9cbb1e78cac8d6e18096cccdb6f029"),
		nonce:              decodeHexString(c, "10418fbacad1658bfc3b47ac647ef296"),
		personalization:    decodeHexString(c, "5343b9c77328da7188b89fcd42d0189bc0839418b9a552a5549b2c0aa8d0ab5c"),
		entropyInputReseed: decodeHexString(c, "7328ac1baee6106e858909b579e77139d595f4e0eba3736b53c5d1ef91c9e201"),
		expected:           decodeHexString(c, "55c90c50fbfe6843d89c77e06e9bc1f4733e5b775d4f9360d7fadb0a5daef32adbb4749669ca5b0a7558d35a4ff2969487832583099be3ed898f6b95a44a34d45c624dcc0197ceb59c71231ab7516df819c9c241461fbb27401f54f288326bf1eb5cac89c3e6c8167c64ecea382b4c756f35709274e628a6eb5fa5149a653ca8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_5(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "e32040d1d3ceed0d21dba6e6c5b46f9f9ef7f80a9abae7644c9dcc069e698462"),
		nonce:              decodeHexString(c, "db1de042dd469240b742b55bf34a61eb"),
		personalization:    decodeHexString(c, "235e3fb0b26797ead72e116d82ff3734bb1a02b6be5c2a109f63291c141d678e"),
		entropyInputReseed: decodeHexString(c, "c3c2c044ce90759ae5787ee3037e9f2925dc8041aec240679ea54fbed2711732"),
		expected:           decodeHexString(c, "a97a0d5e2289de5e6ca419bbbeb35aff62a14c579516ac6148a046bd891dac4734c79c4539233517b5914e4a9ee2a3d51700e7486aca79418fa325928bed7afcadd601bd799cc982440a6884cd5cf527a4efc0f4d475794a1a3289209e0d14bc5301f00a251132121f42e23d2498e181f947a97fb617ffff45b984a09526aef9"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_6(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5ae9f2c90e39cedc578f18acb14394db49cb80a1317f5ab567a4c8b63a9e6550"),
		nonce:              decodeHexString(c, "39de769c5f4b894c686db2a2a3b97ad4"),
		personalization:    decodeHexString(c, "23c2d91bc109dae6f88ade1b37a399409bfe3abb27f09fb025fe18f485bf4b22"),
		entropyInputReseed: decodeHexString(c, "f333c012f5f7012927693d93d6b3d2a978f20beb7a6fe9097c98f65cf506cd07"),
		expected:           decodeHexString(c, "cc5ee87e9874271158c684386745f459cef08c66a348a5ff218d7be578bb3daccadbaaffd7e3078084d918fe60bbf2ff6f7849209b40a83da4d9b0e20055db2e7e068256d43e6e9513af874a244baef7a8b09a47be0632a0386d8d18ff4de5c72a9d0b6cc7d3a7c8dd382ddf82ea50f21b2cf438acacf8c8f1cd6f945fcfc12d"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_7(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "90ee010553829e81ea71c62ac412b60703458ede8aacab15e648dafa892365c4"),
		nonce:              decodeHexString(c, "21ebe01086e154f90b8ce4be93638f3f"),
		personalization:    decodeHexString(c, "ed0abc312898b7f93fbecf2dd3182876057898355e446f9adb3ca79cc2194737"),
		entropyInputReseed: decodeHexString(c, "32a75ccb9d7a7f6c88b42858311100a4f221fdd9f5ec4558b9d0b04ea5416f97"),
		expected:           decodeHexString(c, "1c75a2ca380ff16f5451bd66bdeff1e4d039b5d84f5aceffc6743eea079ddfa501afc131cb816823f57c6128462fa7d5da02fb2afe1e1b316e4b608e332fb3d32fb1c1bf52dd41cea2727f5fbf5bb554f468789305291a1c40b90693bed092a30ffafa222ddb9ceb4a12234be56e73fa677b483a8a74d837797f170d58e0d216"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_8(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5becb2000835817520c2c4edb04b65f94158e5c57696006418fdd389cb7d16ba"),
		nonce:              decodeHexString(c, "34a0bff67e1ba8b4e094b6929215fc7d"),
		personalization:    decodeHexString(c, "77f0602fd969bfa3b11c491f3807a8db031fcdd36562b15bddc8d149b5b783ed"),
		entropyInputReseed: decodeHexString(c, "9e48469e184947288143aa5a5d125446c5f2634fca489b369952ec58f8ddb181"),
		expected:           decodeHexString(c, "2d47788e75f5323d276ceef04285d14ddd1b2b8fa93ba36c0c75ebc133f24499d32684d8b95ff1e91b2527bc4149df188caa133d1d598a888c53fd6e4942a9bf7d0735a924c2ddbd02536b96aa68e699d82709ec2317e68149616a834adcd40f83dc353fde30a58733519e66539014b70fce662dc0cbea54480fd3054a9641aa"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_9(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "524b93986270ed76ea32a889488019031ff5621a0bc31eb5c39f2bb822f97b64"),
		nonce:              decodeHexString(c, "e49c508b8a63909ccd45ac12bfd05d70"),
		personalization:    decodeHexString(c, "c992da7cdd4feb6b8b90590b28cf3998879c2677b03ec36083baf66808e72ca2"),
		entropyInputReseed: decodeHexString(c, "ef517ea595b58a86f450fd337b5db814026d14a6c99e6bd946c8bc9d9369650b"),
		expected:           decodeHexString(c, "3abbcb5de10fd9b7468f37ce59b46955477ee0af263c38d0cecb5c5de541ef94b8bdfc935c121a2e51562ae88ff65ef2084a51c1b237da3f0b10db908ef4a278e288378a18ddb7432b9ec8de684b8381757e3d97f2fdf3874718067e7f7d0885e80a28af75568d3a007efcd972b2616e4f8c5664cbf5a4b388da4a3b538ccf85"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_10(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "0189d5d3d0137bf3f03f4f162b6dc488c6182c396d926fba3248a4c376438403"),
		nonce:              decodeHexString(c, "3f733070b647bb218d0c9ad20001b8f2"),
		personalization:    decodeHexString(c, "925a4bf63558dbc46301f5012d4c9c152c2bcaa547e9d055747a66009238e2e5"),
		entropyInputReseed: decodeHexString(c, "54e42fc749068b558d5ea0f25ac104d1a85f8ba82da688ebc60924f749a4ba36"),
		expected:           decodeHexString(c, "7d1223c4eff6e6f9cc7782b4cc71bb22dccca0a0ba5548ada4a9bf35f9b2f91125651152b825c5bb88078c39d777a69c382aafb035306b8a1f4c2447b871448e46e60faf71826e1c6205eef9e563a57cec8e5b0f485c72ba328d15c3907ee4144c248f2b3217dd62b31973be65c8871c35d84e9801b172e3de255fc96b4d013f"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_11(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "76ec61e312d61f39d7485824af93d2c4f0db9302eca03f45336d97f5cc93afeb"),
		nonce:              decodeHexString(c, "b224540bda117cd6b1fe4d452f089178"),
		personalization:    decodeHexString(c, "8f85076e7975b51d2961846b376330fdfe2c43f30d015747cf9e890972344e7b"),
		entropyInputReseed: decodeHexString(c, "d047356ac397afcfab37b7cb70decc10e6d7f36c9651755db80f061918ad2128"),
		expected:           decodeHexString(c, "18b2f8ed6dd6bfa1e6c82e6538899d000516ce71e5695fce18019dc8da4ef36ef3f2eca1eaaef8c459cbb95e487847994636564410d179fe63129d920b09cfae8a0e33c91831e16813c6c106a253f5adf15f8210409800d1b1c8d6c9d4c92621c9af90bebfa34e40dd27f95cf284ded7c6d3bcbca7228dcb10530ec3f1e086a8"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_12(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "5328e4373cf87d07454348f0b3dea49f50e3c774abcf5f5fdfcd255431794300"),
		nonce:              decodeHexString(c, "760b360508f4e356e089ca22cc86bd78"),
		personalization:    decodeHexString(c, "ba26cef77e762bc34cb01197a819d43b4d1d5fa6f67c6c9c39f052cc90ff00d8"),
		entropyInputReseed: decodeHexString(c, "f408edebb6d965ff477fe3023fc58611814a48a76c3cbc8fd60e007ef3aa74ee"),
		expected:           decodeHexString(c, "f9dfe7ef8115e322f081b3e5d2824cd07f951a8e3094e115c36faec2611026e719ea50899c9fefefc19b607c4610326f49801d6038fa0fbf3968ecd05291e96cfb3e0bee30e3992f4a4ca4ab442e131ca1ed63822ca93c66f264b96fffb27007f03ac00a422c7f8dabb8c15061f7b519c39282b5e7240fd27c17921cd958eeb4"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_13(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "68e99ea4077b1d44e9a87e5d3559e3a8ca831e8177f1a80e0ab775c5a37b3f54"),
		nonce:              decodeHexString(c, "cac3a47f2e6733225896aca30bd03863"),
		personalization:    decodeHexString(c, "6bae4878fa3628795aede9d57b6d08529da08772f50dd148f52fea773143b97f"),
		entropyInputReseed: decodeHexString(c, "722a71a59487103ae3c0c1212f7cd3bb6eaad90d75aa24f43d18850d4478584e"),
		expected:           decodeHexString(c, "594dfa973b7323f3f2ec08dcaaf1e4503d7e30eb2c64a2eee11a9adefd0e2a9b4c3e24b51af23ebf3e057f1546edaafcf3ad899a0cf7736f7165c33d4a241c0e46d6938d3d14bc384099cfd4f3a5e65e9ff246ca15ac587d2e2e82e02d1a7e0cb6c8b42b2f0ac94ab170fe32b6c8c33157da73349c4e091c976cf9ebcc97980e"),
	})
}

func (s *drbgSuite) TestHashAfterReseed110_SHA512_256_14(c *C) {
	s.testHashAfterReseed110_SHA512_256(c, &testData{
		entropyInput:       decodeHexString(c, "91159b129f0d12460e7435165cf9cd35828d88fe5bb5a30198f1fa1f59158e98"),
		nonce:              decodeHexString(c, "65048e5bdbfd1e37e59e810459ace34c"),
		personalization:    decodeHexString(c, "0aad93d9610421151c9bad2721b105e005cf2c26a75f4145de763863a7387db9"),
		entropyInputReseed: decodeHexString(c, "aec01af48fe09bc6d646af49b1999567e3537af08853bb250be9ec413a2259c8"),
		expected:           decodeHexString(c, "afc10652630d2e29e34dfa6e99ee96d3ed88912b820dd71551bcc7ab99254087ef973b63782e8931ce25cc7d294b9ef08bb7a00245d97f8884456d65a2438005d61e9fa4de1199d9e701f7d379ebd02655bd1fa1ef2c74162e7454534fff46860bf61540c8a7c2c579c39aeb1544a027eac4f7771f68e4e7f2d859eff66d505e"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed1_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "d9bab5cedca96f6178d64509a0dfdc5e"),
		nonce:                 decodeHexString(c, "dad8989414450e01"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c6bad074c5906786f5e1f32099f5b491"),
		additionalInputReseed: decodeHexString(c, "3e6bf46f4daa3825d7194e694e7752f7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "04fa2895aa5a6f8c5743343b805e5ea4"),
			decodeHexString(c, "df5dc459dff02aa2f052d721ec607230"),
		},
		expected: decodeHexString(c, "c48b89f9da3f748245555d5d033b693dd71a4df5690205cefcd720113cc24e098936ff5e77b541535870b339468cdd8d6faf8c56163a700a75b23e599b5aecf16f3baf6d5f2419971f24f446720feabe"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "28000fbff05722c8899306c29b50780a"),
		nonce:                 decodeHexString(c, "112f6e20c029ed3f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d9958e8c08af5a410e919bdf408e5a0a"),
		additionalInputReseed: decodeHexString(c, "911d965b6e77a96cfe3ff2d2e30e2a86"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cd44d996ab05efe827d36583f143182c"),
			decodeHexString(c, "9f6a318212184e70af5d00141f4282f6"),
		},
		expected: decodeHexString(c, "546165921e714ad139022f97d2653f0d4769b14a3e6eefa1a016d69ea97f51d581dcaacf66f9b1e8069441d6b5c544605407e8e7dc1cd8e470ad84775a6531bee0fc8136e28f0bfeebe198627e98e0c1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "501903be9f3db7c9c2df6ab142477052"),
		nonce:                 decodeHexString(c, "7ca694dab1449f3c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "060d4dafe897039abdb0f5c63e6aeff4"),
		additionalInputReseed: decodeHexString(c, "76bd230eda0702586b6ab8ef2fc93bbc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66275bc4e0ffde0f238ea23e33e52eb6"),
			decodeHexString(c, "2418a8665d99c01da45d6a8f7f957b39"),
		},
		expected: decodeHexString(c, "d85e9dee72baf075a02223927466c79cc614b9c0d56bcb7badb29989f9858343e5059a711b6037f30556102f4733dec617ca169687de9b88381098cc79e9c2f8478164435cfda05e18ae2bbb142a9584"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "40dac959cc5b2a734888b35f053abf9e"),
		nonce:                 decodeHexString(c, "edb4853aee19d66d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "533b49ed110574868bac7298c667aa7c"),
		additionalInputReseed: decodeHexString(c, "f9ff6699c7c47c2e7b41772b54a1d96e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "675f61b1db3a8189c27616bec012c4a9"),
			decodeHexString(c, "bb18e94041826bd501cc5ca406f30399"),
		},
		expected: decodeHexString(c, "c4fb05ec4d020447b2f9b19bf88148db5c634b2167f3c2c9e26a088d20820bd5fd3e04c8f8010a6fc457b9ca4c4b715e5284c1dee0534d2b7ef576b0e0183a4a5f0d4b5fba63bf69a40e7d82243e16ac"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6f0c7506d87bfc86d460ee1275aecc84"),
		nonce:                 decodeHexString(c, "45f926880d96d9c5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9ae7880d98dbc4460041fd7ca20e7b68"),
		additionalInputReseed: decodeHexString(c, "017eaa6be2fe6776c719d32d16e8f694"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7833b494a30026ca028f3609d1e562e6"),
			decodeHexString(c, "22af9e39f75a6c5e0d4b0ce203c2ae84"),
		},
		expected: decodeHexString(c, "4c60dc976e1456f75188f4d2b9ac7992ad26959a2163c7c9ea26e4339f6f67ca8515df708a3c1c79d4b1c463f56957efb5f978fb2436928acd93afa3869480b242c55190bdbfbd2cd542c558207ee96a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c469449db1fe34757b42b6a6bc212326"),
		nonce:                 decodeHexString(c, "e779dcac53d6d3db"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b0df3131ea59be278c7c42a03c0db060"),
		additionalInputReseed: decodeHexString(c, "15320da52b3010fb6ccb8c4f58c103fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "af5a6a9be88b4af2a1f7159d8c58d537"),
			decodeHexString(c, "0256ee98141a351b329232b1ddb3577d"),
		},
		expected: decodeHexString(c, "76d6b71a1227cead7976bae7836c016abe98691c58724195f5130376a11ccaf1998fa1ff8bd96b7fb0b801b1a512144b0cc9149205b506765ecab1d03330af554090358d3c2b20802128e534a2a7f6f9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6918d283610c5afc5efe0bbc5fc971a2"),
		nonce:                 decodeHexString(c, "ee798d0209bb4a3a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e6eb96c622522b950927b01aa3efdc5c"),
		additionalInputReseed: decodeHexString(c, "669850210a254f31eccb271d9aef3fea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "96880965ee8794991e9813d2b87e4244"),
			decodeHexString(c, "76e10d8f9c3b38f0d21aa8d57ac5b084"),
		},
		expected: decodeHexString(c, "e5f786b2143a89af61dae53ceddde787e6338fc353ca273a90fea682b3064e2bb5e6410f697f1b6c80b0a423660f5210f1d62315f09e2b7dd192f509ca77c9831bbb8c6a78108021cf8f4f3f0b856975"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6f58bff2adf6f6f524ac81324743b960"),
		nonce:                 decodeHexString(c, "1c684725d4c4925e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ad77eeb96579fdf26464f61db846e841"),
		additionalInputReseed: decodeHexString(c, "d966564d70746f5d39cf2c52ef6ff5c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c30696404ddc1cc3f293cf927b732da7"),
			decodeHexString(c, "6bf112a12d67959df984945119b19caf"),
		},
		expected: decodeHexString(c, "1758059d7c08cf93b4c00444285f669a89b6298212deefb535647f668afbbd75f115f3687156dc8af14cd8da48374e72d774ce8bb5e95304102b907b7adc0a729a0fdbbc54e261a725d7ed57b34bba6a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "5fef241523b7568fdc16335f956c2206"),
		nonce:                 decodeHexString(c, "d981adb56b590c5d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8f0fa14f90ea7848aff8da233622ba49"),
		additionalInputReseed: decodeHexString(c, "0d0aeb550853c45370784db3ef5527e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f56c312dbe6b014b55e791a0617dae5b"),
			decodeHexString(c, "9b668f0fdb3bfde22e9fdea92c8e583b"),
		},
		expected: decodeHexString(c, "c18b754f903d468a4521dc2b4dd2978456d731d565eb55af1f7426ea76c26cc63771e31725723a3e661e31cb35ab87aa02fee4e2e03ac213ccfceec180e9c068b5c0ccf1213073a7f5af86f6868f9f24"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "667fdc8b2d7d84aec2715ff20007f8ea"),
		nonce:                 decodeHexString(c, "dc0fe02b686c5a15"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5f90cb529bc9288e20c014c60a8f2794"),
		additionalInputReseed: decodeHexString(c, "0d171290e9a951e8f846c6153fcfb3e8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c6f4ec319aafb2409a30ef74ce18ca1b"),
			decodeHexString(c, "49df61061d180283d87bea451e3b997a"),
		},
		expected: decodeHexString(c, "880929748d47f310b86dbb675e7c2c798c58b9bd1bcfea968b13246ee56edfa819d7ad686b7cbb52253a32bdc4b8e0858b9eccdd98f604df14a2544a91d762f84ab5886fd5577128e7d699a8615dd535"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6ae879656c288e1171ba2e1cb8ebb53a"),
		nonce:                 decodeHexString(c, "8d4d1c154ac6ebb6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cb1384603d28a542a0ae6b0dd4dd8522"),
		additionalInputReseed: decodeHexString(c, "2eae690075264be6a7b0e5110f49d76e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "64e32b772a9fa1dda487c9d6a5d233da"),
			decodeHexString(c, "42bc03b991fb4b9b3d68a3d6b84c88a3"),
		},
		expected: decodeHexString(c, "4b3523e211b4e2b6256fcb6546e3b3b833d427c00e5c6545952c23849b50c4a6408ef46cb30c8135ce765b965add13ca1ff12f5766479466e80e1b7971cc12069951ef0fa1aec71c33ca309b94518853"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "cf11b8a783dc69df802a1824bef8cb92"),
		nonce:                 decodeHexString(c, "1ba377e3c42e5485"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "77e6030aa93502503bdc22ae5ac4b20b"),
		additionalInputReseed: decodeHexString(c, "f34bc51b7da618732d031a54a261305b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0ddbb76b3f5cf42f0a9a420eacfc00f9"),
			decodeHexString(c, "f7c15f77bb09133a6e9b3b940ab6e084"),
		},
		expected: decodeHexString(c, "40e2fe9b239212267fde1445794f67278832b8764f804bb0c85514bd9cd0d5357ae6287a9f4c542e9b06ef001e91d58fc705579eb3629da2fa73dffdb7a8ce75ec03ea797092d0195df137bbc7a9a730"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "8f81a12f9404a980c29f7eea312a33aa"),
		nonce:                 decodeHexString(c, "96d579a35b317762"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "800859655fffca9ac5a8538148d123ff"),
		additionalInputReseed: decodeHexString(c, "e4ae9fe71cce6fd55b640b1bcd8fdd54"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1aea66e4458c147668ee8123e750f86c"),
			decodeHexString(c, "af9da0fe2e36252f5b29e8a1fe14c9d1"),
		},
		expected: decodeHexString(c, "8b5cec54c6bdbc8966b6b450f7a931d920107abe6a72860a046c5af1895814fb1309791008b391ddb4f9272c0d612f2e87c2642bfd5cabf41655ce51544d19e227f43d1c5b3ceef48b75ff4bc7e1b805"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3fe6105da2e04e904e3784850bf33bfc"),
		nonce:                 decodeHexString(c, "355445318fb1b3c0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a27e65099d70c2480632b726532eb1d8"),
		additionalInputReseed: decodeHexString(c, "04b8b3a5cb9d082bad1ef4cb34b0def8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "560a6ace26ae2bf8e3be0864041860a0"),
			decodeHexString(c, "bfaab0077a8b0df0643f9f16c0379ec0"),
		},
		expected: decodeHexString(c, "c195dd67f0b9139d1944cba7c8e198502f17eb35e5994f7363489cbbea01ef81ec422777f7bf265dd8506ff6313e459396dd85bfa9456bf26203a76d63b6059059c01d349538ebd7615c3cd2aea585ad"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed1_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed1_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "9e36736e57d038f7b0919d43fd1ec237"),
		nonce:                 decodeHexString(c, "06a959a28fbc60dd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cf46584eaa66519cb19a08edf2f279ca"),
		additionalInputReseed: decodeHexString(c, "a0b70118f9a572d96da92ca25e1d6af4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ab8336f25e8cb235e456109085985900"),
			decodeHexString(c, "7e81606fb31837932d9fd39ac6937119"),
		},
		expected: decodeHexString(c, "3ec372ccec496596deb1cd5ef840155bcd17003afa11b24a85e9687b8b465cfd3554d56a2751f822cbbeb2e10a73a8765973f502136cf43e6b824ac198c371a3e506c4dfa2b1101e9310172700aff890"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed3_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "48a1a97ccc49d7ccf6e378a2f16b0fcd"),
		nonce:                 decodeHexString(c, "b091d2ec12a839fe"),
		personalization:       decodeHexString(c, "3dc16c1add9cac4ebbb0b889e43b9e12"),
		entropyInputReseed:    decodeHexString(c, "ba5da6791237243fea6050f5b99ecdf5"),
		additionalInputReseed: decodeHexString(c, "d123e38e4c97e82994a9717ac6f17c08"),
		additionalInput: [2][]byte{
			decodeHexString(c, "800bed9729cfade6680dfe53ba0c1e28"),
			decodeHexString(c, "251e66b9e385ac1c17fb771b5dc76cf2"),
		},
		expected: decodeHexString(c, "a1b2ee86a0f1dab79383133a62279908953a1c9a987760121119cc78b8512bd537a19db973ca397add9233786d5d41fffae98059048521e25284bc6fdb97f34e6a127acd410f50682846be569e9a6bc8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3bcba83b6dfb067980efc31ed29e6857"),
		nonce:                 decodeHexString(c, "23fe209fac7045de"),
		personalization:       decodeHexString(c, "f225f4d96b9cab491eab1814b25e78ef"),
		entropyInputReseed:    decodeHexString(c, "2fc9874919cb524a5bacf0cd964ef86e"),
		additionalInputReseed: decodeHexString(c, "575b9a11327aab8908fe46119aed145d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d19cdedb7e344668e114296a038b17f"),
			decodeHexString(c, "2bafa015eddd5c7632753435d13772fb"),
		},
		expected: decodeHexString(c, "1d12eb6d4260bdfba799b853cc6f19b164fe2f55baa21c89d4d0e9b4bad4e5f8c5300641bac43d2b739127e931c0555511e8b657020dce90ac31b90031c1d44fe7123bcc85162f128fb2df844ef706be"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "0d16babc319f53671847859f7d721468"),
		nonce:                 decodeHexString(c, "25c706a261654e7b"),
		personalization:       decodeHexString(c, "9d89dca150815354a64320d768d6b163"),
		entropyInputReseed:    decodeHexString(c, "c4623d5f1be33b194e5d1b1d603ce113"),
		additionalInputReseed: decodeHexString(c, "da842e6a479d1345ad803dbeb2745850"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b21701b3a8931503d2917127c07c68e"),
			decodeHexString(c, "4ef2a334acbdda3e769036716e510320"),
		},
		expected: decodeHexString(c, "2346ce4c8437869cca88014af4108b6df88018e9c9b8f969fd96ecf267f926fb9fb4f1a6f45bfaae356990f66d0b76dfb402693ed603b3733aabee6c46aa720b0b9c42985efbd635ac9cbe75138b4c28"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "eff39bac144eacb67651808aa4d70f0a"),
		nonce:                 decodeHexString(c, "1843b75b19094983"),
		personalization:       decodeHexString(c, "d06aade2fdd295a742d9ede544ada966"),
		entropyInputReseed:    decodeHexString(c, "04144df3cd4bf9d87585b53f968a5b03"),
		additionalInputReseed: decodeHexString(c, "4b524b39c7427eb67dff81b91aff6470"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f510fac434d5ce28463705783bcc599e"),
			decodeHexString(c, "7463af9fff985c0dd756b9b4858d78ce"),
		},
		expected: decodeHexString(c, "6e226d24c9899880ab4808e24b9edc84dd57dc3ca05edf68eeac2fa079380f875f8ce450c7a4e973747dd4e96244b18b819710f0b0ecfda2c490e075e1976e6119eecaf3ef1ca581d6fabd100ee3e0d6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b716c9edcaef5d4c3655318e15c0e438"),
		nonce:                 decodeHexString(c, "214d8a6009030886"),
		personalization:       decodeHexString(c, "ed7934acfa5458006ecc2914b28a94d6"),
		entropyInputReseed:    decodeHexString(c, "c1324cc2507c39ee57fa0abc7f0987ae"),
		additionalInputReseed: decodeHexString(c, "7aef8715891d916a3c4bd9c222c55cc6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1199553d3479ddb1cdad5ebfb429715f"),
			decodeHexString(c, "518d768c48dc38824a8496bfccc0fca9"),
		},
		expected: decodeHexString(c, "7c3fd1d804b28b569bdf62e61b3a29b9742d006df3aea275e3c4304b4976b1fce279a891e114b9c068cd50591617fb52bb673d7361f8e0e6af5c3594c5954097afa9547a7923f0e49962eb236f16260e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "2937ef18613aebcc8776d63b6e85bdbd"),
		nonce:                 decodeHexString(c, "3d1cbe4422e814d4"),
		personalization:       decodeHexString(c, "7d0e5826d928f8d3d0908b3e6c8b4705"),
		entropyInputReseed:    decodeHexString(c, "a75fe0d78511af38fcaccd3bbe8c6136"),
		additionalInputReseed: decodeHexString(c, "dab76d6b894632983d3e199ef3cda768"),
		additionalInput: [2][]byte{
			decodeHexString(c, "72d6d65bf135a906e8c2feed1db54aa2"),
			decodeHexString(c, "90dfe589a1feefa29bd54499d9935c7e"),
		},
		expected: decodeHexString(c, "ef32e13210528dcd04b78151060bb52a053913d0cc6022f778e5a693ef2603b85c57b4197cf12cd4be2005c6857573e4990242960fd7ade21a91a8408c750c5ed77f6aabe735b178b2984fb9ec149cfe"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c3b1bcaca9e8266e779c4cc9bba8704e"),
		nonce:                 decodeHexString(c, "a61a5fcf2951f138"),
		personalization:       decodeHexString(c, "47bb102586c9a0ac82716194b02002a9"),
		entropyInputReseed:    decodeHexString(c, "ec0ae223447fe2dc9d7c094fdac5dd3d"),
		additionalInputReseed: decodeHexString(c, "eb8cadae3f0138a55a38440fd44859cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25e0784c20affc55bafbdc2217d92190"),
			decodeHexString(c, "e765c07a5018aaeb6d435ee705399f77"),
		},
		expected: decodeHexString(c, "a64812d698d599f8107582ef8c768dc0bd0e30a9d1c2b31836f618b454eb373541a49297a2a3200a0d15cebdae45a89f39352588d636470b27ad812197c23a298578ac13ae3520b53b9ac007cc08e7f9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "686cb77c71069c6f8b22ef07522a4d49"),
		nonce:                 decodeHexString(c, "9efb2513429b7570"),
		personalization:       decodeHexString(c, "a1a2020f8ea3866df840bf25f18597e2"),
		entropyInputReseed:    decodeHexString(c, "b95fc39f84f5293b0189c5d1b0f52b42"),
		additionalInputReseed: decodeHexString(c, "0423bdfc38805669bc1a5c5f7e65d33b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "639986a4412961e814efe8c83dd4f4c4"),
			decodeHexString(c, "de0ac3dde3365bffa68996ab76baa02d"),
		},
		expected: decodeHexString(c, "66e6fe5790afee0fe513e0c32fc9e189a97090f24364abf7cfbd928077453590baaaf930bf2f457ac3acb4cae87bd2cea8d90e95db09a1007f227f396602543d18916832ac77cdf8fc6c2907451966ee"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "4a089b520369ef86e98f8cdd584c9d83"),
		nonce:                 decodeHexString(c, "5c7d1d02717b29a2"),
		personalization:       decodeHexString(c, "fd7bcc0a1e813e0089cbe86fc519d1ac"),
		entropyInputReseed:    decodeHexString(c, "c6079d8225eb5d0fc95e30e00efd6e05"),
		additionalInputReseed: decodeHexString(c, "d2710a02f6e96d4fc94cd46a661447a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d94ed0ba327c2b85f0331c2346704be6"),
			decodeHexString(c, "bce59487fa8231766d1f3ad0c6ebea0d"),
		},
		expected: decodeHexString(c, "2828b454a9fe4f1995bac7f2cc4cc6d622a4c159e8c9757c08d9fc8233cb4980f1522ff3808d50be0c9c28d18c16d15a377c3bcf9c91428696b996906a82cacc8e518309f622fdba14633a5c916727d7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "7fbc0453aac2a829d24d3383da7dac06"),
		nonce:                 decodeHexString(c, "6a925acc818a4356"),
		personalization:       decodeHexString(c, "adceff1abcfbaf053a178b51110c0eec"),
		entropyInputReseed:    decodeHexString(c, "908f50885ba7705713efef3e63efc2fd"),
		additionalInputReseed: decodeHexString(c, "eb2738d13b1f0c42001421ce9ba53a7a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "133463768bc1d1fd647a27b93241ea29"),
			decodeHexString(c, "aa6a3ae3a35d2749cb524ac1a1316c12"),
		},
		expected: decodeHexString(c, "2453f24a34044bb687dff8045c746816009e4a84ff69e5687e7d7de6734019910329ed5c6aa0ae156a547a2230b47f09477e078e5bd7f72f4e787f22770c676acf9d1c616153db3ce03961cecb8fb1ab"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "f986599e3d8ed91eb1d995514878baa5"),
		nonce:                 decodeHexString(c, "e77e66897661aca4"),
		personalization:       decodeHexString(c, "6827d96019ffde63f43fd65a49c7989e"),
		entropyInputReseed:    decodeHexString(c, "eeaae13f1fa3709788ae06c21571eb4b"),
		additionalInputReseed: decodeHexString(c, "b6b0a458a7fc45592084581a70fe63ba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21a28fef4bc9aa7a0c1c4418e96047de"),
			decodeHexString(c, "10bf7efe99d0f8118f332aff812770b5"),
		},
		expected: decodeHexString(c, "bfc374bd3bd3372428839eddf3181c1766e18a54ccb7dc07f700ddab276fbc8045737ae8b40cb325eb5da7245c4f704be8d21bdccab5c799ac512a0c1eb690409730f1461bef47324248b64a80982db1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a3c4c4964e1f1e426aab84b82f619ab0"),
		nonce:                 decodeHexString(c, "003c9cdd7396dc13"),
		personalization:       decodeHexString(c, "864e63bee6708e2f481ae363b8d1138e"),
		entropyInputReseed:    decodeHexString(c, "3d24d7cfb4ab8faddb5983b7962feb54"),
		additionalInputReseed: decodeHexString(c, "d6162b29b6ca174259e36fb8c0ade5ae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "214435e16d3ea149a89627131b3948ba"),
			decodeHexString(c, "be09a103c7f37a10c6ce734c6c247f19"),
		},
		expected: decodeHexString(c, "19bbe52d744e5aa09593151e076e9bc15ed1a237fe6ae188d54b80468681378d492d8934afdce32d7b135679dcd2556ee54b47f7e0072a1380681fe9694449cdbd73c8cf21aa9a867c1dc6e88dc31e67"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "7ab72ee4ed68e632d40d797844bd4c5a"),
		nonce:                 decodeHexString(c, "ecb510e767a2203b"),
		personalization:       decodeHexString(c, "25e72500186674253508ee28906203b5"),
		entropyInputReseed:    decodeHexString(c, "d351042b6bad7335569fd84a0a8a5e91"),
		additionalInputReseed: decodeHexString(c, "bab2fe328dcddaab18193f57db0d1da9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "96177f483ff9c37ff5ba6ba687e4f9ca"),
			decodeHexString(c, "51d2469f1c065b8467507bb4ebdba306"),
		},
		expected: decodeHexString(c, "1e40e31510cd08c870f5271aa1c0aa910ae3534d06e8929929136a288c8df36fc9c9f3dc62dd5a4e1113ef06d9b7d93f59ce565c61366e58bd0cbaa9154bbd6dc976bfa33e3d44d02f025be5a42f210a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "f75be7b984d061678ce7b3238291465c"),
		nonce:                 decodeHexString(c, "a37d65afbcf7a5af"),
		personalization:       decodeHexString(c, "45212d23d7c337148cf4b82a4444a6a0"),
		entropyInputReseed:    decodeHexString(c, "15b6fc09f0e2fa4a9035df6d3c5b3d38"),
		additionalInputReseed: decodeHexString(c, "22ea4233c6f668cdd72391f3e0cd989b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b05d5665fc2013b90d7ae1918a27a278"),
			decodeHexString(c, "6c22a9dda9966f1605d6a77dee587cbf"),
		},
		expected: decodeHexString(c, "5f731f8dd7c23d4e058f77cea62f796afb706fb617d88caf25df3768e8e686e63dcaa9e8e415b559f34fea783d87b39170411e3ba979bcf0d00f54826d0d5fa4d3761dbde46074b6adc3d32cc2161258"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed3_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed3_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3225bd1b4249cdf171bb515c1ab02e4f"),
		nonce:                 decodeHexString(c, "d169bf16e1c7485e"),
		personalization:       decodeHexString(c, "31feee1693c8da64d82ab510f74b098d"),
		entropyInputReseed:    decodeHexString(c, "57432da8af79008087af484cd8e48878"),
		additionalInputReseed: decodeHexString(c, "10d435b4dbe701e9063bfe9353cdd2bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "08b8dcc89827db52d49183a4a1e3638e"),
			decodeHexString(c, "a21ab665b35ec79a50d0edabe8b7809c"),
		},
		expected: decodeHexString(c, "58b343da82489dd586329dc8c8d54abe7376f9642174ee7147e89769e9b3573c100770531c484ff86372ebe1985565e57e351308999ab8f3f186b3286f38578b54a7c08a12684969fcd3b24fe05c57ae"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed5_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b277439c082ff848fbc112a0d7a5fb7e"),
		nonce:                 decodeHexString(c, "a39f32bc946393f7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fdd17b8ccee83fa49a3b388df60fe5b2"),
		additionalInputReseed: decodeHexString(c, "19e97baa9b376e11ab6ebf345c326b48"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a9dd1b98609da49f13f071cc62205c99"),
			decodeHexString(c, "6763377423e251c2bebad529f5722438"),
		},
		expected: decodeHexString(c, "9a3893d558eab44189ddf1d88ebb70cf37411359f9735201ca03eca5b97438232390e28e4cb51a9a45c1a870968b915a7f69bd796d8b3c563faad05a860849165bd1b8fdd9fe96cd1876bfbe301895cb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b259889226dfabcfb9f5009948c63d6c"),
		nonce:                 decodeHexString(c, "4f4d8ec7d33a15be"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "be6df62edd1024111ed4ea6b70aec1ef"),
		additionalInputReseed: decodeHexString(c, "7e1a86e7b97fa62bc3a95e44ebb386e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "891c7eb2e610aaa3c4d61e67afffca0e"),
			decodeHexString(c, "ffb0b9ef8816ceee7452f4615487b868"),
		},
		expected: decodeHexString(c, "e3cbad614a12885d3233572db2d19e9deb67c8324c1ecb919cf74325570b6396c8874edaadae87252c4d62a486648ce33f669c37ec35dd39e3f22ff565a54854b4608e6367127f7b9adba36da342f706"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a34e8851db9412916986b8584dd3b78c"),
		nonce:                 decodeHexString(c, "0681931a50a93192"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "68da5d070297efe7d4fae16e85366e80"),
		additionalInputReseed: decodeHexString(c, "d1aa4ac05954dfe8389f688872686e0d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bb2e2b615f4c1892689b992ebe04ee31"),
			decodeHexString(c, "97f5d7afe1ab9dc89fc63a6e3d5dd4dd"),
		},
		expected: decodeHexString(c, "9d3b665e29bef6a760a2608e4dc7c1e90dfc0ec00e6f986fa45d42527cbf6939526f9baa010aed6a223ec190800d594f09154c633f3236259ee00ff84460c1a33acb3d632712bab60a9568c6f2920e4c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "147ab6b2bc03a552c715faac89816cf3"),
		nonce:                 decodeHexString(c, "f635bafc3860860e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7c3ef601d8fb41e348f0473406c71c3c"),
		additionalInputReseed: decodeHexString(c, "6207a50fceecc0fac5c4cfed1281b6ee"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7182df0018990f03ffd794cec22fd9d"),
			decodeHexString(c, "7e4c01d79f8a6176b8c319e2f4d38516"),
		},
		expected: decodeHexString(c, "576ad4b63a6c73194ec7af8a1204ddeaa72e60b0f6c535c382a9bf0f27d08f2f37183a69acea2f855027ae2b1d602cfcbb6027a4c2070c70a5220882ddf5af7d3233a2e31fa670cd068ea723fd889392"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "49d84a3337ab18a5e0e9583b16abcdb0"),
		nonce:                 decodeHexString(c, "7121743a98cf8c20"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f3cf8a370ff8c754bc363d4ceb6f140f"),
		additionalInputReseed: decodeHexString(c, "60b1c4813b7f67ebcd3165bcc8ae8eb3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6798c8dd6c16c5aec58bc178b6c1e6ff"),
			decodeHexString(c, "2ec28ab1b68c8fdbcadb3ac6476526cf"),
		},
		expected: decodeHexString(c, "8f751187b53447269fba940c292bedbe125364776853a1a5f7b76f74fa5606c7818ca9f57132f42a9f89775574d4319b981feacbdd4f2e779abf49ca73e1de5cc02dc2d2bbc27bee3a57fd77807614ad"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1664df8e26616372055ab02bc303956b"),
		nonce:                 decodeHexString(c, "856d3fd3ab316160"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e253741349eb5fff62d33fd28294144a"),
		additionalInputReseed: decodeHexString(c, "a10c4710e7598844abb6a5223d5daef2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2eea6d53d9c1fa5ccc9e1cee391002e6"),
			decodeHexString(c, "8021c5b60e2c70029bd841c79b912a7d"),
		},
		expected: decodeHexString(c, "92f6c69e43c257ce388fd1dc0732be02e95fecb50c7edec1b880bdb0ec7126c6c8566761980c6be71fd25519934177109ef38fb0cb54015ba9f5ea8721939d4036f74789bc5ea08fd1d4c7b68e11c1f3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e258263f7c7f9998c265b8876f3d3904"),
		nonce:                 decodeHexString(c, "cf01cac1ae4e4a17"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ca5437f15dec2732d9fbdb3ae4e7bfab"),
		additionalInputReseed: decodeHexString(c, "218bf78f96b39d64548b30c58a4f4a55"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ddf6b7f2d9943112d8df4efb8e6aae5"),
			decodeHexString(c, "ee17b25ceee9a541a947ab2b5305442d"),
		},
		expected: decodeHexString(c, "9a2fb350d1faa641af2c1f50eff8c9108d81d1cb43d69d5926d0e9e252b56ea0b414e3b420d060e2b3da8ffae3e965fb3ae3c98f2b27a14e80dc75646fab5470b32a9151b6d110f6306bb689b60522d6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "96b099088c1683b461fd7da408ebafef"),
		nonce:                 decodeHexString(c, "c99b2bbd02499ee1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f923c7c5a58c77965216019cbd11f624"),
		additionalInputReseed: decodeHexString(c, "4477582184cfd326d6f15982a953ccde"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e42bf542598ee62ae50632cda58f617b"),
			decodeHexString(c, "f2a93f4900507880703ec7b951a07a61"),
		},
		expected: decodeHexString(c, "e7e13f7e72fdc60c05c416ea48712594f302ab67b80876ee86e1bbbf5f3d81cb8f329b2af917a1cfc4901181f5a81144e3c65c526baa6faf060e6982bd5414f163e9176f4203c47893cc91f4bc77c587"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "dbbc7908dff242ed851d67bf8ccee23d"),
		nonce:                 decodeHexString(c, "a08422139d02f2cb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7a2d47e9a810e69a1e7857678e5664a2"),
		additionalInputReseed: decodeHexString(c, "1a7d0e8609666ad66035f9b3f8ae6b87"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0850b39da87d71e2f1d6c9b75df303f0"),
			decodeHexString(c, "62b716c6505b81b3ed077ed95f4138a7"),
		},
		expected: decodeHexString(c, "a9fa07abd09c13f0f99ba7c2dec4d7e343bb693be3a13a4013068d14b351da90650d02abcb3a41220f6f4802d4f940be8d634519eceedf604763679f992abf58f9e176cf225f64d4c2c5c8a13755e609"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "cd9edb11f8d2b8459ab780e330eff008"),
		nonce:                 decodeHexString(c, "9265c20d9c9aee6f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8824d10a880d9decc7a38f26a0f81d10"),
		additionalInputReseed: decodeHexString(c, "d58de71833075ee25fc13073f2d26fac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4fe09858b128a437c5d6450ff1225b64"),
			decodeHexString(c, "9a39802f9aeea6da718d3072cf7ac153"),
		},
		expected: decodeHexString(c, "0a461ac64615278db5dbabccdf967dedd4e3040c0974602570380d73f46f15f6e1fba5e857386de09e91d32c40a4371300fa1a8ed23c89565569d5513dbc59d1c0ae0b2c095c0874a1aec79dfce89554"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b10889ba78d85eaca306be6844adf915"),
		nonce:                 decodeHexString(c, "19df66330ca3f490"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "736cf5182b6673b85f6082479c1f8fd4"),
		additionalInputReseed: decodeHexString(c, "98f6450b6f90d015c30591259f22a229"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b8b5e4c6e1b986d4e9b8653aa8f4f5bd"),
			decodeHexString(c, "0db8f743a1ad102125f559536851b98f"),
		},
		expected: decodeHexString(c, "84cb7ec1a2600b970851181bb5651efaf7b725649d73590fa280a003886c2a6cc384cb0cc01a28fa8c380b82410af1ead6edf58bf823cd7fd6bfcdcfddcb1897316d51f4cc8c87b8a8c1cd95c6fc2ebb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c85994ed9da6e5dc1599fe8f7e055c9e"),
		nonce:                 decodeHexString(c, "fc81e66b96004c12"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "daadf5ed5ac95d5aa19d1a2c0f0d2186"),
		additionalInputReseed: decodeHexString(c, "9e30708e0702f8d19cdee8ae6743b942"),
		additionalInput: [2][]byte{
			decodeHexString(c, "29cc6d804d33238083892321c8cd9ae1"),
			decodeHexString(c, "f632356c73de5bcf821fa0127f71429f"),
		},
		expected: decodeHexString(c, "cc1e30b7bab9d96509c5e4b8d16ad0d60486fac77e33363a55a2dfe1da4baa2a37759d2fd3d260049d36bdefe1703ec59520be7e140986ba59488aafbb49e8070f046c4a374dcdda9ccd78f49d90ed38"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "2e5d1d131a8cf5700f0a8871a54e2518"),
		nonce:                 decodeHexString(c, "a8587e6caee9f822"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "73de9a17c1594e99835d9812777fa0b6"),
		additionalInputReseed: decodeHexString(c, "59c9c65a19637a5942558e0ef173a9bd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38951c21311c0ac847068aa0f8f62a7e"),
			decodeHexString(c, "db97cd173bcc5dbef19ee81d8b25976f"),
		},
		expected: decodeHexString(c, "0410267354736deb5c4e7cf224e46fb82576440d5baba0cbe3e8f2d21bdcd2a1e4ec4f4b55dd7aaa3d23ef11ae3017be89fa70ae456cdad5b26f42652ec4d5a64108dda1c15f507b0dff0d00fa063e25"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "eef03ecd416ed1e87ce12ea465890c8d"),
		nonce:                 decodeHexString(c, "3867e8c4e5bae84e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "724a3428391d7e9abca768a0cf82001b"),
		additionalInputReseed: decodeHexString(c, "56dc2f8856f250bda9886f6d75d3eebc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b281326a7592cdd63c88a60139151b50"),
			decodeHexString(c, "b189b688a438f0a936c83327b41f2c8b"),
		},
		expected: decodeHexString(c, "c689905594d74e4d695f367018ba352656b74fc9208de7b697862884c30bfc94f313ff09b9688684e5285709e07d97325cd801ccd4f90fbdf1d7417b26425e4d21e3facf6f8b563d3a4d6cf0ccefa5ea"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed5_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed5_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b69a0db55d17b91d13fefebf233d47de"),
		nonce:                 decodeHexString(c, "eecf80609cd4d678"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "edd00829d1b67bb0455365a4a8cfb146"),
		additionalInputReseed: decodeHexString(c, "0848d5584da0327e6e9ac11f3c269baa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5268ad7ab535cf7ac4fdb13b8b61971b"),
			decodeHexString(c, "9da472005043cd824a2c0ad35242818d"),
		},
		expected: decodeHexString(c, "898f038468bca56c89d7b579cc0ff8c9cd2d2fc9d843186e797520dd762d0caa4ed0f27380ed79ccafffd6ea82c855ab59ca1dc4cebd64cb936bcb59895c076912e74e69207f24cdd0e473e6a7719c56"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed7_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "01a5d726cb5534776069badb6ac2c5be"),
		nonce:                 decodeHexString(c, "7632c928dc72c5ac"),
		personalization:       decodeHexString(c, "10a366b42cec847cab9e50070e7de853"),
		entropyInputReseed:    decodeHexString(c, "9e0991fb5a8b6e712f56707890e5efae"),
		additionalInputReseed: decodeHexString(c, "38e619ab86aa7788617b4990aa43260f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24062587b7ffa7c66d5cd04e24f09738"),
			decodeHexString(c, "4f04e7a107b0c8c18c2b68fae4de2e1b"),
		},
		expected: decodeHexString(c, "f87c842f3608f96e3e238f92017af0082d15eadb33ff6fe9068a42b004d7d0093dedad2b1504b2dc1ef541d714b2c1c7f65e67fe42236afad4dcf268fc9799d58d401f2689334c0909eefc832d87d570"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "2c331df607258e8c3e6d41902d9ae148"),
		nonce:                 decodeHexString(c, "e6f60cdc3310b188"),
		personalization:       decodeHexString(c, "2bd79cf845e93e18c65b62a8c332bed3"),
		entropyInputReseed:    decodeHexString(c, "9e5e7761c4df6342f042d38fa8595ae7"),
		additionalInputReseed: decodeHexString(c, "3425f6731d2b7e77e2856c043fa43a31"),
		additionalInput: [2][]byte{
			decodeHexString(c, "908f8faa1286a9da48104e182d77a091"),
			decodeHexString(c, "403b281138bafda56a05a4c5c6fa3914"),
		},
		expected: decodeHexString(c, "16c63d8cedaebcafd272ce787c84090880e29e3e9e81089644e72428ec5d7e77f4acd5150d0f396ef110fe3b6118b8d8143668ceca64e599936b96fa96d71fcf11ebd4cf743b1ccc7322a104288d8213"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "270c76337d788ef2ef6061c9d25f277f"),
		nonce:                 decodeHexString(c, "39fd596c50313147"),
		personalization:       decodeHexString(c, "3df4e765755c2e446a8b10bc252d40c9"),
		entropyInputReseed:    decodeHexString(c, "c35eedaa188d3134a055cb5911aa2c8e"),
		additionalInputReseed: decodeHexString(c, "d8de9bc628b80e7add9c4f5b5fbf37d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e24375e6ac75aa06f4e54543dba0d739"),
			decodeHexString(c, "ab8050ed99990fc315e9e82ca2050e89"),
		},
		expected: decodeHexString(c, "2091cef4125b306b690318715d0c471858184223ac3d7b2db22741f980441c5e5d965baf77b23820f1cf9c1cdb59db796e73898862c10239780a4c3e443d6008d64e5925442c8fe8ea61dff657a1d4fa"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1b388e2cfcb3f686b0a25397c7143c96"),
		nonce:                 decodeHexString(c, "d43c5ff2c25ba502"),
		personalization:       decodeHexString(c, "bfea405c80a045af6760da1dad911bc7"),
		entropyInputReseed:    decodeHexString(c, "1fa3a94f9f0592220f2e3947e976b49f"),
		additionalInputReseed: decodeHexString(c, "77df1412476411e343f2e6920764b482"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b61ffd8fe5bbec64c02bf13ce337784b"),
			decodeHexString(c, "8a4def83a2620ab7e6216fbdfa7cf46e"),
		},
		expected: decodeHexString(c, "9cb958e5f044425b241d6cea1d2cb480772ba0e38b86f5e7cddc3c50dfc28669bd9ac428567ebd364a46b59cc47a89b45a0a8a4a93ea2888b174872f6f21b141f70b8eb683419525df17342ac75b3a6a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "352b3d60da9a1df8bfbba81909b09e2b"),
		nonce:                 decodeHexString(c, "83fde0d46e7f076d"),
		personalization:       decodeHexString(c, "6de5c6ff46ebdf0b96359dd88fe29dfb"),
		entropyInputReseed:    decodeHexString(c, "6e8ccac33c5b506a3e07d0ad7af6f11b"),
		additionalInputReseed: decodeHexString(c, "836952ede4fdeb985b7945a53449f932"),
		additionalInput: [2][]byte{
			decodeHexString(c, "820c5724cc967aff13c6421ca04b99c1"),
			decodeHexString(c, "14c1e3e8e56abf1170f9d06354644fb5"),
		},
		expected: decodeHexString(c, "51ed77d769081ef6c064b2a3dad45d49a218d25564a9d234833bdb2083278bdb87dd5bb194d5701fc194a05d020106b5a36f304edf6d7a15417a94c741c8cea556d99214d644bc722037060046288466"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "9774d927a8376e42af35fe915fb11d8f"),
		nonce:                 decodeHexString(c, "d5f31e41787fa611"),
		personalization:       decodeHexString(c, "aa3a0f35246d64309c47139d9eaa8f1c"),
		entropyInputReseed:    decodeHexString(c, "29a9996b5358fd1f2a7b4f3618e045c5"),
		additionalInputReseed: decodeHexString(c, "e62d60f74ca232e4ef125e272eda7938"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd26b0c7e66dcb33689c5d57c340d76c"),
			decodeHexString(c, "258f5a44086c1184e982ad9ff2d6c8b8"),
		},
		expected: decodeHexString(c, "a5d6c1aacb3682c9a95f12df52378705aa7ca1a8b37db882ec8ebce8316e4f036232fcb1f674fc2e0d0d7d8450697917f7b2396f14f391bf21e4648bff0879b27f4b0496945f18878cd39897abd0ec1a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e3145564f86581ac12cbcdddc455f51b"),
		nonce:                 decodeHexString(c, "32b03bedcc5b436f"),
		personalization:       decodeHexString(c, "01c03daa085575a12f2e5f101eae83c0"),
		entropyInputReseed:    decodeHexString(c, "f2be12ec00a8947d2c18a765cddaadeb"),
		additionalInputReseed: decodeHexString(c, "e98b61a88bfa89db638ac3a6f1c6c956"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f5ddfbe9b741474a07d223d784221db"),
			decodeHexString(c, "fbf88344b5eef32f11e63cd7f3622b63"),
		},
		expected: decodeHexString(c, "ad68a6fb48bf2f22cfd978243fcbe41ee5b6d00525fd7c0750639425e5d9c8075147eed55e1f9734e0bb7aada8523b7f8a0d3362dc44f3a7360448f900062eb2d1df01aef2e040950f5af605445d75da"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e26e88437bbb2699d7f2c8d05873b74f"),
		nonce:                 decodeHexString(c, "e4832b85f333311e"),
		personalization:       decodeHexString(c, "4e3de0721a8955c761bf3384266ec143"),
		entropyInputReseed:    decodeHexString(c, "c0e4f3be1494413045daefeef3a6f358"),
		additionalInputReseed: decodeHexString(c, "b54a7156c2e1e2694dce2a97134b82d3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae9fbca391949dddeffc7bebc6c4733f"),
			decodeHexString(c, "599c43a9ade72266dfd40309706be3c8"),
		},
		expected: decodeHexString(c, "2d8c6103643bbe72611947d73ca3a253581ec6802cd80e33b34b8c60ae6a839539d060493dfc3625bf221bd509ce34d7113e6560d43077cce5e329c554a65bfb7816e01575153057935a538b4f6b56b5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "82499bf46d5a74744dfe169ab2d6fa8d"),
		nonce:                 decodeHexString(c, "4729c9b8a3325ead"),
		personalization:       decodeHexString(c, "8ad06693e566c8485cf55c7ea7e30ef6"),
		entropyInputReseed:    decodeHexString(c, "d81307a5abacc60fc5e3695e67830656"),
		additionalInputReseed: decodeHexString(c, "51ea86a8b393834f41d69ad1c4e539ae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6e420b2b651521087fa51ffe65579ca6"),
			decodeHexString(c, "3c6ebd1b50f7e565f253c624c1c1eeff"),
		},
		expected: decodeHexString(c, "35b721134045293520b2875e1acd0efd39db1d9a5c5f1087cbd61ad3ff96933fe49bdb75cd120502c8b996e0b88cd05523085e5d36aa38b832dd3891ace5d67297741602465f61ee72f86eb10123db26"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b1aad873f5359cdb3a3ccc1cd01e5a35"),
		nonce:                 decodeHexString(c, "b72f77dc2791826e"),
		personalization:       decodeHexString(c, "7a1c25d65e2f1944dd166ea7894b9856"),
		entropyInputReseed:    decodeHexString(c, "fab70f5c317c10abf33c465d95a2c9da"),
		additionalInputReseed: decodeHexString(c, "14afb87a0bab1ea5cab76d8f2e9873aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "369fb78bc650ef5c8bae7605e301a84b"),
			decodeHexString(c, "1c96ac6fa8fd0bbfe41186638ff800d9"),
		},
		expected: decodeHexString(c, "725be10f863001d5edced7aba92afb1c16b1af5dac148bb5d807481a3f3549deb8d6309859acfb7a25fa638388de01863c67b71186e162bec52805a611786a9f03baf088d0041c8bf5b22582a3166697"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "106659d4329545a45196f3e5be52d061"),
		nonce:                 decodeHexString(c, "a7e113c9fbaa5b20"),
		personalization:       decodeHexString(c, "04207cfff115e48e6968baa2e76ef9c4"),
		entropyInputReseed:    decodeHexString(c, "46cbdbe5f4df3287f2d36560ad88b038"),
		additionalInputReseed: decodeHexString(c, "c14158d95abf78ae4985897e19e4f41f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fdf20e3b013301f018c1fbaec0612388"),
			decodeHexString(c, "78b068136ab3590e2d3b67daba402e85"),
		},
		expected: decodeHexString(c, "b0a0f3d1e46519c179e90549b4135e5f6f72e4c9229622aab7a1ea09ec79185249230c3f8aa6f46eb43ea3c5aa7df97345e6594cb2f8d343be44f9ea519a4b50afbdadf520a954b43fb8920da852bdd7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "fc99a35949266f7bc68df4dc0775a324"),
		nonce:                 decodeHexString(c, "764003438b573723"),
		personalization:       decodeHexString(c, "7be5566f259424fd69b487ce1fc2014d"),
		entropyInputReseed:    decodeHexString(c, "039150e554ab13624c07151418b08c6d"),
		additionalInputReseed: decodeHexString(c, "ab7f7059afdaa3086f8aed599e8534d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "71e547100daf36b71e378e7735d5873f"),
			decodeHexString(c, "d11eb4afa12e7a7fb453acb7340595b8"),
		},
		expected: decodeHexString(c, "e62f9a854ee9b00143d48de071f3d03bcf9fecf3c4d9d2a47e0dfbafdea78ca8f7b80beb11f9a6dbfd4ddcac11cff8bf9967c7bfe051d417d5f34bf24a00f16830d1b9aa5511ffe7aab40e36c36317fa"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ad433c9a70669333786c45f4b731432c"),
		nonce:                 decodeHexString(c, "bd884d3041c94b2d"),
		personalization:       decodeHexString(c, "4e95c8085ad2a31e9271b37d1053c9ec"),
		entropyInputReseed:    decodeHexString(c, "826a80571170b66a1025ef831dfe2796"),
		additionalInputReseed: decodeHexString(c, "b9715bc31aaf9c85419dce42a347e10b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0386a22663e890e9715fa120e58baf49"),
			decodeHexString(c, "7816db7625095129fc83e9a46fb9f540"),
		},
		expected: decodeHexString(c, "066087a91d24b7777861dd028f57f7ac10b5a7bcd2a738a5e126f2393bf5b528725cde893c60b594d9589fa5c3927556c6e9fdf87a1460f400ba5c7069ede75b6a12b04c0a05bc12ec1d97d492bb6873"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ebb73627c3ed18da0f82d16c1f4603f8"),
		nonce:                 decodeHexString(c, "1f9915d585080a18"),
		personalization:       decodeHexString(c, "27e9def9e7b3cf6a6897be7223c92758"),
		entropyInputReseed:    decodeHexString(c, "d12fe5d13c5c27fb2e30dd3b3c84eeb6"),
		additionalInputReseed: decodeHexString(c, "577f11b4bb0cd9f35f7c6332d40634e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bb02f7da271e32affac6bc0bdd4b9cb5"),
			decodeHexString(c, "02c69cfb4427fd7426e4f877ca708ae6"),
		},
		expected: decodeHexString(c, "351590bc0480e8bb18adb9b4f9f04e9596a6dcbcd8aeffe0ab5b8737addee60715918a2a3ec1e82980a7690c41746b72b55ddccf399dd72be18c3e6eae65f82efa3876913134c7a92dcde3ee82631923"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed7_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed7_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "46f044e83cc972f0780c82b25b349cf4"),
		nonce:                 decodeHexString(c, "dcb57d46b5e60b8e"),
		personalization:       decodeHexString(c, "e168b00f9246e361b43d8b5b181fd2f9"),
		entropyInputReseed:    decodeHexString(c, "99761ddbf2dfe9dc978d52a8d962ed0d"),
		additionalInputReseed: decodeHexString(c, "f2daf709790c4f796ae507961f9bf2c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b05a3ec514aebb01a3fb5fcee02852f3"),
			decodeHexString(c, "11661afb8fbd897c4be0e08556ec6a25"),
		},
		expected: decodeHexString(c, "462a30b5fd643b663dea16c5ba03e815565dd2ebf597bd5365992318718e383bbe76df397092b63901debbed60c0f32b9c8796f79b0cf920e6722bfed2b37fd2fee9678ad114b4cff245f81c1fd3ff89"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed9_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6501b61d190ff2a1aaabe9f6101aafaa"),
		nonce:                 decodeHexString(c, "86690830867431b8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "92ec6354269bdab2aec98a61900ac99c"),
		additionalInputReseed: decodeHexString(c, "60ffe5a618e324c52838f24169e13d7f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8832b134467a5e5dc774f14985063b60"),
			decodeHexString(c, "37118f7cd97adc39eccd7030e0668ca3"),
		},
		expected: decodeHexString(c, "e299d33a9e1ce7aa94a84e0cae6d5e78be5b73009c25a832354fd12fbb02967e126372c9af6c95fe2a0f03fe2458a8978c3dfdd7844ade83a82217537f0d2ea5abb90e07bbfee8deebf45315ad258cbc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "081b2e7a5ea9ce1d602f272e675a787e"),
		nonce:                 decodeHexString(c, "167ca2728fb35cf4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "98f0f03c706a6e694543404171e734bc"),
		additionalInputReseed: decodeHexString(c, "4162a08f17f36ea1e1dd5a87a371d1e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c9229ce396d7938d8930b1fda83c1f78"),
			decodeHexString(c, "b043db8eed6e30338fe93de9e79256a6"),
		},
		expected: decodeHexString(c, "e22f7a55ef3f3cb7f866ece2dfcd080fcb3d162dc90b712c0564bcf5e38a513b96b7fa2f9a3e36279ba3ab09ce683737d6ddce42b473300827c2f56d49963dcfc51878b15b1544d3377a1ab8f987e1f0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e97b694b27b7683e4119e565d5c86917"),
		nonce:                 decodeHexString(c, "469717305674a5d2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "060cc31630bf9e3ac2ccab67d4ca0395"),
		additionalInputReseed: decodeHexString(c, "5ef3dc56e2d26bcdaf9802913b24e7f7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "31b8460ca4d6a3755d97caadf1e30ae0"),
			decodeHexString(c, "f690f1c6d4545d06ab9af83bb93d6b97"),
		},
		expected: decodeHexString(c, "5bc45bab73bbefdcdea0b625469fbcb65057daaaa021f0c5b5ed88052df93e20347223623e3f532d98ead81db82760391b64289b1c1bcf8b2861393f958ed2a43223972c7a7b80a923ee0ea2d96e7cb3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b5c48cb4689c3e63723f39bb6b5ec73d"),
		nonce:                 decodeHexString(c, "c4e64d63424db71b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "44d3415293439d25add42eba295db840"),
		additionalInputReseed: decodeHexString(c, "79bc05165859219e84f2c2ae1d93a8b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "952074aee48ccb8ac0d619e907a0ec89"),
			decodeHexString(c, "98253c70258861bad59e5407dedccafb"),
		},
		expected: decodeHexString(c, "9c5839c4ed368c2e38840855a95dba0df211494b07fcd70eb247a9f56249c31aaa199f65416e772987a949d8c6a8c99cabf436eb020ddabb5c48d387c74c65e0a6a216c8227d3edab770d0be4fcc37d9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "033b20b3d8e1abe542aef9ee39e80e71"),
		nonce:                 decodeHexString(c, "f96caf9bb659adc8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "966b0cf2bd05c2a7061cef2a1b41a064"),
		additionalInputReseed: decodeHexString(c, "c669f10cfc7872ff66cc99308a41c24f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60467f32aa01e3a4b10f0c7aab773c66"),
			decodeHexString(c, "7a754d665987996f1dd11d14f84bbb3e"),
		},
		expected: decodeHexString(c, "dd2f522f3fe6153ded39077ada175b4cfc848a5c9c053a4386abc59b2d77dc1dbdfea51495deb3d42becf8af29d6de1e05fcb986225f15840ca271ebac6f464ab3befb8447a0e915c6897fad7d2e1f1e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "4cda35e84cbc0b9b61639adfc41706d8"),
		nonce:                 decodeHexString(c, "f8089123e4990541"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f1b191ccfc897dc47a55f44ca1114951"),
		additionalInputReseed: decodeHexString(c, "127c6df989497363bc352dfb7e57ee94"),
		additionalInput: [2][]byte{
			decodeHexString(c, "01f838085dd1970c56c86c0ab517c2a6"),
			decodeHexString(c, "dac4d64a82a931b1403be0bbff4d4e1a"),
		},
		expected: decodeHexString(c, "8ab6b307d52f1f51ee42831fcf6e57c0cee69f3eccc0b352f1c85a9c0dbd25aaa7bb1b2810e207ee14ab784631a646a63685e6ccc295c6f162d0e8f85d0e0571aa64ddfb1d771360dcb0e75c2d473223"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1a5fadb4dbd948cb14cb4f8e298fa3bc"),
		nonce:                 decodeHexString(c, "19fb38a0a608ccbd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "09cd5a0bbd8901f14e54666db88967e7"),
		additionalInputReseed: decodeHexString(c, "aa4100c8ce6e317f5177ea3497f9c590"),
		additionalInput: [2][]byte{
			decodeHexString(c, "011656f23a855ba3abd02f8fdf20621e"),
			decodeHexString(c, "41816b1ce43f89b519c4bc820b5dec71"),
		},
		expected: decodeHexString(c, "adfe1e36b8e996b813959be221c14e9933a25b648a5270fe57a05ee7bffbb2eafa87d85b9a087ae01fc5e4192623cdc6dc51b011ddc11bb7a4652ecbfb4a75a68c82556f0ccc34520045a4d2ccce89c3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "342b1e477fb5c61d140475222dff324f"),
		nonce:                 decodeHexString(c, "31f3b7ad39676083"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2b12071317a784fe98c447923c35726d"),
		additionalInputReseed: decodeHexString(c, "f62a92c16b5211321666ae24221b9cd2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0c2e90c0b47a203a292ec0a649540038"),
			decodeHexString(c, "d15617586959de2a1cfa3208df469803"),
		},
		expected: decodeHexString(c, "1a09ff361ce29762e1f87f011d640c9e40a518da90546bd372aabbbadc20a163102bd2490b28e13f716c630135ca9d90cc9a5a319a702602a96fe3f8e4c11ef38619cd4d55b8e97226996d5352930185"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3af24ee39e95364c3c042571dca9302f"),
		nonce:                 decodeHexString(c, "2539d343eaccd5f4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2ad0382d2903b34eb1af0b92fa4d0cb7"),
		additionalInputReseed: decodeHexString(c, "e56dbc941b5e623ca923fdc797105f25"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d5420f13684316525852a26986e3f31"),
			decodeHexString(c, "1246164c9a925f97693871e8f54b78b0"),
		},
		expected: decodeHexString(c, "99914f45e5c0829c688a8172b2de77d3c9ac0fa93cc2339015f20af0a102da877ccfa9d6be2fcd7b7e5c244a48ea589649ab90b0ffad167c1f5dc3522c485cd47f78a7aa9971ddc23a540c671901b784"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "569a3976f8bba86ad84c7fcb713a2b06"),
		nonce:                 decodeHexString(c, "224b5003b239667e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9c5be17c210b6ba78d502c4b6d71ffa1"),
		additionalInputReseed: decodeHexString(c, "d5d4a3c97585cf34022d81e436b6ef7b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "539521c78413d1ac390106652fbc3e2a"),
			decodeHexString(c, "1ec758aae6536a9d048712c2130866aa"),
		},
		expected: decodeHexString(c, "a239260c69a0405a17614b98ee78f81662db445bd125912489ecd4b8f68284d44d2dfed7459af57ad3666b933e95fef5954bc8a43f0666ec4fae2ea7e00ba01dee3ceefdf50bd64c0f88c0a64eb5da18"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "e8dcf530c20eaa247a849fbfa61c55de"),
		nonce:                 decodeHexString(c, "70e76fb7931feef8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9d1a3eac6607fbf478f9f70c62538972"),
		additionalInputReseed: decodeHexString(c, "640249e1b193d0ff780caea979b372e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45e8b53d4366c630e23ef00bf663ed63"),
			decodeHexString(c, "387dee32c7405e8ec1bfcb150be10099"),
		},
		expected: decodeHexString(c, "27208036d3145b33ab193561010ff5d4325bb4df8aa063b367312466ef30fdc4355f48242244b0023dfe7420f6c3c61c764eb16b96717997fbbabcc1724984aebed67d5e732c5dba9c65c13b508c20ba"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "38ad63f96d6f41216b24ce00e610b296"),
		nonce:                 decodeHexString(c, "abbf2da253661e2a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8577e6917d89e36aa7b898313b28205c"),
		additionalInputReseed: decodeHexString(c, "59279b852c43a7baea6619801550ad16"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f2005c93a3ed265138aded6f0f3bc938"),
			decodeHexString(c, "dc2cf3e797098e114cbd6b3a412f4b17"),
		},
		expected: decodeHexString(c, "a12b1d89a5571ca442d46cf7ca9885959231e8794daef693864e5068190b9e4c887737f40e05541d82d2737ad9b15833cdeeb823f1a383d71e10c6dcae811ff4ccba521457f51f73f9890696f7ad4486"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a70e8d4ef1fb23de04f66ef5a48bc860"),
		nonce:                 decodeHexString(c, "b2f69cfca27e2990"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6348878dc501973a9035c293f4c9a80f"),
		additionalInputReseed: decodeHexString(c, "bab59a1401ef880afd65313ce64fca23"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7abbd4145627e510d21f70785edda731"),
			decodeHexString(c, "ac55a078204b3d00849095f23ed442d7"),
		},
		expected: decodeHexString(c, "4d8b197c84baf1677cf1a61a8086efc3bf0e6f3c211cfe60a6eed83f48107a0dacd89dffa48a6ed8e87fbfb02cb95fdfb8e82911ac61264decd3673b61a482572b8336c8c5975d1ccae5c4c53d6bf59f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "73a0dbd103682524b9dd80e0ef5528f7"),
		nonce:                 decodeHexString(c, "9985b25f4419c1c1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b3973a22fe7eb708246aa19a1ffabfff"),
		additionalInputReseed: decodeHexString(c, "5e82086b561a7929640b7f48e96aff0b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbf867108e1f033f4d46dfa7e5060db5"),
			decodeHexString(c, "3caddedd157579f7c28a567ed4638808"),
		},
		expected: decodeHexString(c, "8758d0344515b3c2dc0bb7bea087642c73890b776f52aac6a7574b4c44a4f4869fe72720839f2d93ca9d194b5b6188283077d0d07d539ff99930c57ecbe715eec26449a29a4bdd8a893da0390a6adfb8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed9_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed9_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3174d0c6e8eb2fcd117444d9b0357f76"),
		nonce:                 decodeHexString(c, "4c9de440ccfb893d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "81a83419ce3679cc396e1f588806a7d5"),
		additionalInputReseed: decodeHexString(c, "d87de5be122baae7f3f4e359a2cfeff3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "488e0e9cc228b5229687d06843832b03"),
			decodeHexString(c, "e5992f8a2ac65f54383d44899ea1e74c"),
		},
		expected: decodeHexString(c, "f3a252bf182cfa2404265c571da2b2bbca801453a7e7b9e962b34417cd2033e3118c378b4ce6aa6a048c3f89a8dc203fa1ebd70f1046e7863dc6887525c8025bda4a46421fe7c1d1fcb3e56dc71973c0"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed11_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "48898635eca886f80938f110bf835002"),
		nonce:                 decodeHexString(c, "25c6b62601b707b2"),
		personalization:       decodeHexString(c, "8db57639694c2ae7b0d37bf3d9f000bc"),
		entropyInputReseed:    decodeHexString(c, "6594ab4c802e7985df96379902211f60"),
		additionalInputReseed: decodeHexString(c, "222baba152c124cdbfa44c3a5bd24be5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f5e1f0add419b2ab6a02f2c87a2abc2b"),
			decodeHexString(c, "13847401ae1485728b3e8d911abbd8b7"),
		},
		expected: decodeHexString(c, "fa65319b8be1fed064d380b2c091c08c71d7edd0f521701f41a1fa6fc6e37ffd60946d12e1b957059c49e2219dcd48ec7ab6ab5a324dc65370c1e08664f2dcc45bac4799ce00ed2f2d3bc882b5afabbd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "8a8fb0b8531fe230494b9297ca027267"),
		nonce:                 decodeHexString(c, "75093bc8f3c9045d"),
		personalization:       decodeHexString(c, "60e3cc61d51398001bc598a602d3d458"),
		entropyInputReseed:    decodeHexString(c, "24fd21da156880c98788a8941c0e37d3"),
		additionalInputReseed: decodeHexString(c, "6282da4d541e504a19de4b6a56701f92"),
		additionalInput: [2][]byte{
			decodeHexString(c, "235db96fa7033e8193e79b225a43377d"),
			decodeHexString(c, "fa711b08f37d7e8cee53b552e62e775d"),
		},
		expected: decodeHexString(c, "e99f10d15c3d4b088998348c8846147df9bea027777e4bfd0f38357bca095357eeed0460cdc955ef339470218716afa8050e8751c77981a14bb2fdc03e7c02d92fb9714bcb4d9142ae6116fdaa20f11f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "14f5755be88184bd538b3f6b7898f442"),
		nonce:                 decodeHexString(c, "bb35645851a74f7c"),
		personalization:       decodeHexString(c, "9d997e4d3d5a041161657e445c468a60"),
		entropyInputReseed:    decodeHexString(c, "a8fe8d500b797186b969c7345ea0f2e6"),
		additionalInputReseed: decodeHexString(c, "ab1db0fd9eea8858c09537d0140691db"),
		additionalInput: [2][]byte{
			decodeHexString(c, "77066352cf8597d8106bcf5157de8036"),
			decodeHexString(c, "49f11401b16dc94db884e9c65dba5586"),
		},
		expected: decodeHexString(c, "5c7621c1b8bb2e3beee126eeb68026c20abf7f267f230beb9feee62a671310e1e36d589885a62e509910dbc4051b4e634e63cc41527393c617e922a81d5433fea8d5702eb9b38e53ce4dca7f7dcef20f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "bebed27795c631bfd0ae8e4938c219e6"),
		nonce:                 decodeHexString(c, "4a31a211e3ad38bd"),
		personalization:       decodeHexString(c, "88d341d4370d7bcfed187100c002dc22"),
		entropyInputReseed:    decodeHexString(c, "17c207b74c63143c168749e044b1d836"),
		additionalInputReseed: decodeHexString(c, "475e26fdd43eea8d0514be11acd8a897"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e0d8c4c44cc006fc146eecd18545d0aa"),
			decodeHexString(c, "8f1bbcc3a926a7910aa3b202df0fc58e"),
		},
		expected: decodeHexString(c, "5b0ea97fc443160107abae7bff53fee0426cf8c8672e7e7906728a836b361237a2bcb2c9f87129bedb28f9f42d66f225b7a2f002f237ede2597a26be66fcb7c57fcfc8ecd77220058b1607ecf9df4f37"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "d2f699b9f2199590aaf3959b4e2ddc20"),
		nonce:                 decodeHexString(c, "9814e71749153c3e"),
		personalization:       decodeHexString(c, "c447b14cfb743203a10689180a5235b2"),
		entropyInputReseed:    decodeHexString(c, "e8481785f2371353a182bdcf2b77f85d"),
		additionalInputReseed: decodeHexString(c, "cd527fd6be465840abba45b15494a57a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "01c663b3db0507acaa5d9abea60a91a1"),
			decodeHexString(c, "8a7f2c602d00d5c7dbf02dd6aac5b726"),
		},
		expected: decodeHexString(c, "a664b5d8d3f2eca171f985216ea27d58a97cbeb8b88bf32ce6e50562c9aa397f1a5c2684cfe3c43ce664c1d7069c2613fcf86ed6202741d6d13bee7700deaf142836e52ebdb1b901ba7900e973439301"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "52d503f78eec622d50083ce5ec6dcf9c"),
		nonce:                 decodeHexString(c, "117448163f9cd31b"),
		personalization:       decodeHexString(c, "1d82f11488e4143c288343a99bae8c68"),
		entropyInputReseed:    decodeHexString(c, "3e49c4fe82135e1b8b6a660e0480c1d7"),
		additionalInputReseed: decodeHexString(c, "f6a6b1af21bd8138e4ae43c88cab42da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9324240d0f3fe446391db28aee33641a"),
			decodeHexString(c, "8ff0e3d609dcbb6a25dd7a8fb48465fd"),
		},
		expected: decodeHexString(c, "200b784839f66e7ca10f4934b04ac5109de3fee41c5e34e049cb9f4285d2985d488738b128d14426ec0d1b639e65e1fa20ba4b3a4ccc015434d870a63c04c9dcfb4c46ead14b52fc4da328ef96cf8ebe"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6a2e2570923cb127693904991ab03b04"),
		nonce:                 decodeHexString(c, "2cf4bdcf43572ef8"),
		personalization:       decodeHexString(c, "5eff53d2ce8a7fe9ed1fc0fab22a48b5"),
		entropyInputReseed:    decodeHexString(c, "2bf78473636cb1da7e2816493fbf05ac"),
		additionalInputReseed: decodeHexString(c, "125fa3bf7b30d4600bca768907045dcb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "50003ce709669da84b8ef2fb94de3577"),
			decodeHexString(c, "92756c9c57e7c784264336dfc035d3b5"),
		},
		expected: decodeHexString(c, "ff9a28da0bcf184466b6668070cce1695cc6622610a1c7ad0918ce1fe69237edff7ab03ce19e74c5b4328d3770b8526c5db7ba7d0f6c00b89f4d72ac04c5d2453a381890927aa3833d7ab79aaf450922"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "6f870a9bd731e5991a9c698de2ac3213"),
		nonce:                 decodeHexString(c, "d56cdb8683b377df"),
		personalization:       decodeHexString(c, "329906dd03288c3f36a5f4d607f8e30b"),
		entropyInputReseed:    decodeHexString(c, "e943e2dd9af6f6b41b2c403ca6594130"),
		additionalInputReseed: decodeHexString(c, "fc39e1a2eb8c5cdbdef6a2b6a6385ce4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f75c53de9d8fbeda86b10f70ece2c36c"),
			decodeHexString(c, "947a5d369ab9c6d637407adc050e77a2"),
		},
		expected: decodeHexString(c, "eaa24a29aa1a34a0cd2a1c1e14f83f2c5de503afa4d0a7a5dd924c0f7477ebb53e7c59bf911b4831b99fb3624698924dd94f33406d86b9eb7349a360c207bce292e3bc77fe9768f0bceb07025a7c9195"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "add2f6f44e6a13af3e134e34b6704e80"),
		nonce:                 decodeHexString(c, "20c7a7a00dada26b"),
		personalization:       decodeHexString(c, "3b87a8db4fffd095cb0a3342c36d8330"),
		entropyInputReseed:    decodeHexString(c, "5459d54ed8ebe837d88220cdadf7d9cc"),
		additionalInputReseed: decodeHexString(c, "eabe9ecfbc66fbaaa2728850c2fa9c40"),
		additionalInput: [2][]byte{
			decodeHexString(c, "79da3977c95589d0fff897307740bb91"),
			decodeHexString(c, "086fbfafafd37430a24ecc13d087c711"),
		},
		expected: decodeHexString(c, "183a6ec24a3d911684eff18ed8464c76f2b06bf1de44b085f2b57f0488635ff20ef60a5d2c565bf7671cf8c15487eb51cb15052497ea80058a71d18b33d3c8446800d19803defaacb7f9261b52ccbf13"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "25ae04cc6df4a774f4823597ea521fdd"),
		nonce:                 decodeHexString(c, "7923a3e3b1502a85"),
		personalization:       decodeHexString(c, "44ece259631ef1a7925da70640504e92"),
		entropyInputReseed:    decodeHexString(c, "700740b899f9a66b82be22ff1f7e42ee"),
		additionalInputReseed: decodeHexString(c, "2aa16ccff42a4408ee6c901383081c88"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c80254c4c539aba8c7aeaa6ae31ef5f4"),
			decodeHexString(c, "1069147d6bfb5891db7ffb70d4f8a537"),
		},
		expected: decodeHexString(c, "3a6d68f2457aa7cf29922259cc71a5f6fa7e5a582f77ccb157da461675e116110ca2a71fc1f4ad5014a21d6e23b97ad768d16cae82509c61097429adc96ccc372daaf29fd09cae3194cf7a6058e9c7fd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "038ddeefacfe2756560ddaea4f37e9dc"),
		nonce:                 decodeHexString(c, "df6d25a5dff97491"),
		personalization:       decodeHexString(c, "09089f0a6944235bb0074cca04049038"),
		entropyInputReseed:    decodeHexString(c, "4cd25feb768238cb56fac02631ffd781"),
		additionalInputReseed: decodeHexString(c, "2438f9cb82dc539c37bad226f2117a25"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c458efd3c5311ec19db660f80f948672"),
			decodeHexString(c, "ac64f67626812078f6459230481c8e75"),
		},
		expected: decodeHexString(c, "1801dc5aed241268647049048c8bf24552c6d2a2e35d9a951bad2803aea8a1713abff1482634650955b1fafb5833a2ea8545d6d8115c04651bddf3f595f7b0f36a615b449cf26fef76c91b7fb8fcaf5a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a0b622857cb949033ec23db119363fdd"),
		nonce:                 decodeHexString(c, "40c57c3029f85343"),
		personalization:       decodeHexString(c, "b63200d075cdcbae50a47d8d346be91c"),
		entropyInputReseed:    decodeHexString(c, "ffc4ce08690c116468f362d8bb71e334"),
		additionalInputReseed: decodeHexString(c, "166025fc45f597339116bcc86a42d518"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e994c5bc729299a519c672e5a9f59216"),
			decodeHexString(c, "f3c5dbfbf8b62813592e4f0fedfb2e2c"),
		},
		expected: decodeHexString(c, "a33ccbae65227f6bd153e4493839a2e4a128a1d335fbca3e9f3c3e5d1bab5745ae3ea23cb22d586e0bee919ead3bb07868b5c9fef46809239689a1229881fd723a61e655a98ba0c288680268935541b2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "5785a9e5f4b24bcf2743b3aa6e503d5a"),
		nonce:                 decodeHexString(c, "c2d81f3ec24f98b5"),
		personalization:       decodeHexString(c, "3d4eb99eda9b7a2af2798c42b1cbd47f"),
		entropyInputReseed:    decodeHexString(c, "4aaf305d3734ea540fa224ebea780728"),
		additionalInputReseed: decodeHexString(c, "0d5a3ebb14f3267a86dd161a4bf2ad7a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06c2bd4e48782a55d821a0930184a5b6"),
			decodeHexString(c, "274d036dc973e6ff4082eb8bb05c4958"),
		},
		expected: decodeHexString(c, "3a0420a606d8f18281c9d50a5cab739871967d201a96c44925850a82741e9dc4471df5a3ba3c01f932dc5d012bb97a586258b21bbfebff3b25dfc49b58bc6c88edcbb4643882c3e20e7bbe697d702848"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "692bd8abe12b5c30c1d208d5ee7b61e4"),
		nonce:                 decodeHexString(c, "8999352e525427e9"),
		personalization:       decodeHexString(c, "a34941fe91e8d48837867057869d64e9"),
		entropyInputReseed:    decodeHexString(c, "2248af8790fe71915e311b276ab01d9a"),
		additionalInputReseed: decodeHexString(c, "24fb112c676b39fb70de3f86a8a888d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0ca8dc88f93b363fdcfbdd89d515c9c"),
			decodeHexString(c, "7b0ce774b17755a0c47bddbe6896df1b"),
		},
		expected: decodeHexString(c, "4246d4878bb6bc548b0f58b677602993756bdd35556928f0e9a5f7d966966f80a5e16d9abf6604141f2e3c1792b6fec1061bd43cf0e67190f4da699e64d917449a793280016174ee887eea0847a673b3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed11_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed11_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "86cb25c15d0ff889727aabc33a9c714b"),
		nonce:                 decodeHexString(c, "7f2b785751be76f8"),
		personalization:       decodeHexString(c, "753a5d9d00ebe875bff9be5a1c42ebfc"),
		entropyInputReseed:    decodeHexString(c, "13ebc4651cfc0de611b1be999f8b3649"),
		additionalInputReseed: decodeHexString(c, "8b4d9f6dbfa398735146b70722f1fd49"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8c03bb62ef876138266cc16e101a5eab"),
			decodeHexString(c, "bff032f314dfe65bb811430a54bac2d7"),
		},
		expected: decodeHexString(c, "d177e527b80d5ddaf26a111a6a007bfc3484044b9c933c21a208edf882a5c5f7b432f28463150db100ab8e07099d7d8faa6f446c23d7134b7b20bdbb8f1ac527fd9628baeabfd760a63d2544e764eaf7"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed13_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "95e98f7b1330013e982b810f683e5fee"),
		nonce:                 decodeHexString(c, "fb4ac42d4c9bafc9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "93109ece2d1a590ed174299561068539"),
		additionalInputReseed: decodeHexString(c, "c96d88cde76e021ec75137c5aca4e610"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c31069714981f6d539139d0ba38f5bd1"),
			decodeHexString(c, "9aa8477c0df793f0765d8b58181eab4f"),
		},
		expected: decodeHexString(c, "e4a1f1a7a5edfa4f9b30241b093f815c29ef0f30402ac0f1ff4d8c426521516bc7fad9985c5e3ebca7d4d3e96e2fee624feef9da55714c513d4a1be23198e829a989a4872cb302e384a6963d306d9c5e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "dab17b0eacf52e2986c6ffb790e7eed9"),
		nonce:                 decodeHexString(c, "2622b29bb789bf23"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "35406c1c317f67fbfa0b341b3860b2be"),
		additionalInputReseed: decodeHexString(c, "4a738e860d1abd9fd9d3f57e207eb8d2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3536d4fab1b6e03ee9d44cf8f8da8630"),
			decodeHexString(c, "0da7aa3d403e8c6e3406b1a9077290a4"),
		},
		expected: decodeHexString(c, "35d4879e5904347449ec6aa8e83e344cdbd2d2b86eb422f602bf121ef59f89273974597548b598295e00c44b2f2cec656a4ed4b2e7b9837a8412eca8b14fd49313c18d2b5e6867a83438e88907d37e49"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "91a94f73f1c8ec153f68adb27b6840dc"),
		nonce:                 decodeHexString(c, "2bcca0f791ca90ae"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "98f52450e5b04709f7ec5a276a562128"),
		additionalInputReseed: decodeHexString(c, "61ed1792c2d081ca1b692675cbcd0f5c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c24c0a1c69f6683a32a775be7a7943be"),
			decodeHexString(c, "3908b6f78f152d9bf564fc73fe02a123"),
		},
		expected: decodeHexString(c, "d7e9eadeab458a93508ae879f101c98954f30c92263fde54b3dc78993fbf8e22ddc2a26dfcbad96f230ec791329e6209ecae67dc4655ac7346799b7e6a09df1675b372b01ca93e711f8368f3bdaf94e3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "50d8c59227804615f3353e997e07c6aa"),
		nonce:                 decodeHexString(c, "03a9420539b61f48"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66578dc7e4a64f4b8ebc2d61bc45d750"),
		additionalInputReseed: decodeHexString(c, "ec30c1d18e927b8e2e31d89211b5e3ba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c815f8fb5264ffcb283df35df031b4d8"),
			decodeHexString(c, "b1152e871364bfdca16ec49fba4a06ce"),
		},
		expected: decodeHexString(c, "b0293a8d0429d550136d337f557afbc1345c15ba75dc756b1a50edc0ba9f7e427de5249bc53794af964a64bf65bece742cb701eff5249721244abbb09d83d4bb4d7f4269a36326f89d0db9be71a4b015"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "d5855b764ab10c7f45a9b36274b5f692"),
		nonce:                 decodeHexString(c, "90ccadb66744c939"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66165ae3a450cf1cdfdef0620226a981"),
		additionalInputReseed: decodeHexString(c, "76a08637b50d6be6c01943ebfb6f57ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "20f063a603fc98cc1e4d5f44c9b57e31"),
			decodeHexString(c, "4282f4bd5c9f3cc6daae5264f94d0937"),
		},
		expected: decodeHexString(c, "d0621aba3dcbf0e59d4814814119622e470782f6edc59085df81a5c2acc3c26ef89285a83ee2c6c55d56eddfdf9ce6fc5a5bfc4d3d3577bd007b28ff54e0d2b1a59a5a3340e08b0cd10e7d6f12914773"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "56b514d571bbd49a32657aef942be309"),
		nonce:                 decodeHexString(c, "f4d37f11c76a0836"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4fd65715096301a5fc2ecc38647f12a9"),
		additionalInputReseed: decodeHexString(c, "f1bca36ba176c1ce69bdbd1387fb4182"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24b285a4223a46d8fce03520c91db42a"),
			decodeHexString(c, "b59619baf154d930d81ac8a266d04f94"),
		},
		expected: decodeHexString(c, "e3d43732748d5f111861da99d7151af704e3e911957d5e1119f4d22159b4cc4fbe734a9906b4145ee75b39003ff072c05d704de4b94f16e772fdf7c14a4931195054b150f6b8fadaa946491b2ac7a59e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "9d2e8a78ac3a9b4f4c0333a0452731ff"),
		nonce:                 decodeHexString(c, "19ef086d862fb006"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6c082037d8fe2a7eac23148ce7d37096"),
		additionalInputReseed: decodeHexString(c, "b69b58416cc75cd630173e6fdf1868f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0c3063fd7da72a1bf7d9adeba00b41b7"),
			decodeHexString(c, "904f27bacb410d78db5e4fd108d7f4f2"),
		},
		expected: decodeHexString(c, "c54c3c8e1ec22d24843e3131cdee80523cc86504496bde6f38093dac15a97d9981af4662e6c74a949bf533064fc209288ac4f4b7f865698d58cb3606f515b7c13454103fc65aa9bdd3f1d1773c2aee56"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "5d2aae847ecea64e68501abb20eac1f1"),
		nonce:                 decodeHexString(c, "f082930e89f5c566"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b5844e9578c8e2f17f34aead46c43a87"),
		additionalInputReseed: decodeHexString(c, "29eea667312afc26da201c32d19f0823"),
		additionalInput: [2][]byte{
			decodeHexString(c, "57ae7fa0e243959080f32a94d6a18066"),
			decodeHexString(c, "2b936582be7a6793752a0b25b18b2f00"),
		},
		expected: decodeHexString(c, "6797b8adb315330b9c5a52dd9d123ec847c620909818003c03670e3afc741009a895d1bc06c9d9965f01aa183f0754fef49a361b62cf423291c6a06b5a93834642e3b22876d9b89f12bd4575aa32b1ef"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "70de24389f8cdcf9df40460a7cbb4be2"),
		nonce:                 decodeHexString(c, "f7ade1a15d30bb66"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "54183582445dcc8016993a9bbece400e"),
		additionalInputReseed: decodeHexString(c, "b708322918e0fb65ab784fe36db7e39d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dcf5dc9078a0a181fb1e87ffefc893fa"),
			decodeHexString(c, "2344bd82488a42db34184ccb6c5b2399"),
		},
		expected: decodeHexString(c, "590abae34ee5a8d3682bbd71cd8e12f7689db33d09cf13846f7d2abc3722eabb96aa7911efc857e11780c23406ba129cddf87752156f3688bd95006b9b8b703784a1225c92343c86309d479020436ea2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "386dfd2316c0a898cc78069425dfe9c9"),
		nonce:                 decodeHexString(c, "68b4ac988e9c0702"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4c480bff73a0b146c4776ef47c063d29"),
		additionalInputReseed: decodeHexString(c, "8d4d4681d4cd5e769527e3e7242f11f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f81050ad89a1e9aa489c880d7955cbe"),
			decodeHexString(c, "ae4d935aa3f78cc5f40a31a701f650ef"),
		},
		expected: decodeHexString(c, "80efc41d1975a017d970bebca3a8a6373c06376c325fe11d5ecb7bde69f2fa39bd43c24add5eff77419d1c0927af461b0591f1b0744483e8a3038fcf3eaf51f22f9d65430ab7dce3a02f2177e89642de"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "4e0ee9b3a2fb68ad39fb62f3ea5c1f11"),
		nonce:                 decodeHexString(c, "bc3f35e77a0fffc6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "14bcfae14a8299ff07a961a2aaef2abf"),
		additionalInputReseed: decodeHexString(c, "41d5fb003c87395f69180c5445593b12"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f3cf22a91eb407e645554698f91678b1"),
			decodeHexString(c, "781e6c1d5050fab3988c28414ec28278"),
		},
		expected: decodeHexString(c, "b721cced80fa417d610a7faaa90dcc5535f2514b584dfdf449708236f96298c561ce5b1cdc891b84891d2981ef734890cf197402d7a3a89d88f8031e57d813da71f9249db06022c7fc5595d98274d477"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "3c8b0443e2de85e6241f4de6bd9d5a73"),
		nonce:                 decodeHexString(c, "8f78efb7ea6e76db"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a07d5c493efac504e5f67b6bbfc4596e"),
		additionalInputReseed: decodeHexString(c, "7a921fa0af03d291d4b1a3bb1be39b40"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6825f88352606dfb34e162028ebef521"),
			decodeHexString(c, "ca1f2dca78de83b1285b7a52cf59cef8"),
		},
		expected: decodeHexString(c, "c107b915e6017bbb187cfdd354844378eb616cfe074569c956b19a4efd20ea44ca96efbd0ffeb7a2576ea8c366f096cbd9e465739bc3a841287309fd2a1e61fe3d33078468d8bac3b835f6ab2ec27dcd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "18c30a25fbac0c9c1198bb5d1b3ea0e0"),
		nonce:                 decodeHexString(c, "2d4b8f656ca88282"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0e670a49350c9d274c905e9a416e145d"),
		additionalInputReseed: decodeHexString(c, "adc68b877938b5ebcd60958aed34d486"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b102b6b78a0ecefa0d1f2196df3ed426"),
			decodeHexString(c, "763adc6b405a8a121d0fe0dc79c0dc87"),
		},
		expected: decodeHexString(c, "63989f28bae649036fc23564d91c8a1530e7a010a3f58cc843a4dbb876ac64d161be1ac3f26a32a5b49178d573c735e40cd418bb14ca4be101e5988241d3381109895315a4937d8d04eadce731da6268"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a72d37da79ea55b94ba55dfe6f3fad5b"),
		nonce:                 decodeHexString(c, "3405fcd61b2e8a70"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3b6dc17bf82798427a554d0d4828b6b0"),
		additionalInputReseed: decodeHexString(c, "63db0312140accb82cae2f5288c00932"),
		additionalInput: [2][]byte{
			decodeHexString(c, "26d358a37b88e51b60cd2ca97d0f1fff"),
			decodeHexString(c, "8d272521b0f268795787f674fe0f41dd"),
		},
		expected: decodeHexString(c, "1d5244ee5056779c48abb9e40ac0eaa20dd1c142d529242ffb02170a88db1dac10bf04b2d97371b6f22fb2bc90c769327de88664fcb7c033af9125fa8a55f3d3622d7431a8eb24078765682ebc4b02fb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed13_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed13_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "9a73d38066be81d3988eef3589aae246"),
		nonce:                 decodeHexString(c, "104720af121eda72"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "33221c76db385421efbe153fd59de7f5"),
		additionalInputReseed: decodeHexString(c, "a1b82c8e8a3cc505c11af9797e385163"),
		additionalInput: [2][]byte{
			decodeHexString(c, "717d01683450a42c10a2b1c699f79a35"),
			decodeHexString(c, "1c7aaaf732e7b2c8d5f120871effb45f"),
		},
		expected: decodeHexString(c, "1ebef48df3989dbfea4910eeb4ecd379bb4f97a1d729e58a067c6c883944a6e6f27eac20e38e9f88158ee7054f5c83705fb969ca2555f3576e4580ad72b046cd8ad28f3e3d0b8f80b18138a74db2b602"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed15_SHA1(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA1, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_0(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "4cc9f7c5f20ad9b38e4950216439917d"),
		nonce:                 decodeHexString(c, "f3a03b749fd9a504"),
		personalization:       decodeHexString(c, "e22e6c37d178daf2294213ffbf1353fd"),
		entropyInputReseed:    decodeHexString(c, "ebe40bf605e8899050fb1b2b7a13d393"),
		additionalInputReseed: decodeHexString(c, "a65de1f61f5dffabb944557ac0fad3bf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "504d736ad88d2bd0ea73bd00379b63ba"),
			decodeHexString(c, "883eab441b2d5f15e24546f5ebacc1b1"),
		},
		expected: decodeHexString(c, "5a6e6115d8c767151470aca459c3f46217ef00c4b68f98c7dbf07f4be215b746ca380270ac0bb04cb5e8c918b2a7062564dbc705975ad275a369c8e9092acdeb0801e8140fdbb158c6ac85385ad37db4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_1(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "16129142501677bbbc7abbac24345634"),
		nonce:                 decodeHexString(c, "f95597f5af717b22"),
		personalization:       decodeHexString(c, "9a5e9790934755fc6e1aeeeb5fd91e94"),
		entropyInputReseed:    decodeHexString(c, "5b3e74d3fe52084b100364e69a52b2d4"),
		additionalInputReseed: decodeHexString(c, "91eb7ee6197c9aeb2d704c031b16253f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "49cbe6262bdec0a816fe6c871d998552"),
			decodeHexString(c, "ce03ef853830918c4b94ea4cf8f6023b"),
		},
		expected: decodeHexString(c, "e3cebc464e4ad69ac7b4730fc7a4164af6d03adc951a75225fcc7f2c3729501b925d8e3bb812d28b4b351509eae8c94c578315920b8d1b4f6f6394a4479c001b10f3abc5e7cb3f55e0dc47252c4084a1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_2(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "ea5fe3ea0b14bd632788d16aad37dd1a"),
		nonce:                 decodeHexString(c, "9c49f9b6536e1121"),
		personalization:       decodeHexString(c, "0b4ad92345e528f6de5a5cc16e3858dd"),
		entropyInputReseed:    decodeHexString(c, "118973245758fc1290b06223011496af"),
		additionalInputReseed: decodeHexString(c, "2b0ef5432eaf0f4bfde86c147f91cdcb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3588432568be9e5fd4413953c8575dcf"),
			decodeHexString(c, "8fb5929cdfc67a71014d08e467134e21"),
		},
		expected: decodeHexString(c, "e1ebd525c54b9a19f9692c1d1ba70be722b8bf28a0f4771b507af46da407757f6c737945d5ca7a31a42af48a0e72ddc68715e4541e5589ec343b340cd768135f24c9b173181370b8d808b58df2fe6f66"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_3(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "b6a76e6dee65f2ac5e13233b8a47af3e"),
		nonce:                 decodeHexString(c, "418873e87c05c8ab"),
		personalization:       decodeHexString(c, "4442552271dd96531c632981a47d93ec"),
		entropyInputReseed:    decodeHexString(c, "0dbd5cf5d73074b853b74bdeb0013ec8"),
		additionalInputReseed: decodeHexString(c, "d13a58ff69bb7c29fd423fed78a12c2a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2d21074c75b6d4676eed684f00cc39da"),
			decodeHexString(c, "7d3f33a0b5f4570729e7b5fafe912a47"),
		},
		expected: decodeHexString(c, "7be9a0a3d4c550825d9386a06dfb81df3811fb62ba46eea5297554289b50661bd1105d38f9fff2b15dd472e7a2023edf97d25a260e0ed6f04d48c7c5f94f67c2fa5c72443fe015959a8ccaa996c574a8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_4(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "bcbc894f5b1326df76bdd825ca5ba1b4"),
		nonce:                 decodeHexString(c, "a4486fe30fe073a7"),
		personalization:       decodeHexString(c, "daa711fc9e6229575083bfaa65c8f215"),
		entropyInputReseed:    decodeHexString(c, "808a11c1553dc9d8ca30552b2caab363"),
		additionalInputReseed: decodeHexString(c, "92776c6f5855c51eef7cbb4e0a8267f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "561350e9fa4cf192eb5e68d7aa6595a2"),
			decodeHexString(c, "71eede0afdf6b877ac795c6ab695cf6e"),
		},
		expected: decodeHexString(c, "25df93fd7ae3bc6ec553bdac602f4f61013a426123175c0260f6ca6037a751cef8c795549a37dad254bc28611f9fe9f1d36b4fd14eb48dcfd899302d2a75c9d28e1f92bd78f9257a71f0b0241604d14c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_5(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "c06f2df94f8cec218223be9dc3238728"),
		nonce:                 decodeHexString(c, "8e4e8cf3a3a59a35"),
		personalization:       decodeHexString(c, "be49660f29b52ad63511cc0607eafc66"),
		entropyInputReseed:    decodeHexString(c, "513d68bdcff2d3b73e0d5ee4914ac8a2"),
		additionalInputReseed: decodeHexString(c, "648803c6f74943e602a859c7dcf7550e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8b34f68afb6480c9e21d9601d6fd6ebf"),
			decodeHexString(c, "eb857cc8966604df9c2144130dc6981d"),
		},
		expected: decodeHexString(c, "e2a7de7334c8687823fdf85bb58125c7b347114bb30f4221f7a3452bf34e5c877be9013c19ee1705b19797a05395d106b91359198e02891543e460528fa40567a2387faad95f4ec408289ecfc5a75a87"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_6(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "5adcb5b71af8504297bebde1ba2ca85f"),
		nonce:                 decodeHexString(c, "f3f793eeb2c013ce"),
		personalization:       decodeHexString(c, "fe08c362d31f561d29a6861eebe63f33"),
		entropyInputReseed:    decodeHexString(c, "fe069eda5cfa85270a87aaf564de4e58"),
		additionalInputReseed: decodeHexString(c, "1ab2d68ce0bd0fae19f47256a2b5c488"),
		additionalInput: [2][]byte{
			decodeHexString(c, "481534a00fbb61da26346bf7b1a8568c"),
			decodeHexString(c, "926acfcd0a7dbcbae4fab435a1625d13"),
		},
		expected: decodeHexString(c, "dfb3d7ec69b350d398e8e711e943135234046fcf1cc61f4869c5641c40d9e98284aa4e9061df3a9c1a8476d5799449decba749a2be282fd54377e6102952ba4fcb09a065cd3d2d0809d99ef7c1858a9b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_7(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "867982f8e098f13df74165a88122fe51"),
		nonce:                 decodeHexString(c, "b3d317cbaa151d50"),
		personalization:       decodeHexString(c, "e44a4d59e0742d3c66ed2b48ec85bb90"),
		entropyInputReseed:    decodeHexString(c, "f76a7052b09a1042b6436dc375ed04a0"),
		additionalInputReseed: decodeHexString(c, "b63332ac2c66bb572e21a8ab5c444e3b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ac12d6df7b1f1349636888dc16b0925"),
			decodeHexString(c, "1b2b644694708a2ea9eb443e8fabb41a"),
		},
		expected: decodeHexString(c, "40364671abe43d28abd9f3280a7a47721a952d42d3bba2cc4507401a863de55eb5d7f7bff17498f1bb7ed2c9958165c980e2f9c7dd647754529533d349db618dd9fa10c4ec410fa1d20c2fcdf0119c5b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_8(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "811cc187b51a7e7080f0970859c78783"),
		nonce:                 decodeHexString(c, "0e315a222f3696f8"),
		personalization:       decodeHexString(c, "d1186154335794e99c77f9b53e9aace7"),
		entropyInputReseed:    decodeHexString(c, "2c623a3f98f3246acd88b67307ecbb2c"),
		additionalInputReseed: decodeHexString(c, "c2be6e9f1cf7f7c588c6b9b89b3cd914"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c0018eefee4b8bdc43a00701138608cd"),
			decodeHexString(c, "d241de8dee2ca5745f021d3dd6dd5be8"),
		},
		expected: decodeHexString(c, "cbdc22d220b7493cdca9c9772e0edf98f5efe27326cac0345335839fe88ba03ced0d5c1c9b0702f122ae664b6b0ff25631317264b802f3f12d50e11d0789b54118aa2420ea9877c92b6cb4e02e1c9203"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_9(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "786f80a8f48beb50b3ca56e837693e15"),
		nonce:                 decodeHexString(c, "2ec835695eb0fa6f"),
		personalization:       decodeHexString(c, "5dc2a8da2e1ab33eae6f3e0aec6cdbf0"),
		entropyInputReseed:    decodeHexString(c, "3d759b56d12ec071066994fe00a4464a"),
		additionalInputReseed: decodeHexString(c, "603614ade1b9f4ca371fe4c6d941dd8a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "926b9c46e4e5fedb3abf9b06f1857a68"),
			decodeHexString(c, "83679add00177ed94afffc6b496ea4fb"),
		},
		expected: decodeHexString(c, "e9860de33e70fe4d7007d9c860ab219ad748b0f3f914eb23d1e479c6d60798fd89fd915fed23abf954bd9d567d00728003b260c4d6fd59fc97a60c43d57f2aa79e642acba52e23a5f828e6a6393e30c6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_10(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "a2a8c1f763ace0e9857dedd1eeeabfb2"),
		nonce:                 decodeHexString(c, "96125af30fc17484"),
		personalization:       decodeHexString(c, "ad4b1c6aee3939270a48a063267d8651"),
		entropyInputReseed:    decodeHexString(c, "756f83b99e98eda501a67001167a2277"),
		additionalInputReseed: decodeHexString(c, "2dd5f5711825bf33900679b8d4c31e5b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d14673bef7c01c23dcf192ba14fa46a5"),
			decodeHexString(c, "c6b121baa5a126e59c9766709f2a9c94"),
		},
		expected: decodeHexString(c, "a3495a37012933b8ac12a6893703a078c332b1c266fdbe1a36e7168de1908a521af97275716da642bd5be724f07f650ac213353df3c60c8918664e10d307bbab3346b981c7430b16fa11da49d4305e8c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_11(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "13eaddc5753feead44a2b33e963d5597"),
		nonce:                 decodeHexString(c, "557d0a22fb2ce08a"),
		personalization:       decodeHexString(c, "40e643d8b26269d5f9bb6c71e6cc27ea"),
		entropyInputReseed:    decodeHexString(c, "4b05204fc360991015b60e51db9743a1"),
		additionalInputReseed: decodeHexString(c, "0b1b362167a09d23ad987a030c86e93f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ff22c745b6716200155974609519db7"),
			decodeHexString(c, "c10f0740b65dc9b25cda1324710c4ede"),
		},
		expected: decodeHexString(c, "cfa7e2b5622c4610ba921e001b6a9ded2fcf6cb9dfc6f65b2224f142dc3b3335acfa199200581a3363ec5096fc8c825710796ba17fae8a19d80ec7106546fa4014fc2b53306d0aff535c884ab016396f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_12(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "4e9cc476fa583315cf35ab5b773d135b"),
		nonce:                 decodeHexString(c, "676d0a49aab84b92"),
		personalization:       decodeHexString(c, "24a0d72d31c9237d671ab5cff704a609"),
		entropyInputReseed:    decodeHexString(c, "2efb6d5e73f3be7f392706c6070223b6"),
		additionalInputReseed: decodeHexString(c, "afbf95c02d0fa3e892092a9e5e2e45e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3d83756d0b06ff7616af97dfd0b1dd20"),
			decodeHexString(c, "31bc832eb41a66a8c77328d7c28c92ee"),
		},
		expected: decodeHexString(c, "c1718cf236c95d893510163f8b77c815f103c52e1a151424b2c966b4188514d119dbf404e8dd1016f859b478d4f49ac9ceb0a93809d7ce00a920fd2c616fba36a05bcc6b79487e0f84150773d5bf4d83"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_13(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "1b0a3224528288fe051f98a4234e0447"),
		nonce:                 decodeHexString(c, "1b3b2f3e6e813278"),
		personalization:       decodeHexString(c, "f21d59202386e1d258ce845434c37c0d"),
		entropyInputReseed:    decodeHexString(c, "14aef368b2e11cff7218a44989f7e744"),
		additionalInputReseed: decodeHexString(c, "56eb3211e9246aa317f5188a1675a691"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38a77c78aed9c77aff1c9a043f53bef2"),
			decodeHexString(c, "9d477b58d6e1f5d5a2cf9e9b91d14400"),
		},
		expected: decodeHexString(c, "9cbbb7471aa72a54a4ba2bd3b1e7c872447fef9b2590cc6b3bddd88a8e970cdc6ae5da795708c2ed56936bdb9120a762ce3e9b60f35c6778fef87d01ace231710e31edcc206eb5186a8277a23f8fae26"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed15_SHA1_14(c *C) {
	s.testHashGenerateAfterReseed15_SHA1(c, &testData{
		entropyInput:          decodeHexString(c, "682af7295b118fe464a60c9dfe489d03"),
		nonce:                 decodeHexString(c, "b639c0def20001dd"),
		personalization:       decodeHexString(c, "a5b7ddc635cc7bccf3f450b87b12ef35"),
		entropyInputReseed:    decodeHexString(c, "f3d87e2f3baca2650af1089492ae6c3f"),
		additionalInputReseed: decodeHexString(c, "4367b1856f5a16f0dc064c8bfdcfdfe3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b74923119b70dd71a230075b54edd49"),
			decodeHexString(c, "9398e0de9c3fe5ede761095cbbe473f6"),
		},
		expected: decodeHexString(c, "fdedebff763209c77914b3e7b17b7a9e586044e475b7ced4c68b4920d84a550d92baee38b435d686d9102fc6aab3810e3f672f371e58b139d9896f1306283a0b1c28c08743842656d11f2bf069a4605a"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed17_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "07b142637bfb28966322a176ca3f9f4f820c0ccfd34a6d58"),
		nonce:                 decodeHexString(c, "767ae1b33a9b3b9909496365"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7c184c7ac4975f4d2e1b322ad1de3573f2131485e8e5c947"),
		additionalInputReseed: decodeHexString(c, "b23f37a267ca662249f963b8ebb2bf2f34041ac21291d5cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "331295350825186e98c4aa93933d17eea21d78578fb9228d"),
			decodeHexString(c, "7a5771a6359211cd8fb8e6107a6230a7767553191216dccd"),
		},
		expected: decodeHexString(c, "12e7c8b77cd0b4839d78e7522fe2c2c5942c4f7bf7b2750162418174f951e063fb9e5a93bed90922d47cb1cd7e8f98c0319cf07f33440f65b1cf4cc30c69c19eebcb7a978f4cb7c6b5845e59ae845cbfc19fdba1bf66babb4669d6f0edd74cb630e96468e0220299660d00357ec5e17b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0e9eb0738db584bb19e54c371a6955939899266e7a0aecac"),
		nonce:                 decodeHexString(c, "0669e91514988ea5e2897ee7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5a2df35208348951cad2aab13048d8d88a3402aec22202bc"),
		additionalInputReseed: decodeHexString(c, "7b2d700d810e41e2ae8302eed86b97c2ff5a9b61a6ce9179"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c9fa05f54429dfc6726dfd78c0c1da095cb8e51d0e3e3850"),
			decodeHexString(c, "423a21d3905befe8f4d02423e4236dc239184a73c350dd44"),
		},
		expected: decodeHexString(c, "d377861b9a573d6cfd568eef4753788bd91aba040a254bd53ad8bfe26dad53f0b89f073dbd335ad903fbd4881b202dea73869dccfa5462f6edf8e1d8f70fa063693ca874349136c94263f8b2cfb2a191263ba27e4b3454b0fb27c156e26a741025b5f3d2d020c7829b41c085a9c81b59"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c79bceeb049c80e965082cb9b93a6cb8af8d4240860240b5"),
		nonce:                 decodeHexString(c, "bc9b4eb25ff01b2d142fd28b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dc891256650cd5a679f967423a876ad1f7f826b04b452488"),
		additionalInputReseed: decodeHexString(c, "6e899e327b79993d80bbda2180c4e1eec8394d57db53a79a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2837640c83258ec9a32083d51db8036db706dc7d02a9447a"),
			decodeHexString(c, "da745a58e5b7a06f79bccf8956955555ff684a104e32f2bf"),
		},
		expected: decodeHexString(c, "55aeb33b75bada2c7c6d4cf6f6c099189227c2fee336f55f89185008f68cc635f8f7e3cd6a4fd17f5bdf80b4b203e3d4ae86af7069dea67bb52513c51d978b22e1cf674de42ce2f6df977d8a7430eaa1481db6cea675e25299fee158b666f51fd45b05dc964f80b01717f09f68ae9834"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "57e141a0ab18b4cffcc428d8f0eee6c12292e2ed004ab26a"),
		nonce:                 decodeHexString(c, "aa30ee6701f5afb13e0ca365"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8747c3ddcaec1486f37ffbab96c81b29e08c37335401c5a8"),
		additionalInputReseed: decodeHexString(c, "7386e11629a972095f6aa0df5f931b21ec4661fa41c36a28"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a820b17d47415610a8ca72a06d302e95f2a4dfa4e0a6a40b"),
			decodeHexString(c, "b8b0b9685b0036495afc07dedc3dbc56f33ff98edb88db74"),
		},
		expected: decodeHexString(c, "18bb585556121c52d6fb3a17c7e4e50ad05a8ddc64a7a55473ef3558f59c78d7ab051ea770ccc9ef3972b24822ddf75bcca6117011a4d6f798f6b65959326fb33fe36f56b8576a1670b1d0cdcbaa5de22eb5012e0a3e71fe2da1c49cfb2cee794475b8fd3801ab0ef5d44d67bf2341a8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8bfa621acd9f96f74ddbd0ca163348e8d93b9bb403c34bb6"),
		nonce:                 decodeHexString(c, "fa26b0d2e38df2a5572ff6a4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a183d4e581cb9f1183467faceca255894907567efb5673d4"),
		additionalInputReseed: decodeHexString(c, "d5175ec115c8462984d9da9cfd019995da8ff3fa75cd7760"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82283f3ac813fa256126494901348d12889bc3f8adff8546"),
			decodeHexString(c, "07d337864c17a705ff652ff750129b94455fccacc6dc76db"),
		},
		expected: decodeHexString(c, "75caa843f39424f637d6bd2414084b22715f167b341d79c3db9b9b51718e1b8000a737632b11e29565d05104a140785632c64bd66ad76218085d490d7720842db47753fce76e77a1b158b34dbd51e2aebae56532356cd79f4bc6f68a363709b7ddac62e12f0d6aecbbcf802bbb2b6541"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "404087fbbb3a30e7facabb8a7caeb27454883d6f822ec289"),
		nonce:                 decodeHexString(c, "63f9228974e0ca16d085a15c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "863518bb7d3fe3c87729d970a43ef8ae9bad4161e0a7e420"),
		additionalInputReseed: decodeHexString(c, "1eba890ef6363df5682fd9ef77d7671e257438b4be2485b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "50186b6e0e5ced6872e29e6e51958d4b45a76ddcf2193a09"),
			decodeHexString(c, "ffb8f0ba582993acefe943d9edb1f1bc9e3ea21eb4377fe3"),
		},
		expected: decodeHexString(c, "5719e82d4d260e11f9188f4fd455e98c9e7c9330e6b067bb5961db43bc01098163702cb5cd0369f32457e38adbd04aaa621c0f9d378c9dd6bb6ef9c5850d37ce61fcaa548b73c6d3e7169c6272700014aabb975b3cf1681e5e496160ab578d140dd626084066a326fab4fe871d7fe534"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3d0b15d10c703f302a83e4810d4ffec1b08145eeefa3be51"),
		nonce:                 decodeHexString(c, "395476ec321df48789c3a366"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d8ee7d20aa4ab35be86893c6d019189032c8e714c50cf638"),
		additionalInputReseed: decodeHexString(c, "a9e3d51745325d04e4f6742216790426f8a98044152578df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4805e47959dabea4c303b76f18f0f019bdea8f245bb661ba"),
			decodeHexString(c, "cc50c6023e02b24b107fca55808d2573d024b72ebcb9c44a"),
		},
		expected: decodeHexString(c, "b193160079edaba72e9c8a04edb5de51d54361b75d128659b2103316576f11f4cab2e97120a1d58336d0af717867ec8c4294a27c18d0408e8e3b8c053e6be5ed3546f09822da4f5b94e03d39a64c1db6653ef768b91c4cb59e06a65ab5bb125b302d43a31249f1d9277175f2f43d9643"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9fdcef9d7cacbb8a647cc6c14e3eab134af03c553556e78b"),
		nonce:                 decodeHexString(c, "5d4b37824f13ce6dab9b2c10"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f9a710bac04debfd324b82dfa614735072a6a3581980e8d7"),
		additionalInputReseed: decodeHexString(c, "c65bbae3bb3b27befe552c1c2e46f330901c180fdcb76376"),
		additionalInput: [2][]byte{
			decodeHexString(c, "43bd1a47667969bf760c0bdf701ec3057ee0e7c5e0f4afbd"),
			decodeHexString(c, "7f78088fd8904c2594d2e91c1eead3aa76e32343c5513711"),
		},
		expected: decodeHexString(c, "8143fe77e8c88833c38207a5a4330e5fc76a8b367b7f0083772bbb2ddbb2f8bdfb80064154ea7161c36109c223094ba4e1145509398c75b905a703f84a1f255141fae68121294ac6ed7150b8a2813824ec03778e49ff7e42764701b4cbaf5989bcbd3770c2962b2bc89c26cd71e4aa42"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "98d93297dfd3476c551d667525cf0d0adb07ffd110976278"),
		nonce:                 decodeHexString(c, "469d2c9c7317e518c70507af"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "787045f054d23d87b0449f6744d8983929e624e9f1095124"),
		additionalInputReseed: decodeHexString(c, "0837082a2399c1f49fbcc48f1ec78112f04abd6890a77c5b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a9fdd567223fe5a0ffa429b1a0470aa4155317bcd6493aa"),
			decodeHexString(c, "6a0798e3ffa997a6507d423b0e6b6eace9adc358dcf3bd26"),
		},
		expected: decodeHexString(c, "88caf576334e63893e31d13d6e575b53b070fb2769ac753dc18be669e2f0e257cc67d00453362e34d983bfab521c1843b1e6e24ab90c2b8ea58ff7be5f04ad220a217948bd7c54e8006e19731ea0098eac1311f3f192b0487f3fac4b2d63fee40a290760017e8a3847a2031a2a8891ff"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "003ac987ba09cfe3983e09469ef8ca0f7c432fb216e80ca0"),
		nonce:                 decodeHexString(c, "28cabbae26f4628ac1923e1b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "045b0c94d3b860dd9a823f6cf9f47006722136899cabbc2f"),
		additionalInputReseed: decodeHexString(c, "e087cb1380d67d436b4f0e7963e240b541af3078bc04dd70"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3908a2e4b26c1c72c542e9b28453064edb7d95c81da0e66c"),
			decodeHexString(c, "a2dca9db510c6df83ff81f2b7bdb77dc6c93f7db9fb0c640"),
		},
		expected: decodeHexString(c, "4b4c17c1d9d5e27322978453a216d3ee31ea7ced4e425288d3c6363350df9177c1f2b774f51ff02a0c5024c179183fecc35811ca4f3bbb32ca9017e454f25717f4ff8480150960ab174861498fa4853f44277fe8a68453c818c298305af6b6d9c55c2296f0dee560fc2ecca15aaea597"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "42445aec2c544bd8d6daecbe0c21509ad2ae92a35bcf9b25"),
		nonce:                 decodeHexString(c, "c92bc1c804ea84766ca481b1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f7a52977362d48a3083a51fca7c4085b7912c54e359b2859"),
		additionalInputReseed: decodeHexString(c, "1ed21748b44df50ad37ef0c457536df0d72ff59754eed4da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cad402f9180e2fca41bc4baba934f910945762906b782e9f"),
			decodeHexString(c, "2a84f3c85aa95fffbe19f4e5a2211c0a2b9fc1c9d7de0df6"),
		},
		expected: decodeHexString(c, "44805f5b9c62046c261beafbf086e9818a8b3191374ef76a714a39cbaa19ae30884ff834d2e971c9b2fb05c98d0c3e631b4b422343d28a5ab7f82c799d7c6bb8757f8639499c9fa4ec6cd93dcd588a5d3e78508f73f4874cb1d9e5902e46982b9e2492327afe986fe9923d8aab0baa4c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ceec03c1f6be26a3f51772945de7e1a7a3c45f3c6f79438b"),
		nonce:                 decodeHexString(c, "4606c9f2d0a1b3530aa7fb14"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0090db711f47a5f4819a665ceaf85c6ad7533c7bf1375070"),
		additionalInputReseed: decodeHexString(c, "5559ac4b3792924f7048e73d241f85953f8610922be4781b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "624a18cc439acf472abfc83add520e4e2322c5f3986acffe"),
			decodeHexString(c, "1764b16f0a5881539e08ed6562e5ef415a2631be69d6ca42"),
		},
		expected: decodeHexString(c, "8a9e2d553c5392a1b4adaa10191ba0d97986bbdc51be7794cc564d20721304802d061cbc5baf75723611b8a4f2d56183c71e824f265737170c16fb9c3c8852300589189537de5b8cbec0c4fa118e2eac609f893462050915ec086679ccf31740e424fde1182a52e1a3a12ebf83a8ff3b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "f9e8894619ea4e92c8cd006ff1afa8870fe9ac7c998c75e3"),
		nonce:                 decodeHexString(c, "79c3c3993f38070f3544c18f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "19a4c85332b65c24bb0b705dde2647f1261c5f02d50f0076"),
		additionalInputReseed: decodeHexString(c, "015c55a4a10dc0dca4d2297e7a9354735d956d7e8b003193"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c40041aef87a67385749fc078b5def6840a93c7612741d95"),
			decodeHexString(c, "682c162e7f4e33ca60fa52f583818512fc4f0b2996e99568"),
		},
		expected: decodeHexString(c, "2a9d97b312132a84bd852dffa04502d3cb274b0ce9d92e8a49c3a34fba92c3ece83a2cf7f2f8b1b307b99f36623ae93a3031863e2e3c1815c7db3782d39c321e68e2d283bed5f3ef57aa79fc71afb99a71963ec38962298f9d629b784268dd800515d22517359c1b867ca3ff8bc7f161"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "cc9e05b60921132a92c2be06ba6d6f38e9962823e88eba38"),
		nonce:                 decodeHexString(c, "c8f362607d934bcc8a46d5c5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9bf860526fce9cf32976f54e8aee16cb04e71036e4a213b2"),
		additionalInputReseed: decodeHexString(c, "a3e1c86d9934aff23a1677ea40ebdc13cbcb17bfbdc20547"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1abdba4c6c7967bf8119a49d2bdb7646ed88db3fb24f0cbc"),
			decodeHexString(c, "ef1fe93137e16fcc30c903e03b6942d212eb2c1c55065e89"),
		},
		expected: decodeHexString(c, "009d43f01e0e8f76c2468a4ec840abe7de1010189e23cdfdcdb547bb53c4e1f2ccdf487658aec6fef86c2fcc4b86d3b99123fd6dd664c8bbe1e50511d4e577d87dd2a3dcbe1d281eb6077e1a372790b3e662406d151cd16c578a16891f8377f2f2802de9e6e0a286f589b27908ad74a5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed17_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed17_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "141b79f0fc4d634816412b39a37e9caf4e9bb3a9f82b5649"),
		nonce:                 decodeHexString(c, "4476136091a0fe4d1e65835b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e509b4081fed1cc6708ea3646409196cfa75d8716050854c"),
		additionalInputReseed: decodeHexString(c, "96f718b79e774a9e0a19bec88dbacbb0d058036dae778475"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b08aa985003a5e490fd7427059609feaed65d185b2dc7dc"),
			decodeHexString(c, "cff1c0728d1b1a5cdd4d1167d03a18bba33af2179db847c7"),
		},
		expected: decodeHexString(c, "197c17e8379a81ee0d7425cd91f8cb94f4ae853dc2b08db5c249738a85ef4107c284ce83d19c1d58e00ce53bd2aa57a999f871629b74aee0f7fcb8a02910163479b8e18b6eda583b8196699c1a6f716feba584ac4bc19b073446f834186e9ac33cb5483667ada7f2774fb1e1ff037181"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed19_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "184cbf7f1c462f27fc640ccf2aac1b26174ee41e42dcceaa"),
		nonce:                 decodeHexString(c, "09f9d8acd06aba74b9f849f7"),
		personalization:       decodeHexString(c, "5a5afe330e898ca94fad05b0e6b3f8146f46c90379a0b1eb"),
		entropyInputReseed:    decodeHexString(c, "b5eb44d3515c74d2cbd28c4ac5edb5fb95846e74e8398ce5"),
		additionalInputReseed: decodeHexString(c, "a793fefe0f2ab3e9a0d1ddbc058d78369b03597f44099a81"),
		additionalInput: [2][]byte{
			decodeHexString(c, "930ef8531a344fef957660cbb401583afa0f016b7023a9db"),
			decodeHexString(c, "2ee03b7314fb00e1e2616799c144cd58f051cde370588d70"),
		},
		expected: decodeHexString(c, "22b856603db40f1b6d439d5b88fbe4734f7fdee15f4df47dfd418b362f23e48fef0f48f03d1a7b7b0de607c2a8288b1aaa01bc84646c322a88b2351855d7fa1b66b0b12baccbaa5ad6cc71833998f8998712bddf54ab8af329c55791b7576cf36ade4b921009ffe32a8d22ecf4747571"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "cbd73b73436e8eba55d80e680fbf0b3993ff3c32ed3b39c5"),
		nonce:                 decodeHexString(c, "5509cad8958288606f1b6e5c"),
		personalization:       decodeHexString(c, "ab4d25d4d936e5c5dbb7ad509c7872d9c421758be611a2f5"),
		entropyInputReseed:    decodeHexString(c, "25878dfc58788afbd908effe0eb288a503813d28f4d3a5cb"),
		additionalInputReseed: decodeHexString(c, "785a6625a529c6041f9b3d45ed7bff6fb4dfcd5f2b893d8a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e84b7f8eb2b23fbc06abd455768b8da9cff2262a73df3577"),
			decodeHexString(c, "344c0ad64c6b73ec30a1e093fffebd2c4a7eb87755b3744c"),
		},
		expected: decodeHexString(c, "4b29dc33c856ec6b0e0558fb23ce5d2cfef672923f9de1cf8792c36bc3a8799ae6600b425b6c1a3a625c92107cdad742f0938f708fcfc16fc960a73a646c33e70d88ef449a347643ea14c8c013a4d84afdba5c544a7e4df30203a5813939eea74f699569cd51c1677e7c023eec7e5d68"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "df215c47a2daa095612557361142e2535a60f00f3596bf2c"),
		nonce:                 decodeHexString(c, "456221499ff3ad857056d806"),
		personalization:       decodeHexString(c, "fdc7ea9f39d2b82662395589293900285e300ceb745053b4"),
		entropyInputReseed:    decodeHexString(c, "25bb7af661332c0c53d4dccf8b98df0e4b82aae3d28abf16"),
		additionalInputReseed: decodeHexString(c, "dbf38f5337bd42c9b293e6d9fec41c38e15daf130c9543b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82e641865e1967909e7d649c11742d8ffa68de41c554c5a4"),
			decodeHexString(c, "44453c3dbd95fdf9f7d2eeaddad062725fcf614c6b404770"),
		},
		expected: decodeHexString(c, "4432f68788e760615ffad5112438930447c5b8d101071f90a5cf10f258bceb21dab80ebf2142d453182b713b4088d9dcd2eed3a49a6fea8fc4149583b0023a803593e9dc2435de6c7b1611f489452360a31f2dbe9aa7f4bb52f9ece477ca546690f8d345078b7c0a96fc304433de5bf0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "00780048d560f3019f6501397c7f835724861d8f99b50052"),
		nonce:                 decodeHexString(c, "809f64b92ff91a9ba1d0dcab"),
		personalization:       decodeHexString(c, "59a4ffed025b2cb1bd97a16a1f60e76779b06ba15b3f9a4f"),
		entropyInputReseed:    decodeHexString(c, "06b8b461916476861b0a3e8fe5f618091297bdee85ce53b1"),
		additionalInputReseed: decodeHexString(c, "124df340fee2ae570f236e76bc6ce3815efad09963f278e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d1afc014c86102a91badb1016f944cb1f962eda706bb4282"),
			decodeHexString(c, "53f96a21346cb90fd2e91c599b1ce6d237447098eaeb694c"),
		},
		expected: decodeHexString(c, "646c3cee70313bdef251be024cc5e8a31e85eec2f6a7bfc37f35d779ba19368dd03196b0744de71b8ae132e29d4e48c3cba9764fab356cc087656ca0877d0f76549bcfddcd7f2ac422c429002eec5b207cb030c850f8f3153156c04bcb7dde2eb2acc4d920a42a46a2b8468aaf2726d4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0cff9fbb01d5adb5c24c59abfbf935dd4976a6d04ff36e1d"),
		nonce:                 decodeHexString(c, "2a6ae386c92ef535e2e2f266"),
		personalization:       decodeHexString(c, "91b5c9b92244546774066bf2ddf2b7c8d4d802bb57d679e0"),
		entropyInputReseed:    decodeHexString(c, "b71a48486fbac7f087d7dde3a15a02f2d33d3739fc4afc24"),
		additionalInputReseed: decodeHexString(c, "9ae69cfc06d38638f77237fd8242a0826ccaf76f28db5ac8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "797728d2aa8bc057af269871a3204dbf58c760cc450f335b"),
			decodeHexString(c, "d53513103c7dbd00ea3cc4271341f9fabcd86a083607022c"),
		},
		expected: decodeHexString(c, "a7f65f9540adace37223fcb7ff4770f1b4e1e76ea0d9e3f6c46e1146f14d665ba2e4ef7f242743659797ce100a88561af2de062cc3d7c921762308738d6e67c2e5da25601605ebef4c135bb10ee514291a36af202c6b711234e0d7968b88d9295432e172263dcecad6c1a009d53cb7c2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "2e9ba063bb50e7f4676b8f5dee5d7b8e2712b84e49b6b261"),
		nonce:                 decodeHexString(c, "74e167cab2d2e4725ca9800c"),
		personalization:       decodeHexString(c, "f7aed5cde2f3616ea712321980f8366ab3f74446ad0af20e"),
		entropyInputReseed:    decodeHexString(c, "e07924ceea5ba00c1b390e574a7c1d348fadc05fcfe1b54c"),
		additionalInputReseed: decodeHexString(c, "b40e416b40f64ca0fd644019bba90631d0bee4a808462eaa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3560c1db548a75689ede2c7b903419715660e9bdd5002957"),
			decodeHexString(c, "b6204da93632075c0a753d3c0b2bd519a33aa55f38414536"),
		},
		expected: decodeHexString(c, "b2f2d977ccf73c9494783380f49914fcc0de557769e3a0ba66a9806c99901f976681e5f5924894df923547480ff995aa1b8571eab4d835e25ea87bd904cafcbc8fbabf9486d5a732a503cee0de6186f0ad866c92f895bdcd1cac87bef049f1f867ddf50c7d0a5f7786fe1ac82063a26b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c14a374376a53489f460750b265349f60f321be98ae55be6"),
		nonce:                 decodeHexString(c, "73e82cd9cd5a966632441d44"),
		personalization:       decodeHexString(c, "eb2f47d561cf0c9c900fcdcf60493496345585c35356d2e5"),
		entropyInputReseed:    decodeHexString(c, "817b93dde4d21a75d04513477260e61e90afa85cb4299e9e"),
		additionalInputReseed: decodeHexString(c, "5f16379ff1f93fc094affe0bbdd72797fe5176feb83d2280"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d89d2fdbacc58d7117020c0cd005c32a8ba77b4131cfcb7a"),
			decodeHexString(c, "691ed9e6d398ce3fe35e0905975e34287a4712f1dd38f703"),
		},
		expected: decodeHexString(c, "0baf0b943cbf161e42a35b87082e7d27c7e7f9c24ee924523fdf80bcde488e8f7a56767868b88d08f76035bed2ebcbb3eb30305c7ceab1548909286156c83a31e5103ecceb008ddd80f39d41f8cb3582e5907e47f322c7cfca2d8e62c7e5c0c503a4e7f50dd3c4609bb9fb71951219a8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8d62df4ec17620392bcfc9cb10d168498c469d6fa9c1ecd1"),
		nonce:                 decodeHexString(c, "fba57a7a504128c631185eae"),
		personalization:       decodeHexString(c, "ae026ebf5f6ecc2f50725d023da31129e308afa83125de1c"),
		entropyInputReseed:    decodeHexString(c, "9d2c2ed155753a377227054e4424232e2eaee097887a441a"),
		additionalInputReseed: decodeHexString(c, "5b53f18442b22023ea12e38fb5261ece26138885bc013b71"),
		additionalInput: [2][]byte{
			decodeHexString(c, "12873da88ec72f301a127f4a8e28ffe67de3d2c43ed21812"),
			decodeHexString(c, "7d0494510a8d4898826ddee7a7c03966bc8633027caeb2e0"),
		},
		expected: decodeHexString(c, "618024bbc868cf417c37df909cc696569ea3d8495b9f9de6ac10cded6808d7f75f041307d4efb7ec43a11457ec67044de1d097efedf4f0421c856ba9451a467b223331bbf2c5909025059bbac5feb9e15ad88dc44444fe5f08f83953145b616a0b1d2a14817b53a8919d3980af5a1bfa"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "749c7b03e866ba0d404166e16f903719f4b90b50c3de7701"),
		nonce:                 decodeHexString(c, "b658f3d3a9f386a13b78e9cd"),
		personalization:       decodeHexString(c, "777297df39a188238a8073de68b63c800746a037b15bac79"),
		entropyInputReseed:    decodeHexString(c, "67e8b94a8f2f0a63345d1be944b33b8df015ccf1e8ddb235"),
		additionalInputReseed: decodeHexString(c, "1dd56bdcb120ee97813e156aa3081cd096eee508443ff07d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74dc91eed0e71819ad490a4414d788f5d564e0640c4e1df4"),
			decodeHexString(c, "9a7f27655f88bc6314eba5ae9292774442439dd579c3b169"),
		},
		expected: decodeHexString(c, "8db8c1d44efd55d80c2c7954015209e34c676355a25425e173c89ddd0516a1dd346522e051f41e7ce1dd8d69d9aaeee9d7de2eb25df8c63b4572cd0f781f1625e6a5d114075d4b07350974e71fdab2e8f53d3aa4f36d7e95708c79f0ad7cbeaf0682fd86893cf27911a38dfd0c111d9a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "15cb43b0f434096c921b8185100abebe5f4446e7f703e558"),
		nonce:                 decodeHexString(c, "71babd656bc73e7545d97fd9"),
		personalization:       decodeHexString(c, "0dc645e5c2dd090e3695404c97bfba385cb1fe8a58b22c5e"),
		entropyInputReseed:    decodeHexString(c, "0b3fb9d46b83f17ea013dd78bacfa4d30855604992116247"),
		additionalInputReseed: decodeHexString(c, "b25cfb61d7247b8dd3e7fcb759b0c09997fa9ca159d0c842"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f4276abfc9fe8d7f8b850f2990bc85d662ba5f0df4d7a0e"),
			decodeHexString(c, "edcedc09df40bc5c64e9741fbcb14adf7892bc5b030d70d5"),
		},
		expected: decodeHexString(c, "77a54c85e6322357e7115b0e958d28bfcd99e7bc86059a88cac93125ecfb78c1a4c6c9f7d976de42e65d4509c75e6473cc1d7e498e5206b965d2789f3070c1397e64b4e546467a706e4706073b6a399f663e50bbf23bab5cee643f1b8329af6e10baa5790f7e1325fcadfae4347c76b8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "403419ad862677b4ef7892e654cd5a002b25446aad34049b"),
		nonce:                 decodeHexString(c, "89ce4b8c957159f034941541"),
		personalization:       decodeHexString(c, "298c4ffa88455a52b3448107f3615964f93ab5a919c45036"),
		entropyInputReseed:    decodeHexString(c, "4d7070c43dba17c4e22c7aca56f1496c496f2dc2b2a61590"),
		additionalInputReseed: decodeHexString(c, "2cc718fb0f3ca6753e40b10132cd5a6cf2f69b3b6ade3e64"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b7c3b7453f4356de81aec2b4d828cc00940167ddac29f0aa"),
			decodeHexString(c, "609174200dd7125e5605ef1ba12079ffc49a063e7aab8737"),
		},
		expected: decodeHexString(c, "e0fe309de3df90d372cde34aab6371e67e403f03824db2996c653ed09e32a3813785eafb767a65536b574a6fbbce1cf1af5491bd46839d38bd2faa585e8d82ed834e8cd8d2ea3c2ff13773665d7f535f57d6fceb216c12d1454f40c565a59ee9a43d02e01c356b2b5d1fc53b38831a6d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c44189350dbb2d70b9bd726435d5244022659a68c770fbf3"),
		nonce:                 decodeHexString(c, "caeb91af0d7db215fdd4bc47"),
		personalization:       decodeHexString(c, "94f0ca333da516c1e9b5911f7a83385664346e3d4db9e940"),
		entropyInputReseed:    decodeHexString(c, "b918dc2acfe39443f6294abcefc0be8211b39955884d55ee"),
		additionalInputReseed: decodeHexString(c, "8ad6f14c8fee7a42baa96ae44b51b5652a477e97a4c23951"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f2eecc63329d582deb6384c9755f27dcc0e43a502847fc72"),
			decodeHexString(c, "06f08a37335ac2c43512e2c814153fdc75a78e4196d6f7c1"),
		},
		expected: decodeHexString(c, "b142e21647c7ff52b6f785180c22ddb606628d41fe9df544bf66fd9ac001d123a69ba746806b6f8eea9680755c2dc8155efdda94a526ac032b8f0d66c6b44ca0385855d32d861552b7ceb6c24a3ff06afcb4478e6007d95788d9dad2104b8cd6c9e771971dddaafc4753c0123021fc9d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "de09a7b24a3d1a3f7722eaf155675beb5324ef3264f45005"),
		nonce:                 decodeHexString(c, "c4152b989ec298dd9967d060"),
		personalization:       decodeHexString(c, "e8beb4c3b68e2bd6f447ac34c9dcd992d7f6f60d1a49000e"),
		entropyInputReseed:    decodeHexString(c, "b74d062c5913cdddd4cbf56684a9fcb63bdcbc2f3bae1159"),
		additionalInputReseed: decodeHexString(c, "be15070a88c52fdab69c52c5ea372451db92be3892ba38ed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "baace9fd7c3c0adf067de6bc6295de35489a89e36c5c2434"),
			decodeHexString(c, "057911efcac5acb4e838e086ad15069666cb9729bb41a5ef"),
		},
		expected: decodeHexString(c, "230a46a007bc6fc2db65d1ee0b1c107787afaf0427f8bfa97d2b155fe1e49a2bc339b67b4c3947f7366b91cd3f83030ff96e2caf05df53bef3e575e77c64d3c8b2c93dd0850797608aa52c616fc3f82383cd0fa56f21646c45f0833f7f8b03916baa42b909341a2219697037592d1ee7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "664e3f58c75acea5799cd9f5f639bb88b1b56db7e05f34b1"),
		nonce:                 decodeHexString(c, "da22390ebea8e1b5f5bf4e9a"),
		personalization:       decodeHexString(c, "e90539a637582315234dec058e4f325d1c02f4dd3f52248d"),
		entropyInputReseed:    decodeHexString(c, "faea4e90e956a83322655dfada36c3c1749dce68a4b6f416"),
		additionalInputReseed: decodeHexString(c, "7bf9137110d8422b849e9ca461879b943d2dc8b8025c362d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "06ef69aea79096affb68893761c77d6abf891f52a464d218"),
			decodeHexString(c, "a472e7ace1cc95e23ff26a7e4180a95e0652a3887ba61b63"),
		},
		expected: decodeHexString(c, "ee5abf3e8079e321c5e840ce67615435a7bb2af2ef1aadabb79bb7963cff796c0e39c43e26b12728c644dca25e450d6f550ceee62580a4c130f8143e404e1cbde08791fbff95f283f88e0514e88df47d8d3507c145d7a27afa2f7c38109282b475a843602949d9760efd34b6309df8ad"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed19_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed19_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3a5cf3309b9ec3aa089126fc98fce229ad3fd6302b30a75f"),
		nonce:                 decodeHexString(c, "d30e2492b975926109a6949e"),
		personalization:       decodeHexString(c, "b234966510e237b917da5edfe042aecad73ccb663453967b"),
		entropyInputReseed:    decodeHexString(c, "9a65fd74779831acbabdecfb2d80af07f33657a573e21f9a"),
		additionalInputReseed: decodeHexString(c, "9ac8be6ffe743c3f934863003eb24f85a13d5f701d8474f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b77d5824bc89e5294fcf806a5d73279d9e8c5bf7aba430f"),
			decodeHexString(c, "8843b16e8b62ef300d001fc5829f97320794ac9510f3efa2"),
		},
		expected: decodeHexString(c, "b263c9dc8e78810b0cd7008dbb937df7e00caa91d9876756718dd583ddcdb15a8a8d1f723a40847f33ef92ecfb698a1969c84c55db91e13bd74a1be6385247585b9683603133ec697a693580584e5525fd8330c1a5c80a50dae99f331602c451e8c0fdc087d32cd288e8dcf9fc58ccdf"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed21_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0d8746816f46d48d0decbe9da5fbbec099c97d3aa9438218"),
		nonce:                 decodeHexString(c, "71ca5fc2ad2695c7e1a32599"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "060a40cfa3ae969c42e900b24f506dc430192cb71f60ffb4"),
		additionalInputReseed: decodeHexString(c, "1cb0d38c1fc76820ace30a25e9a5f0bcf7ee7beb5326e37e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82c06986bab01d3eca13c476a2442e115d4747954a7c4c1f"),
			decodeHexString(c, "33522a22682fd3c471ccd734174547c51f9bef52ebd0bdac"),
		},
		expected: decodeHexString(c, "dd088076298ecab0ada39ec8bfed5f19ef80781ef48a125974c5395bd733575331a960cc999b61a0c559b4ce2bc3386ee0808801103242ca1d77832db0efb6c0ed40b9616e1cb95fb21fb308f5ffc1c122a442786ec7a81abe0592027205ed8af8860f79afea881f43a7e0a67159dfe4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "2a1aabd1a168c68c3ecfed546d5fbf7c565079f58b0292ba"),
		nonce:                 decodeHexString(c, "4f8dc2adc4af53367422ab51"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e483690b971884d59761d25ef12190f4b336d1873c4e6ae1"),
		additionalInputReseed: decodeHexString(c, "90602c1dc3582f00a8f496c0568f3d2fa375e2e610daf52c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5507634ca65cba27333256cb565176df08e98dc9c37bfefa"),
			decodeHexString(c, "f3499d011cb6f0fbaa78cff0808f1c2cafd94d2f7d0eb0e6"),
		},
		expected: decodeHexString(c, "8ce63c76acfbb72bd9036ff521556be28f5fcfd5018dea48b8c055f238a86cfc320fda6d54af978ad058a3e835d0abde9a919da75e5daaec44b5d4a336fac02c96a664286e4173b955a963f9291d9f101a66829e73370216cb3ece8ab56d04baf4d71e60292b02a1ef0ac38b4317deb6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "f514fe81d701d00cb56f123fea34c32333a82e1d5d30502c"),
		nonce:                 decodeHexString(c, "d84647213560f64210c595e3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d8ed63b714d2ad08ce7ada0669e7430e229c48a250fe1c40"),
		additionalInputReseed: decodeHexString(c, "8caebd256977284187fb6a6048ec675806cbe0ba2fb71362"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1d1e670f4e1f7bab1439ad9eb095790f3eb1964988565aa"),
			decodeHexString(c, "88e749be9618463e724683d5f7fc7c501d61fe53aae6af87"),
		},
		expected: decodeHexString(c, "4216c6a37b24db0f9e564c0e5569ae95d4f5b18d6e5fd601f639cf5b306de6fe48a12d3b3a6b0a74e28947c1dd60c07c9d3792edfe89b1bd3ef09e49dfcc8d68055efd8431cdc673d29c067433b4220fe8b466c1f6d5ae371c3189bb03701d38aa902cd471fe5f57ce7916fbd486cf6c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5d528ee79d5fe92ac9141a367425d32d7c469aa541fe69f6"),
		nonce:                 decodeHexString(c, "4df45410004958128a2c3cda"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2ff95f54f5db7a9fc431e7970571968f556ddfe899012b28"),
		additionalInputReseed: decodeHexString(c, "1f9b6940a07b5ef670115c1147358b751304a1d5b279e833"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3218f203349cf1902c59fd0fcceff19036083b8ac8ded73e"),
			decodeHexString(c, "1060a82bbb0ee722cf2edd5309629f614438ba6ae4ba5781"),
		},
		expected: decodeHexString(c, "73bbec9c823b4eebe410400683f7f95c155903952f4b58b215dbae6bf5f2b5ac595c696ed04e708e886374f263df75de6c7f4d9d33b9d2722d7b8e95bc61866668e399bacd6aa44b4bceecc5ba7539a0f9f7bf4b3e4ad61c9ba1fa2e968756dab50911f390ea102e39b56534a0644a77"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ba00c73d7b4b9c68ee7a0308f8e45c0392c611eab36eb64b"),
		nonce:                 decodeHexString(c, "da8feb52ab4cde7546924602"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0113cf6429f50a2b2dd4543f5ddb31a68084389c9b4e5ebd"),
		additionalInputReseed: decodeHexString(c, "36e610c0e603f6393d6cd25deef17177ac448fe69b773f47"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eee9b172d3660bb1ce3dc25755541af2da70805c8791f39b"),
			decodeHexString(c, "0501f6c91586455d60086ba84904bc01c44dcb2575c13d2c"),
		},
		expected: decodeHexString(c, "f1757f26d8d9f63beb614f4d33243b18411b4e266238e2aec14f8df0969baa79247a2c447901bc4f345cbfedd46f6c1d9ccc3d9b8263007f010c481e903141e10723d4d6fa7e12061c3ac5df6fc61737895ca8d7d167b6a508a2afaaaaa10f14e6729e523e611a82648d2ca510da3e4e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "31b7d9bc888aa28f61547639da2cad0ae5a612065679dab0"),
		nonce:                 decodeHexString(c, "534e0ba9e2b197b93a417bef"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b23b8fbf40fc736a779442356e9b01789275e8de1ca3a4ae"),
		additionalInputReseed: decodeHexString(c, "968efdc792f2c4375525758e8d51fc2aacc588f555c9a7dc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "71dc0d40023c4d731a4d5f3d4e70237e84f7949d1a266740"),
			decodeHexString(c, "f664eaff1dc0a951592210fc7f0039c9442bd7474b4a88a7"),
		},
		expected: decodeHexString(c, "a2c2ad289e4a5144fc0cd032ed1c13238cda7ef8bc6426b1b1582c5b2489a53194f916f89328fa716ccd9c4e2d56040dd66fba6a2c5c97eba6b1655255d7ae2193d2d6f1da04ef491aede5a2b40986f9a48b1a6f5e1142f7bf676f285e2baa4826f35bd66ea37934b68033a34f535958"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "82bc60a3303db206ded373f5394bbf64beed1ff43a402088"),
		nonce:                 decodeHexString(c, "24ea7acf6a63ff69ab75ffbb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cb68d89c8c16f773ad49a8b274d2b39bfbe739bb8065efaa"),
		additionalInputReseed: decodeHexString(c, "0dfcafd05ef820078d682477732bcca1786aedd0175ab1a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c03e8ed275260921f1773227fef8f6c967ac8166e39f8971"),
			decodeHexString(c, "d7ea495d5c95ab7454110d9dddfbbbca2540b8818d438fe1"),
		},
		expected: decodeHexString(c, "2ad56f0fef79d26e83a4d617cb69d62c1c2b79f935fb0797f494f7594bc14a9911c0a7458cb24ab9e0ed2e7298f14e753e3383491a53b05761bb337d19e47bcbf48a89575d093668338f64cb60316ec3b03fbe660dbbdf64000c69e555cf5137c55acccc12a4caa1c279e1c6b88d9840"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "31687dbf6c8cac4d6df2dfd5a8f9e8096ad104083091d39e"),
		nonce:                 decodeHexString(c, "5dfb02af1ae5e2c6b86feb0e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "01c6796a6361f75c266831027e913520106af8f056c8961c"),
		additionalInputReseed: decodeHexString(c, "c573c1a5441b26648edae6c161597d842a946555e20dcf16"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d26c9d556a439565527e5ac210d1b6d3de024454f8092437"),
			decodeHexString(c, "ca4459e295c0339928c2925da6e457c9ed6e0b01926aa9fd"),
		},
		expected: decodeHexString(c, "5023779eadd3e29c7e4b9b77ce97f10b1867217264c3140258c6093b3fd2fe106a9bdde8f7e1883598b9b8d533f78d3863d9670f1bbbb3e50f858f0fe0370e0ca9ce0b8c408c850b35971794a4f40a5646573a09efef4aea4da2c76c1f49b3c06d4d4909d813c9334cba34feb7d28415"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8519d0e52af485fe050d2efb2dc84db7c28cda48323b2926"),
		nonce:                 decodeHexString(c, "8b5243416f397c42d76c1a3f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0ecf8fcf194c306681d36f21d2c537484b250c938c9122e0"),
		additionalInputReseed: decodeHexString(c, "54f8a8df99f376421828c3bf6726e53b06fa4d7af7807126"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9901054634d123eb048f586d576295fe563c5c3c0bf24cbe"),
			decodeHexString(c, "6c425265c5db22f0a5dcfca27a6e8d0550394f25fc26b537"),
		},
		expected: decodeHexString(c, "f4c8ff53737cd96cdae8bdf720b6a797f0598a4b5d8fc22edb70f7c29eb2982a4ab1f891578ac7ecbdbf51de6d57e9e7edbd1fe183ca07e0773ac54441e51bd2d0884749da70d072124a3318ddc7e57efca8ad99f25c003946b0d517682c2dd144b45fb6252a2ac122492abf09fdae32"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9f1eccb34fd83c8720d0ce7a6b8751c7b9471c92ac91ad2f"),
		nonce:                 decodeHexString(c, "d32e32f92b5833e873ac09a6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2680d41d730a9ac4e23dcaa923ccf0dac58c5a98c29841db"),
		additionalInputReseed: decodeHexString(c, "e0bd09baa4315caa0454e941f9be7635c255dd639ed83754"),
		additionalInput: [2][]byte{
			decodeHexString(c, "29e79d0b6ab76232bb961ec7ec9f3b5fcdf9774b4646fc8a"),
			decodeHexString(c, "1edc3365a7db51ba864a93e5bda20a0927582bd44be82ef9"),
		},
		expected: decodeHexString(c, "2ab841ffbd8af668b13f8e5f13748ff02b1dbc8346fa353b43a8594efafc7f19cc4e627ecf50e99c9864633df0bf823a3044f24a4b5b5b1134d43b56903b8a66e392c8aa41411b0513508f4b469f5de6d5298b268b258daf6ea66b7bf0e2dd6f3c6fe16c7c28ccb94f7cac61462c0121"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "cb4bed609cd651aaf2aa491162f4473ca85137615c1378fe"),
		nonce:                 decodeHexString(c, "584ddd86a3f2bb036babcf8f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "90ed0d20d79cde8484c426455f4a1e60b1910190d11f1c8f"),
		additionalInputReseed: decodeHexString(c, "f14c5c737c335d10ed7b564881c9bd0045b61fd05c241897"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c891faad9aca9b3dedbc75a6e0ae9a86748ce5f6126a9f01"),
			decodeHexString(c, "5ad454ebe4675038fcd1f1933e8d1fe15b7e9bcaa6ade6de"),
		},
		expected: decodeHexString(c, "9aa5afbcf15869136009b599b03cc4d7e18b7f354bc8393cc5df24858609761fb3cf147fa042cd01124723f7752ecd20ea64f2d7f444ffd830b99d592e1a7168ee3259bd496b504f138d1a502d04636dc66cd5493209a582191a5ab1b83aa5132f60d671fab4942a3f5bda9a67829d5d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "d6412681392b71c5a90af1d0970763e9738e65ba740edef0"),
		nonce:                 decodeHexString(c, "3d4259845c9700180b671af7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "33381ee9fc40336021584af5a5f02556ecb15e9fad90b2ef"),
		additionalInputReseed: decodeHexString(c, "63716821fdb2bbd8d808a0a3a46a5d028a5bfac414e6fb4c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "baf41739b86f8b5c635b877f976c6797a7616a8d62bef5b1"),
			decodeHexString(c, "82e2fd41649df4d88cb45b917cddb977315783acd5586689"),
		},
		expected: decodeHexString(c, "fe573266056a568c9439f5c7012a026e02cdd8585dcf85eb2e4982d4ba3dd2fa44cbbdaf772eaad5319c30b8f03122db215fd18d4945667d8ca536140d0fec62d975f2b1e3df9b3894a3f203f79f49bdb8ded9e7ab0fdc1ca3598f683f24c5ff264bd8694add7dfa65f2736406189762"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "980fa8309222fe77a5cd1970aa3278ec0aa966aba6d6c70d"),
		nonce:                 decodeHexString(c, "f8aafaf32d5df3c6b0de3a9a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b0e733c4e60e8d4346fe1fd93e9d5de73d6168c870158f9d"),
		additionalInputReseed: decodeHexString(c, "35d178ae34134e2ef048e4a190df401a70a4020d018991d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5e7d42aad76bcc9c803c2c3fab5f32e31a15d88361830e5a"),
			decodeHexString(c, "6b93da08db63a0362c8adba7d3b40a5587b4b47fa8f942da"),
		},
		expected: decodeHexString(c, "f6a8e41a31c73578897a45d90945b164543052d786aaba3cd15d2e7167f606a7de29fb42bd7100fda8218ceec57b2bfc4470f730c991f6bf0c46908e19c08ab45bdf39fb08678b59af4727d33809e6e9fc24bb4ae4c5dc0f021c34250245f1fd418f6cd1bee892d19f7efed28b2bd8de"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "eafb1ac372870c758a066dc6aa9aad255345aadb69627878"),
		nonce:                 decodeHexString(c, "b905a989d91c5a329dd11265"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "52ec165bed62a789ce1512249cd21723fbfb251647a866c8"),
		additionalInputReseed: decodeHexString(c, "59459352b33f2fbcc4af65f798ca2433dd28092da24cbe73"),
		additionalInput: [2][]byte{
			decodeHexString(c, "79c56bc1efd34fa6e957f6e4cdf3f8f57f8d58dad94f7ae9"),
			decodeHexString(c, "bfc1b97ed8bfbd48750a704546e7eafc370ec4b834714378"),
		},
		expected: decodeHexString(c, "56e3e4b75a5841faa5bd3f298c1f67cc58427900d69603905f24e1f8b078f35ad369ad866a0e1bdb0b7b66aa76dacecdd8412c74fb86fa69a420e6c79ed4d12cd6d166c505449bb268241c3c5b73a87b6b373075f2d625a8dc0de841d963c5083b2f611bdd7dc4cf7a8d8cc33ad5a745"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed21_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed21_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "619ca2be2e07b538778f8f8e9921a7663c41167dc44abb99"),
		nonce:                 decodeHexString(c, "37601911f79f144b002fb15d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a6e07c88eee184d0b4cc096302a36acf4be6db74a5247777"),
		additionalInputReseed: decodeHexString(c, "98a8519c34eb1b83533e771e160e532033d77219364ddb5c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "be40baade1c3b370f8750085787d3964399a8e80ae0681cc"),
			decodeHexString(c, "ef68b9319d075beb67fd6e2238aa5051b3ea072dbe3bd649"),
		},
		expected: decodeHexString(c, "1b6b65799ff5d7523c859158a96c8b32d6879c22c280c7d79b3c4f7111b4c35975ec9f518f06d8f68b6460873fb727b476b63e46b5c39e4ab8bcc4776378c3f3d0d494fb3a21fd0d34a590ffa03c1aebf1c8985862c4c344154cd7bfaad540be71751f16bf2f9144ca5627c49f468484"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed23_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "a92bd5590143a2d158f5fd0b907eceab1be9e6e74e30945b"),
		nonce:                 decodeHexString(c, "f2b6d9baa15c32b7d6c0d44e"),
		personalization:       decodeHexString(c, "afd20d8b7c5cd008f3f06dbb5961fd52d3140570c5863c91"),
		entropyInputReseed:    decodeHexString(c, "3c0ae208b9e369b7eb2c5c1bed26f5bd52a75b945a8c5ca2"),
		additionalInputReseed: decodeHexString(c, "118e74ae997725050b9a883b0b777c53486593f0b12b8300"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1dea5a047238198ae59feebfe6fa020f273acbea5a1ae009"),
			decodeHexString(c, "0b61181d118adc0f79395e9b186df7d09d89e409ec5564e7"),
		},
		expected: decodeHexString(c, "84e6691a2a1479064146b8b2eaea4f474726f9e7d7e6c1d6e91a1c354ccf8a9002b5a998879dfea49503da8aca847a17c9c572d39c22af5ece4e7fefe6d6dbbdd9e744da1a5ac0da5461065ade7433bcfd56b3e55dcf19302690f7e926c5bbbed85ca8d5bf938d9397b3ad04a4b4cbed"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "eb63a115597084aec36472dd09ab8030c7fb4e1ac0620dc4"),
		nonce:                 decodeHexString(c, "0e0264218b649cc42cb9cf85"),
		personalization:       decodeHexString(c, "e60f3a170d043c3d7afe7757788d33d5c71ce9f6fbffb7cd"),
		entropyInputReseed:    decodeHexString(c, "9b0f2c7328537f30964f264b5d6457a38a24fcb0cce34c7c"),
		additionalInputReseed: decodeHexString(c, "6ecfe61be8801a13649e44be5c2be335ca7ac9ce49a0b861"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c415a52391ac3422e31e74bc96e3b7288a48ea5bfa8d82e1"),
			decodeHexString(c, "8c5648921c9a037c7a866b3fa7e7332ab366db5ec85e630c"),
		},
		expected: decodeHexString(c, "a3704d6b12bf0af44cb2fa47f13e07b547683db70fae85e0a40ca0a0eb5d025a20ce74b99f2d7d83c61216839f6dac070416199355be30679f23070345e94a573a44a535f638256b35a6f04585c69ea43216606370fa873d11f1d88977dc0e6b0fd6203a7a8f835c7285c95fee55aeb2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "63f6a7888e61467f80187d98b974ccd22160d35f2d8c8c6a"),
		nonce:                 decodeHexString(c, "f0f676d6c50b7b0bd84f6f08"),
		personalization:       decodeHexString(c, "fd648135009ba910048b99f408f1463aa956f61d5218749c"),
		entropyInputReseed:    decodeHexString(c, "4cf2501902b1a0df7ba34fe18e0d762ff36f233939854168"),
		additionalInputReseed: decodeHexString(c, "438887a91cd51c564de34b73ca7d4cc266d5efc1b65027ee"),
		additionalInput: [2][]byte{
			decodeHexString(c, "75039ee2bc4021f843b6f1619b3c586a311cdeaa3962e221"),
			decodeHexString(c, "3bfc9f6de8cd4d7df5839224c38e5b8f06fe1ea626aa26e9"),
		},
		expected: decodeHexString(c, "3d501d94fb9842076b557866ada0f4ceb8fd5d59f9cce0a6cdbc9bb316ff87b4f0f9b44ba9db97a035ee1de83f26008d11386f9292e8fb71645642c3cf2c2ba3966c1a98ef0fbb5d6c5f8fb1be292a190a0bc94e297ee67c23d5d170024c4db8b806e8fe21b754d9d4d4e165ae767d7e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "71ce4bc0ca10027f7b7d5070acaa8d1b1285f6372c60cf96"),
		nonce:                 decodeHexString(c, "c65ebc85ba7bc39cef9ec653"),
		personalization:       decodeHexString(c, "38343b319a1ef58038a9028e323ed24daad0c71acbf73d1b"),
		entropyInputReseed:    decodeHexString(c, "035a3fd30c9530b7ca011ba1ae2f863bbfe2a3d3b754f422"),
		additionalInputReseed: decodeHexString(c, "8fa119881d457516e6c8f90d8e2ad58a9656c158a08bc9f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "64f9e1ae7044e53773a193504c4f3fee465f01f002a534bf"),
			decodeHexString(c, "08fca5b73bef03380d7532d46f735753b67e144cc1fe2959"),
		},
		expected: decodeHexString(c, "449d686c12e63bc73cb107faf5e924e3c11acc0852bff42acc0525f51496bc43f9a4d7a04abdccd90b27391fdab6aaebe5090d0cc37ded3f719bb449ceb98a1b275dfd4841e4327ba63e9c4c81f8108b261593524fa8686a50ad8576b2f328fc5e3c8f332f7a0430446e15fa2fd5840c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ae75ee7ffc6425ff3a55b2afde8837c0626f8197f6deb137"),
		nonce:                 decodeHexString(c, "218e75320471c085ea8a3c0e"),
		personalization:       decodeHexString(c, "c17301ff0453525bc5a5dae8ddb480add7988df58f683852"),
		entropyInputReseed:    decodeHexString(c, "1e1bcb06b92496a5b71a200310e1aa7a4b4d05f6046914fa"),
		additionalInputReseed: decodeHexString(c, "842569f6cb43c95131960a2a34ab4d266760236da99a91ac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "30b479647c493b6e0a186bad9d6c1e06247bc55ecd90ba9f"),
			decodeHexString(c, "5c8370f09509723844d739728a39c32d74c8f5296f5f6dd0"),
		},
		expected: decodeHexString(c, "5bca03c80ae4b165cc282208134d602e235e4cf028fd24d7ecb246c98c8b5d0e2d7d30da04303cc611842dee4fe390ebaa0b4c169e506734b1a618bf0786154850ef127cca5e4850a6e574411555e96dd7e5aa1880633c336973bbf892b09c19350499012a182f5343fced52acf581ae"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3b4a1d8056d5e79ac053ee5d7cf6fdb21d54b6507bfa5eac"),
		nonce:                 decodeHexString(c, "c12a0ffc30cd2783ce6a9cbc"),
		personalization:       decodeHexString(c, "caa7855435f3e05d74888ba6e87aaa9d5c8152ef553a1cce"),
		entropyInputReseed:    decodeHexString(c, "20f6fb058c718e8c368b16de4e38f2a7888e323f7b71ab54"),
		additionalInputReseed: decodeHexString(c, "18e42a9e93d00a856e42d9a6a66dac2b33b85abd95bed449"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e627057674c46bfaab16bdcd3495dcf89490f68c29502474"),
			decodeHexString(c, "0443122d0cd700b1aa89128e8e90397d3c7e4e8e4cd7ee72"),
		},
		expected: decodeHexString(c, "ff66514b486f98d3fdae3d832f759e2e4539152705946a7c2e7dbeaf0198ccbf37329e2a089a47d40f12f143c9989dbccaaec76efd4c22c5777b21c72263b356a099a480d1f15d156ca3a66fcc833753823b4606ffb333f59246e5d66674223278311d3add9ccc909860da531eda055b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3966a7407ed1107902d4098c264ac0bfe866e3fe8f1212a6"),
		nonce:                 decodeHexString(c, "abbcb520bc03eb7976aa605a"),
		personalization:       decodeHexString(c, "a07440c9bfae23896e83e449f71000b4b96d1e18d4fc023b"),
		entropyInputReseed:    decodeHexString(c, "c194f6f6867c7027f7d76cf0483fdf122854b18fd6adb253"),
		additionalInputReseed: decodeHexString(c, "b55c4bc0016f9b2cd8d77730d706732030d3686409aba5c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c98b03d2e696f4a2d471dbb91d569384c6ef7cad63c4b52c"),
			decodeHexString(c, "ed5fbd0dd4ab0faff82c9dfef0b462cc8fc9d9ad8d890b29"),
		},
		expected: decodeHexString(c, "f098c4fd75b80104fbccc176348e9c91de516aad81c313e100534ae79072cd4422bdf59b4c7762495fc41ff365f4ff0c5d43cb541ae8c5192326d61605d0d8e09b65811c684b6f9893dc556f0341b6533c2656563aee8e8080d618a33726ac27792aeb2d35fd3d52e741f30dbe465aa1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5b05557833e529e8814e7bbd52f956b6af2645b06dfd18cf"),
		nonce:                 decodeHexString(c, "9b3139f275b958e0d387c9c3"),
		personalization:       decodeHexString(c, "d8f87930d05b4b1c5840ee76726e31847dcab16158b7b6d8"),
		entropyInputReseed:    decodeHexString(c, "58b95a0b014f20b6b89272a473ac80239a17acc4ae3c4ff9"),
		additionalInputReseed: decodeHexString(c, "b6100982549d155c9d24aabaffa89a06402e5ab75f1684a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "416d967404e14befa21a3b7123ce762bffa900f63313c30b"),
			decodeHexString(c, "6a7b610a7e3dece37a9185a3eecc540c8196deebefb69ab7"),
		},
		expected: decodeHexString(c, "83cc8fb052d864970ff487f0bf9f44a419324823c83aac4c12d3628b6acc6ddafa8d5f14e0aa335535e73425f2c31a82ad3a9929e3c265aba0a448362b72e8d822a42542cb89d0e2e1068807566c235f5e949e8fe68baf8b8066372ab78035498ba5b26a8cbda9cf8faed714a7e07c95"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "840b7667ca810879dfadafe5ca18c350815fde75aafb1b98"),
		nonce:                 decodeHexString(c, "bb6d3bd0bc8dadfeccd63f01"),
		personalization:       decodeHexString(c, "07135a62af6ad919feb05b3e7f7e67d1aab1e9819e089f12"),
		entropyInputReseed:    decodeHexString(c, "21fe221e5ba7640f3acfa87f3296207aad0f93e1d1401839"),
		additionalInputReseed: decodeHexString(c, "94992507fb6d1eee05c990f2e5e586bb8e3bb40db68e406e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "90009de1fcf4845f51173aa09f092d422a48ca7b6730b025"),
			decodeHexString(c, "0d5c89e895acbe247ff964f4698bacb651e06ad72dcf83f3"),
		},
		expected: decodeHexString(c, "0d216a2287fbdfbb0313b151dc27e778bd28a456cd449188d6f03bcae1bc16742eb295aadfb24621e9ab390d4e35d6c2f321a021cf03218251e9d9be6acb602bfcf6b232ba6978a50ab743bca0b84c1cd176d8cd2d25420ff005e0fea5aca71a7fdaa8b91057b8c96dd8da2954c7a5fb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b859961c7aa1a3ddcdd48980d75d92b4f5c7d5d8606384cb"),
		nonce:                 decodeHexString(c, "c1e1ebd50fafa7bdef5ae07e"),
		personalization:       decodeHexString(c, "b483f35c0d320976933f7194f99e490cb31a58f5a7a87b9e"),
		entropyInputReseed:    decodeHexString(c, "5a35af4980a70ac8f7265071d1ddfa7ad725e042e0dccad7"),
		additionalInputReseed: decodeHexString(c, "34ed35e7ebcc7dc6e2cebbbe4e8ee2cf73b5aecbc3a115c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed9ef7bb7ffda8e132847ca109608fa4fc60ca0470f4d96a"),
			decodeHexString(c, "eb4826578e0540db894aa6a222eb084983f473840ae31097"),
		},
		expected: decodeHexString(c, "25de01a24978c0763eeaefc56accc4db8e81f02ed063282fb2a50d544e2699178985b367b71aaef924129da95820d4bc9811ef9c260fe0fc6e0540a3ed7485ac672144fb7d541eb801da5eec1efa0f8191ef5bb4e1eec27d8beb8e729d926e7b307eb781f5481582c00c30a0e5c5eac0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3df09e66cf12a50a1da72e303ec9feeeb5f0021073fa974f"),
		nonce:                 decodeHexString(c, "41b37919e8c1e70f49d42b17"),
		personalization:       decodeHexString(c, "ae44913a661b8dc544ca28f1c62087e1cf3ef528f8160fe8"),
		entropyInputReseed:    decodeHexString(c, "eee1d57bd0b7407788952b9722e8cce291959e07d2720552"),
		additionalInputReseed: decodeHexString(c, "528032fbc4ff0f35f4f59b088b26bacef0f4f5bb3c29f102"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e6d3c40d5ccf5dd91bbf3f3a8f6742c800a48f0ba3424557"),
			decodeHexString(c, "3cf47801466ed01a6fa152dda1bd34e112f9c0b70f21ff09"),
		},
		expected: decodeHexString(c, "8830fa991e89e56d2a26e49fc4ad2af6244fb8dda608634bd2043a0d262fc5685c9cced16805114e2199777a4f9b17b727ba90fef0c3a507b804d3b6841dc41274104deb034ed8a787d4a3b42c9941a01391e20636443eefc2a61e9140ee453d41829ca41bd6b7f1d9a7f3910b8b65f3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "54f91e62744a88fbc02c3b4cb7b12586124470143f36daf4"),
		nonce:                 decodeHexString(c, "a38b441e6dbddb69e1f7e704"),
		personalization:       decodeHexString(c, "129d38491a1a5804a14e64e5af58c20b38751f36cefd5bd9"),
		entropyInputReseed:    decodeHexString(c, "a0bff2a1a28cc0a1d9035c227ddaef5f1e034dc510adfce1"),
		additionalInputReseed: decodeHexString(c, "e3757c1d88033054b4b6d5242033b926fb924595f65619f9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70bf1f4c0991241f7487f7db24c4273b6ef8d04e966f1c7c"),
			decodeHexString(c, "4c51d133a96aa2a1b91cbe2599b2d2e756616358695cb269"),
		},
		expected: decodeHexString(c, "7b41713dd51ec0a9b126e9ea6e6f2c3d9a846ccc38eb7265e9164193bc29f1aa6b16dc5f184e6d5db3a8db5b64349b8601baf0342e826cbd036f29129c860842e1a1932e2699556cd27bf5686649d6a1e0d14058e7748c1e218ba18198925334a6b734a66fd0591bb99a3b74e10bfcbc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "49870d2ee54b7f37f266f0685ddbe690d6e78b1366f0627e"),
		nonce:                 decodeHexString(c, "b564aebb9f4d8bffcf2a7c18"),
		personalization:       decodeHexString(c, "89ae2e97e289eddbd36eaa0e83b5397bd99a277013834b70"),
		entropyInputReseed:    decodeHexString(c, "76a0ebae02236635dd3618d1ad8aa69ad94b671df84dca58"),
		additionalInputReseed: decodeHexString(c, "7dfabf32c83e4ce517254bdad38f5c7baa57b73a57360d25"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fa943b99bd44975e87793627b110065f050fe798015b0f1a"),
			decodeHexString(c, "46c481f24ddb394795d4dd2c6065e6f3e1b7a34edbd0a165"),
		},
		expected: decodeHexString(c, "26a5b9db4f772d7d0d251f341f4baa7cee760663956b87309db0bdeae6e9d71a468fdca41dd2cdb057e358d34729f9aea49376701f5bcf59ae8ee328e8ffccf5e8e26a28a4f37ddb2553de2aa06736dc74fdec8b8ab3a071e3230c08617f35635eeb42dcd5c4cb8d83fcdb4c2b61d66b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "80588af58db879b87e110d25732dcd48ca5ecc76df23938d"),
		nonce:                 decodeHexString(c, "46b04f7475b6db5aa67179d3"),
		personalization:       decodeHexString(c, "0e6acc0c44ba711cdd8abd5dfb58dcf642e2306b5a01da88"),
		entropyInputReseed:    decodeHexString(c, "bc5c317b0e66094d45fa49db911f6b11122250992e370387"),
		additionalInputReseed: decodeHexString(c, "5c5a87c8f76698206625986d1f94df2d4f8be211d1519855"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3eae1cd18dd003e18d66801be24bd71b146c9f919568ec0"),
			decodeHexString(c, "522fd53d89354bec859b20632f3220974f6a04bb4403b799"),
		},
		expected: decodeHexString(c, "e56f1175c87b8e31a1dddf27aaeda1398c766e72b7c3f9b6ef85cb0922ef82056a167ce637bf490d09f338bdf27aad955b294a850873f7fb4ef4003a5f4fa834d6a15407c6ed3ceea12ebf15b7ff5f276f40e6184581ded173c5e89bc89d69594eea71f5ad4cca3424721f981695754c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed23_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed23_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "15799dfa6bcae8af2f45091c0903e6dfd3f6add02f4f845c"),
		nonce:                 decodeHexString(c, "5e2182fc9d467804871c3ade"),
		personalization:       decodeHexString(c, "dfbec51c065154ac80ea0dad73664ea2ff9a78573d5bc3ae"),
		entropyInputReseed:    decodeHexString(c, "9b8521622a09ca5e4df656802aa399d1d9c78e252dc364fb"),
		additionalInputReseed: decodeHexString(c, "91ede5bf34fb3383d1e5990251cd9743385932e734ef3a85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "597c9d6165f87a9fcfe8ba84b619a0e2223301bc916e9a08"),
			decodeHexString(c, "15489fe877f249283ac9cb4281f3a683e00054104d13eaf5"),
		},
		expected: decodeHexString(c, "187213d7b2c4b48ed2eb12bfba3dcc3e405653b1466512d1a474b922e1ed77744be5ed6014b1794115a50306a85b38e4c39d1d6ec9ed7398584c1a03c4631ee03d7653d0cd8e0b9669f9ec271d0dd08d6e82b0ad6aaae2594ab4b0af9147fe3ff58482c92923b3928bf8c6ee5cd91276"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed25_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "657d5c3024e143223b44bd36fca677795285c0e20488ecad"),
		nonce:                 decodeHexString(c, "cee95274a23f7fe0f45e5b6f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3776f206da67ea4eb94a97f7b1ad6382a1fa99b473eaa0a6"),
		additionalInputReseed: decodeHexString(c, "15a492ea6f796290734c957935aa36d3de191063811f2322"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e4a4742011ab52133fc79235809741c986e0af7686008424"),
			decodeHexString(c, "5b45882dcefb0823e2dfa022c6796496aea111cef3d27c3b"),
		},
		expected: decodeHexString(c, "05f8e14af8518b939515f625d8e3b013f337184c45984017b895cc4722746aa6ced845dbf7442ee3de495077159e1a08901be78a610bc34b24bb7db4bfa448d0e2e7ea65975d9be26158bfde6a98966e8a0e2ef1cee8298ad233db9f783811c7552f49835104d7fe6fbfebd02af48082"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6f820f69c85b8503212bb75be96db2b90d91027e5aa054d1"),
		nonce:                 decodeHexString(c, "eb0c11b0d09e9ede0ca8b470"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "60ee1addc0a2cbdb62defe7c1d482b5f5f74a42cf7982d31"),
		additionalInputReseed: decodeHexString(c, "78483611023a22fda827189e1f66a9629e087928930711f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f0f9c009c5efa9cd653aed74e55c01857edd266d2b69fa16"),
			decodeHexString(c, "f79ef0ac2693167f4a9436e371645010dd7d41f4cfd80362"),
		},
		expected: decodeHexString(c, "1494fdc18e7365354cc67dc081df49819d6e40450ff86eecb15c8754f1c9a0dce67728909f3816b26a315a969e28b5154755f71a1c2767d19cfeff1d30765064d74833f45a191655e190379e2c54aa1a4813b848207a8de45ae3ca79eb6d5b53c1c55c93d10736dabfce536c358cb7ca"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "d31d1c861025c17d34d83ab7afbad89711157a11ccb74976"),
		nonce:                 decodeHexString(c, "d02eb488afca5cfe6eb66362"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "59bda27b0b30912ce01ef7a15b1d7498f8ee46892ed3a3ad"),
		additionalInputReseed: decodeHexString(c, "5d74439a073d943243ea5b59eba3653798e7b36bc1a3425c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f3810ef90351a23b0cda02e7a6a58281ef05a21bcb330ca"),
			decodeHexString(c, "5a8c3569b155cd93f06715f88082a130681bdf57db0e6723"),
		},
		expected: decodeHexString(c, "89ba7e16705823a063d860292b99976801e26bba8c26d8d5f893a48727e0be5b3f8e960f2ebf474eaeb6b15ceb4197fb1a940ade6144396e24d2f390aa0430a693dc6d59a61a9a0b12a77aea51de6450af40619ac317a590377bdc61059750fe3cf0a543a6c01edfeffac27018415a41"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c251da2d60f2b5d5747ca39e08b10e19b3b8a968d625224b"),
		nonce:                 decodeHexString(c, "8691a4e0747aadfed51471df"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fbab01c53d86d9418efd98b68b10bde87aaf1e1f66299128"),
		additionalInputReseed: decodeHexString(c, "3fbb8df9d16ec08f3df6a391aa29ea4b34c62d36b94232f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d691cb61641f3d2b02d572f697d1d7cf68ab92cd0ad0b68"),
			decodeHexString(c, "3d61543bd67cdec01c74df0fdbcd65856d4a45fb07bb020a"),
		},
		expected: decodeHexString(c, "0d1ddc9dac90b63f603b97762e9f7554b504d9718a89c9d8f179a7c11dfe53e533f7071325f2c7a7ab4c84ddd327702065da5b9b7edd73e7d723cec8ad53da55cf4d99c44bec678d36291961d76adc63d68c17b71f0781b05fef97074106ef78c9d6890c3c35df2b2ec22050460da76d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "df8641153be92f1ac8fc07bbbafaee5f400c65a6ff07bd72"),
		nonce:                 decodeHexString(c, "277a8bec193d1f7c149fdb65"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a7f0ede9bc677f85d78d4f823539e2a0b4d4e0f039db96d3"),
		additionalInputReseed: decodeHexString(c, "5c1ab245b7e53e825586258ecc18055494d1aa3b669f225b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8c5ab3e6291aa458aee72d4c845cdbb54a6be5a140f87a8"),
			decodeHexString(c, "4fc0aa10b91372bce41bdf0ea5b7bf8e7ee59b7153d8e827"),
		},
		expected: decodeHexString(c, "0d33ae47144b118d9cdc5ce6c1076edd27af1e493c063ee54a07c939b6c565e5ed5af1fb65dc9f4c79d017c4231d14633deafefcfa8074d95182bcef9624fac8c1ef346f3f091a4d75e785487a3feeeadede3d0f97174fafbf7b1614de495d8302832ccbe9750ea5ecdd74e5a4a2f7f3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "97ae77688724f0b1ca8bc89fd3d0dfc9f40644b2ff8a3c77"),
		nonce:                 decodeHexString(c, "01f493eac0126b562e813f9c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c20f8bd571fca7bef2c3a5eed39be4b7bdc182042d70229a"),
		additionalInputReseed: decodeHexString(c, "ab17a029f264a256e08cf4281d28f450ba719e8e8a4f6b37"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bdfcd1a25da34a414c0b3f0c0a154a875ad793cb834c0373"),
			decodeHexString(c, "5b26db1fbe1745c607c37e36e8c57f18cba53acbce0324ea"),
		},
		expected: decodeHexString(c, "6988cc09f66ba2a1a8c57083dfb82b029ec6a32c5e5abd0a40655aaed60c9e5510ad3d718dcf89dc96fc2d1605b0f80f3b79d8051ebe4041512ca518d1d3ff7d372865814fa63e4d117c4e8d21dd62419684382266ae12301c0b65dccfbb056b2707e582eb61552b7b1ab8c5b81dca87"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b2fc92f0c15db921b6b40cf7d2ef90bfaf4132d7b0e2df58"),
		nonce:                 decodeHexString(c, "b12cd09d86d7db6d44aaef82"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8226cf7046617168e2f086e86527bc52bc29a284346304bf"),
		additionalInputReseed: decodeHexString(c, "2da70d227ac84784f3708ecbe233698e0bce6fc876b38449"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3c42b50e8a42219fbe6de60eba00b0e8078ee7e4f11390a"),
			decodeHexString(c, "611e389f34af997e6c8d14a2ab497fab3feb66bff2df671e"),
		},
		expected: decodeHexString(c, "fd2ca0d11c9f3082313ff26ec3641ab50f31e9099dfe2c5348c7dbbe6cd4911b0d5ff3d21498dcdc1820f8c5a81acec28be95ef89aa87d15199938829ecdf075a4cb59e24cd9d70a5df65f3590b6f6aede983e59e4a24acca5e418c240d4f5b069c6f9a2fbed7cfc626c7cfec20fd20b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "1441936e51a7b9ac18c784d48140b8ed6f9fe8e5a810d2e7"),
		nonce:                 decodeHexString(c, "281c1243e06912c1a19b20b9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b2d909aabc518f59ed6cb99fe65aa49c3fa783e684668b81"),
		additionalInputReseed: decodeHexString(c, "711d9101dd66e4806884e68652c90d9fadeca2139236d6b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f1b44a5d5c55a0e48c7c6648177064a520a531a32ac12ad4"),
			decodeHexString(c, "853c9835a7c9a7bf85273b6167f49c9e2b5c3a116e531efa"),
		},
		expected: decodeHexString(c, "17b2b298a39bfbcf44535ad7e9735478b571a9b614584ac4eaacd1532df0ca142b5389a1132e20e8fb50037c47b236e315147d116262355b005f243d079b81602825e06e6e87c960be15ce28fefef1766f1d3d213b4ec2205436f7e970670038740e01b1a8a3a49dbf5d8cc2c319342f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e772f641e969d48e539b9405490a05f15ccb234046b01a42"),
		nonce:                 decodeHexString(c, "3d2728c803e78fd099f7fb5c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7700d73e963d9bd53c6feb8ce3889be6416810e9a14dea69"),
		additionalInputReseed: decodeHexString(c, "4530845aa616756f3e0e9fc5a5286ae40caca0c86e31477f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e2681ae0a5adbb139d1115da247d4fa1fb8fb6ca243dc5ec"),
			decodeHexString(c, "7ca473017b8c7cac8aaeaa79698f96dcd9c8f772aaff522c"),
		},
		expected: decodeHexString(c, "e06b56b1ab4f974551b2087c7ad4fe5d8bc9ab10b121fb2f9e130a9c9043c6989792218041b5fa8eb2a28fae27118d203f659b5dff2fc1411a79fe9b87168bed34323cb806504e51fb67a5f60afc5978e6511785c3645438defbc0c1d79aeec3170a47c4e6c97307579a8d2958a05b4d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "355b934ace4cb459c4b64bbb9e32474cce7e9f3c182547fb"),
		nonce:                 decodeHexString(c, "995bc81ef6627bfab6f57d05"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fd10d8661732ae32cf58b1c97f512836049e8fc8864ffe61"),
		additionalInputReseed: decodeHexString(c, "debc3cc097e45ad3fec1397f4a3061d9ea5babe1378b2365"),
		additionalInput: [2][]byte{
			decodeHexString(c, "90ab8870fa25369bc4865d6e69fafa81cc52cbbeafdd3305"),
			decodeHexString(c, "c52e3faf9a2858f4f22255c0453641e14d198c7f2616541d"),
		},
		expected: decodeHexString(c, "37cabee18ba579ebb4476f4a19261d6a98b9a4f7bebc08cf8222bf4b31fe497027cdd69a1e206f4543cd46da8fe62efd56c62af32ba980299fc3617d3f34b73ed59d8c9b8b4ee6e92cad0f90a50acbd6278a8e80c0f24062d38cd33778ef89b1d34b4aaf9e6b99f574c0fe78b61dd5f4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3625e6e80239e00f90ebc07036c06c67559324a33cd725aa"),
		nonce:                 decodeHexString(c, "d97a8f4ef1ad3567d407cf76"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c41806b28df9b0cf2ed79f5c29d7f6caa9017ce28ca8c4d0"),
		additionalInputReseed: decodeHexString(c, "96239c7cdcae6dd3caeec7d5700d51a41148552b6c7cd995"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6d22ec039d0d1587ea3dd824557fdc2b1d6df873986b7ec9"),
			decodeHexString(c, "0e00eb97ac8a962088daae11ae055252d46b6bb2b438cc46"),
		},
		expected: decodeHexString(c, "8472e0c91db07c55d549fde895f0128e048ef2783051fe57d9927b5a87f494943b3e99fd7f9a4a7395948cb1fd8491b309b326382b9e8893999fdfab35792b19a6fa903b052f1127cf2a35072c881a334af522332bf5bfee659ae37300de98d37e7f97ae96c4841ac9421b7f7e7048b0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b7b5e782690e66c43128f2337d803d9445371f4a4a8af298"),
		nonce:                 decodeHexString(c, "a45e525bd91ee533f623af7b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b0b0805777df43116c5f62644c4c26ac04ce4823b333f5bc"),
		additionalInputReseed: decodeHexString(c, "22bc95a74c978d432f33e28c3785aa1887bc8c8d2541a2da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3d2a5cf4bdb49b4564b54aab6a385c67d1120a561ad0910"),
			decodeHexString(c, "a1d05cde97106226d3f40bb6f18d2281ee141522e2c4e0db"),
		},
		expected: decodeHexString(c, "9dffaecc8dd42ab719be78f026e408ac6202c98df801b62e0e17478d9ef85427cd6ba1a3c73322746f91ac11a7061e27ef281fec53581b3d8b89673210adf71ee1b26e740866e09971dd917cc22377645767d6db584e6bf880907303677e205e421d34650f88395032b550558e5e9894"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "7b2d7346d34c5ca5d6b3613be91a0023ad6503adbe43b216"),
		nonce:                 decodeHexString(c, "5a0b849fc892b06b284cc476"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e0daf0ab4b586ef67e5752087c0356e2445a2f5aa5fdb846"),
		additionalInputReseed: decodeHexString(c, "cb1e06f13bba60d1fb9a9e775075dd38a8bfe705857f3e60"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a13f0d5690f697f525a83bba81facef2459d64600759a989"),
			decodeHexString(c, "a2651012970c758745269ee659efb6bc795de93ead39b4f0"),
		},
		expected: decodeHexString(c, "b68a77ffd1365d5d6bc458f263f93ac95fb317d983655a891f77fef6c72110077ea50ea0f9b6dd5a05ec596bbe54c3b5f0712cc96cb3090cc4f04f2f87fc13134d42c2cdb6da6a87a4798b543fb8b9cc2bdf01520a28454bb90c6b3cf6ac13e1963f154c62ae3d08ec0ca7928f21bc79"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9d30d0843b3f8b2ca15a60ce26312916df306ea8661c3fb8"),
		nonce:                 decodeHexString(c, "4c2d22ff5bbdd53f982be135"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0aadd3ed3844a3e6db5d3da5b590b4ecfaa8ab9fb8b9b4da"),
		additionalInputReseed: decodeHexString(c, "948c2397cef227d8ffd5be195a2a06f8de767559b987c874"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef20c5fa81c43931f223f2ace3c659dbae3fbbe4d1292f2a"),
			decodeHexString(c, "de6db9682899672ff2c557bc0385cce369fec9e9d1249bc4"),
		},
		expected: decodeHexString(c, "608ff594cdf3e8e056ce057e2c3a33672df58f474aafc0fcd3d7e81270d63938008fa7fabf87e871812aaaea9c3ba3acb75cb1f27485c40c78eb2a7f33b3701476506ccf4525b9754a6edd3c06440d0904ab73ae11d636dc0a80fa7e138861857a3f2e63a0abeb85aab83bc75abee4cb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed25_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed25_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c9482b776577847619bdde25ffc90eb8431ec59d8e92ae83"),
		nonce:                 decodeHexString(c, "b2461c12ee8cbfed5998aabd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1f6e03f6db3e86229adcaad32aab04a0b56210b0c6e05f30"),
		additionalInputReseed: decodeHexString(c, "ecedadc9cdffb45c114e6e21e1ecfaf7c20741060bcfd972"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee0472df1c2722d06785e50c7a6b6c9c682d97acd0561719"),
			decodeHexString(c, "b29a5adaeec81040ea28537f9c1fc7cba2d5a5bdb81c0415"),
		},
		expected: decodeHexString(c, "7190d35873ffe6bdb05031f37b0aa3b9837116281bea9c923bac2b3c3c3c022d17b9158f8a1dc1b7ce248f3e4be6c9c2e305ae7f4346ef0ba2c9937592db98f83b7f0078700086df36936962d548ab2528590035af65208d8ecda01d72e7dab73bc6d8617d99fa23b2d63992ad4cecbd"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed27_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "80567176b6347376b166b113c3eea83c175a1de8ae2bc30a"),
		nonce:                 decodeHexString(c, "125eb2228f828b9672b5c3d7"),
		personalization:       decodeHexString(c, "9da815ffae85de6f18f608f56ee2cd5b6c0442795c7fecb4"),
		entropyInputReseed:    decodeHexString(c, "4a21df7666ffbd50871499d8893cec62733dff46ba2b825f"),
		additionalInputReseed: decodeHexString(c, "2021d82d38fdf05fc21c30375dc8ec4c3bd0768e46dea019"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b4e1e4baee69d23a1f70cfec22d675e064b7deaff307476"),
			decodeHexString(c, "89f0b8b3a0c6f54884ced4640633e6ff9cf358981d583177"),
		},
		expected: decodeHexString(c, "6d84e421de1373aa513200a8f86e1358f58d5b5d9217e374e1e73abbede1943e161772706a9ceb546a57109f6f4e281ce95f0af13dec39b442416b064c7f304550f84ff5b09e140c969636c5593e00224018ec77608bb337bfa3b14c8ae24a53b89219e3d07354f42fb94bbcdb16fd76"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "099a07cf0f18d548113faaf67c9e278b30729d05a22a657c"),
		nonce:                 decodeHexString(c, "6bf03c2f750123f84e32f75d"),
		personalization:       decodeHexString(c, "d495b7c10b73045902e5d6178c55b9505bace6072d790800"),
		entropyInputReseed:    decodeHexString(c, "e9ed6e7063763161a5791b788bde025ade0959fc12f6f1e8"),
		additionalInputReseed: decodeHexString(c, "81cb8e1098635cdf9e6ccf5b6d4e62573a2f6b1e6cfc76cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b579a4288bb6cb2f37de180629ee4d935f366ce74994e9d0"),
			decodeHexString(c, "9ed40efb585f65c9cb3db04a54e3243f813255865ff2b43a"),
		},
		expected: decodeHexString(c, "836f00787297417d6f14f4a5356cc6e6a40d7f6c3585b4abe73212393eac671365e17d6d62004da9ecbdf636d52443142849e6fd256910d063afe1c5edf8b2963bde8ec6c00ef2ad2ff0166800c38dfeaed9bf8db6206e79d3fa3024626d2d89a308b9d31657d1cf0323640b1691387f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6a331305c63a4df9cf53c8561e05c0e2c0a14bd4af0b3057"),
		nonce:                 decodeHexString(c, "225e1dae0144aedd5013c9c2"),
		personalization:       decodeHexString(c, "7835b7de1aae2a08778b813a0e39b15c053070f6d7654796"),
		entropyInputReseed:    decodeHexString(c, "8c5566f9c31beb2509cbff4f3d0805a7d10faf68e75a807e"),
		additionalInputReseed: decodeHexString(c, "734ba1cc3c423d2760669f972dbf7b44198078e941c1d4d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "411c622ec28df5c8de59eb1515bce06deacf4035a3f054a8"),
			decodeHexString(c, "c43e5b82680320fe4628ba00c7dc37ef82e5a515c148bfd2"),
		},
		expected: decodeHexString(c, "53783dcbb418e263a48607439f8aaa87d6ee20813a8f4d454d719ca54220dce438b578396af92fa47366b2fd5c9da6e8b2c2d8841c8868d444cb3b75a25fbb5d2eb169f5be3457e3e9f3303dfd6e63b0a21158bd764d794e559b43e89142a85756e3260b89e54be15a13f02be560a3c7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "c9bf01c1189043e1a89eafb3b4ba136e0bf0e090a5749564"),
		nonce:                 decodeHexString(c, "bcd9dbdee6b7d08708ef76b4"),
		personalization:       decodeHexString(c, "5558190da5cf9086be52afc9172d192c853f7548368608b0"),
		entropyInputReseed:    decodeHexString(c, "48165ee08c29f269e1c0a56041e9d04d099645b09ffa2d2f"),
		additionalInputReseed: decodeHexString(c, "be42fc51a75186a5a61cc4cad71929d5d81b25b81bbc1805"),
		additionalInput: [2][]byte{
			decodeHexString(c, "85ad9e42964a0cedb79ed9dc0be1cfd2ffab87fd535ef3a8"),
			decodeHexString(c, "7e4f829a60f7e1d733605f087b1b668ea4ca9ee64da08cc8"),
		},
		expected: decodeHexString(c, "5dd88812cf61d2c476260cc6f13efffd8a9d7ab8ccc826ac0928f16ba6d4ddb6b6b521b69e9b8e91b81fcca868d41b2765aaa0c9b6ba85d0d47663420e9e00f9cf7db31fc8f60912893ac79728994ea84ed401b764acf9d4f0b18553279512255f1cfc43c6679d35649b5348990e5249"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "bdd4841f135a709c59d2588f46017201b1e59ab32813e032"),
		nonce:                 decodeHexString(c, "4656c0d34583bed1a56a620e"),
		personalization:       decodeHexString(c, "ae2927cc67cc1833e1d28419cd02bcb2081885c9b7d0a9b1"),
		entropyInputReseed:    decodeHexString(c, "fe88c01f9ed4336d849bf47de655f19c7a2ce100d9ae442f"),
		additionalInputReseed: decodeHexString(c, "a1f9319a6742d23d511f605f2e7575b7be5f247605632a89"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6cd25aa592bb1396318549c06be4968b98faff79cc944fbb"),
			decodeHexString(c, "e01d601bb148f3bcdc71a8ee729935c6381eb18b596a2a28"),
		},
		expected: decodeHexString(c, "e238c0f53ecf13872680b9d6a3302a00dc31f776bb21f5a8932ac6afe795230df1dc9e07c3b3bdc414b225d00e9bdfe590bc2020344ade61116f55cc5798c96fd75cd30462938cc1896353b28d71e1a44d725094ec31c58482b548a9b2776a99c5085f720e218f6d75952f0a1d84e1cc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "d0e40e6380bbb794c7e07208c13e5edc85c394cadeed5a41"),
		nonce:                 decodeHexString(c, "2bc48279ee83a781fcf97cb5"),
		personalization:       decodeHexString(c, "bcff8a083971157d850d62ae0ed14926b8ccd844a91f7b9b"),
		entropyInputReseed:    decodeHexString(c, "b7a5b0341bd66a95270dff16c2e1212d720c24be1ecd54a0"),
		additionalInputReseed: decodeHexString(c, "9f6033aeb5ea5a2972c54e3997840e15b9bd9e3d1bf4bbef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f7371fdf27afe3a9ff94459a49cf09b892e0570418885036"),
			decodeHexString(c, "020a112d8c6610404eae5f63086c383e03821a2476be04a4"),
		},
		expected: decodeHexString(c, "c7761e1087ac20245d53f18eeccb4be33bfdb3558f6c8f4c3829e834291266fb45c95e5c4804e672c4b67b7828a3c9f7edb70f4aea2825123fd8d9fbdf7e2de2e3e088a38a4c519fd49777348975f937b78c240df76dc6dcb8a852f3986ea759f2fa2f899dd41934481dcad17abd61fa"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "83866d31ddade658c5d72c7a4a69b9087e94bf2c8cb55557"),
		nonce:                 decodeHexString(c, "63702d87dd1cfab83364df15"),
		personalization:       decodeHexString(c, "c829cc1b5089bd16fe77f35a642fd13b243d8a953c059a76"),
		entropyInputReseed:    decodeHexString(c, "15735cc973d2c91096cb5ba5351af32378df1a5b11fdc9d3"),
		additionalInputReseed: decodeHexString(c, "0cf2848b6374b8e6a9b09437c7edb96c4975f0701072a9f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8aaa52b45e75eb58ff3b88c674cb0e2751a596b5f2076a84"),
			decodeHexString(c, "fdc08cb748da7219ae28583e271963a332753d29b64926f1"),
		},
		expected: decodeHexString(c, "84ae382aec0eabcbf5080c9a515adc92541e792f5656e7f81891a8e99585da4aa6536ca8651d8e38b2fea904f46a714d31c86291378c8fe809e01bca2199df6b5cc6b11391da30e67e6fcc4f87b1805756a28c6249029705b865a64c358cd4fcf63d25700cfecd35688008e2393af8ff"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "62f9d21c392ce88980a1397fd39add5d66449b8ba95abb6e"),
		nonce:                 decodeHexString(c, "d4f0355546680d5babf121c4"),
		personalization:       decodeHexString(c, "98bdbeb2b4ca33631a2145a0fcde90f779ff3c16f93f3b8d"),
		entropyInputReseed:    decodeHexString(c, "2dea731fd5f37e43bbc395777abc5acc00939724edc241e6"),
		additionalInputReseed: decodeHexString(c, "ce80da898cac70b7eaa0979f0a086af573b855c0df5e289b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74de50b45d817cd2e81cbd7e9a11850d73519baeefb682f4"),
			decodeHexString(c, "358575934503da4d5ba47795ae668a374a4166a4e1d9a6b1"),
		},
		expected: decodeHexString(c, "8aead2a1cef2e59ea7fad3dc899d9362ec7969b4650d2d82f7b307b8a6b6587bd2fb977fd297fdf2c6029c4acf299b8905a31f1d65fb9ac22ba220cce8fd84df36f962d879cde3d3e0261e484961c6c1e4b79aa343b0814d44744e230cf82ee1c9c1594b95362e0be71809623c714946"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "1305766b7e952a676e65905ccf1bc50cb5936ed1f23b8c9c"),
		nonce:                 decodeHexString(c, "aff73b1abbfb622da9b0ff53"),
		personalization:       decodeHexString(c, "6dcb310549675c56da51d08020b5e74020aa697c75a98f64"),
		entropyInputReseed:    decodeHexString(c, "ad131e6f1fef8cb0cc9411cc9bbe96022f912a0fdf312c90"),
		additionalInputReseed: decodeHexString(c, "458cb247fbcdd8e01766e3bfa7f85fecd887c4a45230f59d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f090b65d8b2ac7ba871bd261825549d13100c0a7fa065eda"),
			decodeHexString(c, "b3b304afa8ad0df4bebae42135795484c59fe19da365312b"),
		},
		expected: decodeHexString(c, "c7efbd868ce657ebc17cb4629027aedf69860547daf1281ad85a6ddc105b8959bf54480273543c317e85e571f19073445d7db8b002f7ba14b58a23bd92e5d6924093dbbb1b2dceee8bd8a9d8f5ee5b644118eb9299ce11547d74f3db0969bf429c68c35629b4811f404a3266252f2054"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e376320bb33d8b9cfaaaf8507e1f8c7fba7c44d43ee473c7"),
		nonce:                 decodeHexString(c, "5e6d60239f752c8ed33af4ac"),
		personalization:       decodeHexString(c, "a75a88e25fe595b2ae5f1a6ebb8255b61691710f11213ff4"),
		entropyInputReseed:    decodeHexString(c, "47687a70be072729e0f54b6a3a92fba1907f3f2d9c28ae4b"),
		additionalInputReseed: decodeHexString(c, "169c0c80eb7345963ec48804c0ae4a614667c520419b67bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a49145bc32072821a2343dc4daf37df682b3a97c27ca399"),
			decodeHexString(c, "ab31d9be3d485731c3d1a53264a4ee5fc582d05f74f658be"),
		},
		expected: decodeHexString(c, "4902aa3b1206183a40b895b7f833f5f46d838b06583669fb0cc097057e8be301df3658c985fd12caf75e0e3a3d846454ad5c403f2050bab3f6a24bd50c5334e6c00f90449dcbd2add3ed9cc480161416183bfba3926559171e2823abbaa97da73514589d6a163960fbd9084adf5d7cd2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3bac99965f7a523e13f6f3f9a8aeceeb3f6efa1818986f20"),
		nonce:                 decodeHexString(c, "199d14b7afdd0a029f1a18bf"),
		personalization:       decodeHexString(c, "153f3a6071fefc330acab1771d6ccfc016347dc0b0093c27"),
		entropyInputReseed:    decodeHexString(c, "5ef49b621c909beeb34efd4fb83055212ce0afc700969a3b"),
		additionalInputReseed: decodeHexString(c, "f674eb58cf47d558093dc6071fd6361df2f68afbbfe99141"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c1721a6276a0cf3246a7a90502dae8491fb963de06a3bc3b"),
			decodeHexString(c, "6ef4ccb5cfd5ef5e8469fc85e8ee67285ac10a4fe8e3827b"),
		},
		expected: decodeHexString(c, "fd1c183376d41aecc6abe7dbf64679c969164af5c8150fe9cc8e15ebd6eca6b83c8b8310b4ed93d75f9698fc605056ef62528a1f87c947ff53472fc6b4bf50759e4924e742ea4475ce09187f5f8b3a550cb18aa0a2e7020b385daa6b837c4a22c9cca9224bbce67820648a389a1daf29"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5edd69f9cbb98e5bd7618c2bca6e59e9eac92224e0fbebdf"),
		nonce:                 decodeHexString(c, "74fd8f0205a22656afe61b79"),
		personalization:       decodeHexString(c, "fdec49f9e9963bf96f0f7f4dbc0b0eb8a1f28edd5cedb771"),
		entropyInputReseed:    decodeHexString(c, "367997535a88dea4027995fb3443992658c9ac9d94a4f28b"),
		additionalInputReseed: decodeHexString(c, "6cb79f27c1bf1b9c8992a07ff08af46d5888e6d24ba92871"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84bb819a2a994107e4dab02cc272e3253f0e2dbf561cdf76"),
			decodeHexString(c, "febd4a22fb1acc88ca753fb176ce493e0d0cf59acaf41eb6"),
		},
		expected: decodeHexString(c, "aef58c0a05eb9b51f3f05e14f3f377c228954a60f7addec58d5cd1dacc17df91660caf772faeab1f2670e075ac2a9e129b757f59ab21318f294f5ccc65b4c15b37220e81123eee627237147ed68b71f5a9eb4a3e01d1aae6a8ef0c627cdb61ccdf51f9afafc476c78b76a76a58a4b3d7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "06d32da9586c477df8d17cd62dddd7908ba54fdd6802df2f"),
		nonce:                 decodeHexString(c, "6f0e31e6d495804049dfb0da"),
		personalization:       decodeHexString(c, "47037a9645d758bfee26a2671df70577aceea8b63dffbdc7"),
		entropyInputReseed:    decodeHexString(c, "44af2d3124b715a45c531dd218b79924359f8bb372540136"),
		additionalInputReseed: decodeHexString(c, "f5b262e16b56e72d2090d491851ddac365d9286ec2c989fd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f7011c9804bc1366c24d12cc02e8352571e327ad7d0efba3"),
			decodeHexString(c, "9480d6801a0bc70fb62840bca84643d8b63015b3a7546690"),
		},
		expected: decodeHexString(c, "2bc9f461ee3883219fb68d89e8623a058841e30d8bad939ec9d72c4d959af63e776570448a71bb92d6c93c9d326f391f8e1ec24771ede4cdadd5cc6cc98796e9827210e95dc41d2e707b6d96a052f27d45d6789b6a69a6283db665c03c3500d3aaeca72c0633a2fd73b39b5302472824"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8c46493a1044bde81852b7b44ff2fc4eeff02ef558a62144"),
		nonce:                 decodeHexString(c, "c26ca1c1786cf443de8d4a7f"),
		personalization:       decodeHexString(c, "8597a291556eb4d407d113748c58761b3b36b4705b4cec42"),
		entropyInputReseed:    decodeHexString(c, "3d353357a1ba880ee9ed80fd72dfe93fb8378a42148d52e3"),
		additionalInputReseed: decodeHexString(c, "0eb9c35b1bd4a4eee562fc60944986a13abf26b60abbbbde"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f3e5e36e05326f7982c42aa27b22db33bfaf0e092eaed4f8"),
			decodeHexString(c, "123bd6652b72c7c0182ef0bc22b4355eb0301e7b751604ac"),
		},
		expected: decodeHexString(c, "7d20d18b9aa4f1629c419ea67e9f7a07d69008dec5e8f5431bb7d82f447cc636d035452605835896df559507269435aea5e3efcfebe3cf00f8374226d9870f43679d8ef575cfdee2c72756698744b253653b460d8b15442d591e86bec12772a8aa21e9f9d01df491bebaf2e13a6a7125"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed27_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed27_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "d0cb2aaa38ed8c9b9f64ff39f4ac48808ffef2fd04d0a4a2"),
		nonce:                 decodeHexString(c, "9dec893517969e773aaf352a"),
		personalization:       decodeHexString(c, "46b2342303de2b0da50044641a0e2baedd119ecada2f3655"),
		entropyInputReseed:    decodeHexString(c, "e1f314f98a7852d6e72c5fbc3d16a71a7ebb591d0a6a023f"),
		additionalInputReseed: decodeHexString(c, "32e1aa020334d0ebca7ff51f1d4efe491963a9c63656b287"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d25fe71198cd3cc3330d0f34eccf3b37a93dbe1479e6d1d6"),
			decodeHexString(c, "e758eeda00542c0b4cc56b971c795ca7f28faa5f63924e9b"),
		},
		expected: decodeHexString(c, "e3906b881a37baa38d3fa07038ed03f4c00b2944a7d9b52e4cedd1a064f1da07f819fac00ad96a98fbccdd7310f48b30c98de64f91c1768e82c1b43ae67ad27094a0ddddd6d5891d376b6f80800c738ce86092753b74901b7e7795b3f042a16c8437fb2cf9d8ba696c62d8ab9f5642b6"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed29_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "1eaf70c6795e86e723cc9f13330c94f7fc86885ba46c90ee"),
		nonce:                 decodeHexString(c, "829eaaf7b3c00d4d4293687c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f2f7f156af697abb2b5593724c8c6e0aaaaa1fbe1dfee3b7"),
		additionalInputReseed: decodeHexString(c, "a9d90ef9d48cc0723b4ff35ae45242fe88d2dad5b04f92cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b895d86be29d3beadc120572da13b54c69f47f4219e77788"),
			decodeHexString(c, "c48840b321e0d323f720504d03f86fc8033b827d861f62ce"),
		},
		expected: decodeHexString(c, "7ef4fdafd899d23ce22d90a61847f2bd2766b841e2ffcb6f9499e5658103f430c1fa2dd100a36349c8e60594e0efc34256772878e16f45c7d23b1b85e4f5aca49a13071378561880aea14303277145b17433456b452fd538fbf2d30fdb0a40540527858f0322e3b900739dbbfea8614f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "ff2cfd158c9ae40daf14c2c7449f2df33a0129e53836991f"),
		nonce:                 decodeHexString(c, "09821e5728611deb78bd0458"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "aff9000cb21aa8f0dc3bb9d31934da2fb169ce6efa0fb6d0"),
		additionalInputReseed: decodeHexString(c, "4e65110883653802f8321a2b89b237eb004b27b1d33940ed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ce9aed15efd63cfe787e26d935533526aa5ae20305bfc192"),
			decodeHexString(c, "a434a4d087f6d740b7a28c5dad09e60c1789ff5e6e8b2c2b"),
		},
		expected: decodeHexString(c, "73b77b5c73c53b20830f18b2ebbbbfb76f2366786c9cc73d6c826647e199e7415578bc4ae774c16a894a071205272eb8f74ad4b2bf8256c4623835f983c280cc3493721555b26cc6ba83b258a38ba8685f37fbf746af830f25df421630d58c8c698100f10b5ac5e9390918fbb442e4af"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "addf5571420df808796ff7cbdc2b4c97ec966cca6af8a474"),
		nonce:                 decodeHexString(c, "1733ac88de535b249f103470"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "20371a4cd7067991c789130fca6b2d03f3421c116247d6e8"),
		additionalInputReseed: decodeHexString(c, "947ff99073f7908ced85ea09476f4d97db9be1793597dfea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f03b22b0cfed96fae4dacc1230619d4e9d7d5c2bba5da950"),
			decodeHexString(c, "41f2211bddacc055f4ec3efc0faec4475d971e55b611be2c"),
		},
		expected: decodeHexString(c, "9d503ef25d01e069182664e5f5467347aef73fc9aeda5194af883d89118a9dae9713771b8cc221d5b34d33cf2abdf33ee6ab609d5feff7af59ea21f4cb43eecdca0c7b1b7eae70615a507785e92f3529666d7e81a2fe0cf81889a692d486ec290155f09a1615fb0dcb5fac42970e056e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "42d7dd88b8d21dc995c52a77fa845b318a92e8f1bd865ac2"),
		nonce:                 decodeHexString(c, "66875975e13005aa12409aad"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "34a83100189d0583a411c91cf5dc0e11c359174f5dc85c51"),
		additionalInputReseed: decodeHexString(c, "905f364018b7c0e481fcb5b1dbc62d2643142e620c377642"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fecd26b2cbdbcfc4fca630d1b6cc3ef4e427b37e0ca60655"),
			decodeHexString(c, "2b74ce8ee5dbde45a9de203414653c4febded3d21525fce6"),
		},
		expected: decodeHexString(c, "e8272949dce395f3e85c73de906941fb9232dc257eb6defcb88d30bcc79db5bcbddd0488a680334b5dc80fc4d70ef734ba9fd925e8c800c9a3faf54c58e5c50a8318763d165983c6a6a408874867148562ffa236bd764939dc68cafcfb497ff2fbb2cc92d69f4ad6770e8b47d696a8e2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "69a1593a6f81316e8a362269e6ed8de64f40f6f2301bd0d2"),
		nonce:                 decodeHexString(c, "26668affd533eafa9704b3b5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d1133d5d225da27f4810df93a0557d5829797e2c2d7d36b7"),
		additionalInputReseed: decodeHexString(c, "c707bf97898f86d6262bff09497c29d39bb59be92b01adc3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f38d44a77c73c3b179495b4ed296a320cce783a812c0d64d"),
			decodeHexString(c, "fad3f68f9472f68cb1ab37edc56cc7075d8fc1f112ade099"),
		},
		expected: decodeHexString(c, "1be5e99190b1af2cd979d02b6b09b33f479861a0e49482b423f0ab30c15cccb0da09d04fe8b5081751eae8304161343baac0eb77e39dee028d8d0d7a92bc0c30564c3b716a053ec3114952eef839d5b84a8378489bb2ac10d997e8d59172657496d9daa8d23d78d70b77b842f8bbfa9c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "d0ccfc7f6a373445acfab7bd05bb5c0bc0cabed8cfb42e48"),
		nonce:                 decodeHexString(c, "8793ee0bac708e370c253683"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8593f5a50db69810292180e87577ff8370f35e466c2177ff"),
		additionalInputReseed: decodeHexString(c, "d0dc76c33ab0c90eeaf3830113de6054a128290a80ac20c8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ccac86489666c2a6fddc3f6e2570c2307cda24569403bb5c"),
			decodeHexString(c, "b8ced867c5c6cb136175d0d6ffa679fded3f56b575d9e6c9"),
		},
		expected: decodeHexString(c, "cd3ba2bdedeea628ead423161229e1255f1dd9a4181635dd1c976d289005c46c390d023ae1226de2791d1a3cb6aca0c053730d254f21135df8abcce606639617aa59847fb618fb8c2ca5b89b68459925ba9a878f4812cfbea8a06f6d1fb5f506ab29c7bac891895a36982bbae6a20711"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "d7526cf570e493d964256ed5a799d3e5fbf919bf608623f1"),
		nonce:                 decodeHexString(c, "9f469c4346c3813c44586d79"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "82e45bab8d347f54b8719f3f7fa9a83143380e7e0c8c92df"),
		additionalInputReseed: decodeHexString(c, "45c769abb8f6a3731e385d1714d775506180bd4517bfe377"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d499db0cd565d75f2050a578ecac88353818f44079bdead"),
			decodeHexString(c, "f6d4e231e3808b5d46a3c0a7eb1351aa2d1c8b457b325879"),
		},
		expected: decodeHexString(c, "54eb5886741684672aee8a28cf2d769c9df417eb3767b987e4789435a82a9a0770a685bbff2688494ec2b1d49dc0e7a9b2dac63ee7df0363da40757cc77f1a972815bf3306c9c14176ead4f9a282fe2e92f5d626823e53f8897c19267139dca7747fd40ea72ffc25fc3a337a2d9e4e95"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0c9372869327533a59970a02ca04f1600a4dbe4e22bad859"),
		nonce:                 decodeHexString(c, "de6215c3b9c2f1534c5b3f4e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f910b5aa4cc17a8b1e2d4714177d8d14f3928537139bd654"),
		additionalInputReseed: decodeHexString(c, "62189fd88300ab40865121ebb175d9004e878b2195b5c376"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d1598565ee6722d17ccedf404f1faabaa50dc0281e9e47c4"),
			decodeHexString(c, "fae721bd6e80ae962790eae0f343192d7b7fcacd8117c6f9"),
		},
		expected: decodeHexString(c, "e6159057bdae6948915d7e6f0607d8eeffa9daa5afbcc00941268861b42ed7783ca6905d46bca2222da47da80e90d7292f225a0d1e2fbb81fe77505a641a2e4ee473874e1bb118ce73439dacbd9449f65f01c8897ed2274fc10a71552f12782a2a1267a09e3a5ae730deb59a582259ca"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "2692e47a6e772202e2a65cd6f3f3749365f318172082a3b9"),
		nonce:                 decodeHexString(c, "50ae7730d89068c45d79e80a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b36303200f24c77759aad6be65866e11f1e553b0c0f071ee"),
		additionalInputReseed: decodeHexString(c, "90ddf16a459bcf0306eefb363c8b3e82f7695008ff2ab7e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "45d4e5baf35d41286a4d917deb4d3f3dc3a77f82d1a46325"),
			decodeHexString(c, "0caf63bac44f089137407c74e90c1e47d8f079a084e77fc4"),
		},
		expected: decodeHexString(c, "40175297cf653344d3ad29e9fa86abb96be3d2e9c6e7cd308056ce92f902c187cd632d7c759426123316ff4fcd7e1c733873ff642efaf8c7b8514f129abc8d71837a3bbb2b573e638917993efa7daf0e3ba153b7f0155759869beef611ce81732a1f7a81916ea99f09e8dd99822f124d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "b2b03d52be69876c6bf6b16cb12a8e536b53f6cc82f3a54c"),
		nonce:                 decodeHexString(c, "f9abe6be30e18988792f5b6d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "56654f8caadf872cda8ef55072cbf91bf50005dbf115e1f4"),
		additionalInputReseed: decodeHexString(c, "18ee53bb6366197bd2707c456d89fba7c08f348d9e259fba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3ab4b6daf1a3b52f2ee6a1d1731b0a7d24dea9a5377babbc"),
			decodeHexString(c, "033463f9cd0354ce3163b9d03a9c91c9f6d5a5eb3a2fd7a3"),
		},
		expected: decodeHexString(c, "68173341a4c218bd2773d887fdefab9c7ada6f6ace89f4be8cd7b0eabf7946909f146dc68155f30ce29d279cdfc344a3ab46d53ae7d254d1c1c32ab0f039d8d6e200df7de6665fc386cf46b310fd708ae09802502009d853376818e1f1a6d69e6635d46b3d061864226524e0cc7b95df"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "04f582559d10d842b92d719fc4691646e192631ae79ddb5a"),
		nonce:                 decodeHexString(c, "6931f5e294b422346ed72a8f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6f0b855b09428394ac34a29c5529bade63426fa2664a2299"),
		additionalInputReseed: decodeHexString(c, "d03ba3cb73a7408dc199757ce674edd72e32a10db383b563"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7803efb4feb2369e3be4221d6be55a6fbd2dd4fc83988239"),
			decodeHexString(c, "5f804877f232f76698fbe1b43690ba951aa0be0628c24721"),
		},
		expected: decodeHexString(c, "fd69f99593d37a917a4fc57fdd19bda59b45274722e28b666668039fe0b56a7ed0b96ba31dd6869bb314a45263a38b1ed661c501ea1a81db09843e0068e62f9f69fc4be554c18f92ceeb0d778e3b21bb6853a10e1dc238b703c713dac84b52b82a32abfa54fabbd225de1883f9eb66b7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "07bbc7faeeee046fd96a1114bde5f1fb5ddf5b7994ba2960"),
		nonce:                 decodeHexString(c, "3c8292952b41475dfdbd7b5b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5aac4650128485cd24706f278a076a030ddd31ff56bef4ee"),
		additionalInputReseed: decodeHexString(c, "5d8fbf25250538592ea1dc96c04d034f26da9940aad5fee9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "67db23cef22e84445ea5c984c9d583779f80bebe15edb069"),
			decodeHexString(c, "db2e026e9c24f236f52d10080ca89fd26a118391e6e5bfae"),
		},
		expected: decodeHexString(c, "4b3c4d5b152fc757bb854e3bc3a1f596859129210694e75adbf37853c5481bae43c49f9ca5c4d0d28f64df00a5b58654073ff58969776581d57d3dd9f7e1d45cd1110a2673da712d7367072f19ee784f551473d6181bff3023ad97317830a18e2247c2376375d0bcb5625818f302a57a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "29e15065e4812b92e9dcad9848b899d23b79384e3a11165c"),
		nonce:                 decodeHexString(c, "daf1a1c1d37afea9806b8dd6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "720f87bb3f5c4637e753d653b569c2538f258e511d5e9c46"),
		additionalInputReseed: decodeHexString(c, "14e83267590f6703bd6d6c01fb4cf470ff6e96391af8c3cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d5213647fcf2649b8580f24ffc27757dbd1c55bc55e2b166"),
			decodeHexString(c, "d9d2b1ca6d1a215dac0be99347eefae0dce6226e36335bcf"),
		},
		expected: decodeHexString(c, "d913fb68362952acb8a18d0148a294d59b25e3a0bdd808b232e6ae4c84575cf8b6b37a172f17c3c7cc1fbd8cb691e3008c9e4361136d417aebb54f3576e5de64612a3271a253de5700c38092ece941f45c6d964dcf52957e8f7dd2581462c3861099fd92cf345c4d1c2670c6acc28adb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "295a13442cf72d12f38b0b5e933eff8ce8725c9079660703"),
		nonce:                 decodeHexString(c, "c371a01e998433d9e1aa25f7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "26a02fc884a21b89c4a6c9755bc5daf22ccace2639c430cf"),
		additionalInputReseed: decodeHexString(c, "a7d97a0af5009cce65b141a09cb60e18414253aeefe80a48"),
		additionalInput: [2][]byte{
			decodeHexString(c, "538a2851a873ea01bef800cbd1d855eaa1d027780b846204"),
			decodeHexString(c, "3ccadf62072785ed9ea2da33bf641e326ddfbb004cf988eb"),
		},
		expected: decodeHexString(c, "1b49b8718e90e497c8f4ef0373bbe03c8fd4724a2aa4f0b8d80d1cb07ed392079d7b7c8a2124ceff816b8dc881fc64140b1787f3fe0c63eecb3a1c25b716b60e9baea29617b355accd163544336299c9f91349264e637683e4f08f534a9ab5888b88f20ff1b0722394a9128b0e415d56"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed29_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed29_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "7b87b9b9548920cdea262cbd1512b61a6fa8ff9d6e17364e"),
		nonce:                 decodeHexString(c, "e0d763b2633e36de0fc7fc48"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "90e162d216858791c00ff6a96a1a60260cbb621c738f4423"),
		additionalInputReseed: decodeHexString(c, "0b352873b979a90d32623c34912eabad7171c0987695f7ca"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a22babffdcad127a6677873f6f05e313bd48c0aa3957860e"),
			decodeHexString(c, "aaf6789596d3fa3d8ec1ff9ed4587eb0d4331965f65767e5"),
		},
		expected: decodeHexString(c, "1267fad4ed681e61517326682961d2003c3d27d32a0e9e173793b9297583b61456e762bef169d148fcc44d3d5340a155c7f47d08b09b894d91fae42ced3e81cb2b4acc51ed0f38714d693fac31fef1bf7b3b7dbe7e0e54416308441981e11f9aba134cc5cb3bd47f232eac30e4c065b7"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed31_SHA224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_0(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "121d0ee38ae583ee8f1f163e4167f23b681afd1e546c53e0"),
		nonce:                 decodeHexString(c, "63c01e53d318531e458db1c1"),
		personalization:       decodeHexString(c, "7de42bf46730105bf869f2b57816691f3c6609a4bf1387e1"),
		entropyInputReseed:    decodeHexString(c, "9050a8565dfb3c02eee0dc1cee900758a06fb1c76c099087"),
		additionalInputReseed: decodeHexString(c, "1eaa6858d8a67ee6210473caa6cf5a0704438d51746edd4f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36112513fc730486f596d96de2ac95a902ab7ea5c27262e3"),
			decodeHexString(c, "38358d2ff050b9a7d4b5dc157b3bd3d839bdb7799ab4bf74"),
		},
		expected: decodeHexString(c, "0584a8d2988758906e6d32a08a506903a4b3fb0978b37000140115a0b4de9862c02488b26d2973feee79bbffb6fa88d1ba49e4e769af5d1cf669321f0958ac29471f4bced6ebc3a18b83cccf7d992f4ddf41649d4f6dff47775b6b7d9a8dcdfbae1413d368b8d8b1b701caf8a785ec10"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_1(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "a02bc66f54b5eea2176b73775973e175280109df1819c736"),
		nonce:                 decodeHexString(c, "92a01d303d0da3680676a746"),
		personalization:       decodeHexString(c, "0b2cef5ae0cae11d4e138ab29370d0965fcaa2b36edb4a2f"),
		entropyInputReseed:    decodeHexString(c, "6e4c71d6610a73d8b33b9981e093fb92b80c111a47a417e3"),
		additionalInputReseed: decodeHexString(c, "c877077d8295e352bef1066b94fd508e703f40b22aec4305"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ac0ffffeae2ce5e29f5d6ebeb9601f5b9bedd5b8233064c"),
			decodeHexString(c, "9eacb0171fa441a1bbfe3b77829e037477df8f7fd6e30541"),
		},
		expected: decodeHexString(c, "53b83912b7919aa9a29f1f845ffd331c2d614c59185db8c2055108dfe480bcb1fc698213ac2dc1b52310f5958849115068fd2ea23f6a0c3894f2e37689e1da439c7c074e25ed84f2bbf7e337d908e20bdfdff93961a976d3c3bde1fc090999a852dbc979e995f6184a52ece9fe2ffb96"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_2(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "67538d04ee966ee7623606948dad3352fd0b6de7c0d87b9d"),
		nonce:                 decodeHexString(c, "cd358861e90becdb9dcb0930"),
		personalization:       decodeHexString(c, "ce98a12c65bc94458cc545598d5ed7eb424345f0e8cc7c32"),
		entropyInputReseed:    decodeHexString(c, "cc3b2c9ba7d8950cb8a3c073f10bccf9c3c26a58b2ef5ad5"),
		additionalInputReseed: decodeHexString(c, "d8a4597e04fe02c8e5086a70ff20644528c37b0ea88636e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f665f6bdb0db0b6120a010a9a46d6c9e5957c1be702de38"),
			decodeHexString(c, "f3218cad187cbae07ba2880d12a21ed42d0094e07ba7ad4a"),
		},
		expected: decodeHexString(c, "cb7fff2833b82d800cd25a6096adb2487e29c753037eb6e8cfa6ea8ae02fc4c46e0344ae921b0c467f2c5c2131e1ef3aeb6ea997c9fa65ece49cd4561a225eac398a64e33c938804e5b08ef7e029357465d3e70c7759545f2049277944880279bd850d73a9e7a6d1cb6f5923989cdef4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_3(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "4574beadee735b4806c7316bdb59b46098eadace3d3cc8ef"),
		nonce:                 decodeHexString(c, "646ab29641e67ec67fbb1685"),
		personalization:       decodeHexString(c, "4996ffeef7d63a6c935c9e0f9b07d967a0f6f9abc2ffa740"),
		entropyInputReseed:    decodeHexString(c, "48696ac6a39cba92c0699629717bc84803fe153f743ef8a6"),
		additionalInputReseed: decodeHexString(c, "f4bc6786299e270fc90f6f6d797ad840220debd7e251b80d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "69c48832913e90fbfb447c35d67426c3f3a3dc9c5af9e5ab"),
			decodeHexString(c, "fceb7dd9e4a2022cd8fdb8f0c095573d563bbed852f1d5d9"),
		},
		expected: decodeHexString(c, "72fb7da0f7f14e7382771801204615e80a3e8fc4e5fbc44bbb67134d7bcb4c0767cbc582a313bfaf6a9a2279addfab15c6ec0e2941dc819a8323c71736ba3fc26fdb7d23666fd7c668dc4d0a10396a8ebf864ac1c09347fcd7e89c50eac0716994827d84c68e84ad50d13bc76caa5023"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_4(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "17de22f59849398f3e392d2c0dd8acaf88efb5af451dc86e"),
		nonce:                 decodeHexString(c, "d1611c501fae0ef912c9b831"),
		personalization:       decodeHexString(c, "469f40428b5b68573a36d843850388e91ccc659ef7009a84"),
		entropyInputReseed:    decodeHexString(c, "f91408ceda70a9d471a2244075744f809fc42e2e12ad166d"),
		additionalInputReseed: decodeHexString(c, "50c986739c2da8b58af90e08e8d49d48fc7bab50e913143d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e542a14e70d2775a8d003115362403c9e0d397af16c79656"),
			decodeHexString(c, "c82d318a44b775d0763838e25a355ed4c46848f612d053ec"),
		},
		expected: decodeHexString(c, "c115a5abc99fb002a1857a5eed62e03474036009062490cb6a92713736a5cdb8fbe24c7eb4ef9bdf34c5f69d06c3268cbc5e2185f7fc3b2b03e8264f7acc83779ec19c4dadac7463ea54a2e19c484d94177facbe12faf69dd930db9675260a35bbca827335f7f5f72219078054c3f009"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_5(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "9014689d5b1cad2259ecc0db8d5a1dc0e678243636209277"),
		nonce:                 decodeHexString(c, "f8d200ea5b95651c2e6241ba"),
		personalization:       decodeHexString(c, "e000b58f874c3da95af84ae9bab055472db3c1cc30509739"),
		entropyInputReseed:    decodeHexString(c, "b24166caa16f7542ec749b3986c12ef99d1c7bcfd8f337e1"),
		additionalInputReseed: decodeHexString(c, "6d900858f51036eecf6f8dc5de78a47d42483bde26f432d3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8775b527913a61eefd208dfe807520ae33642e329d3d4f07"),
			decodeHexString(c, "6e8b91ba0d77bc926f6f8e0c0c7a971b474bef4eb816d79c"),
		},
		expected: decodeHexString(c, "faa429425c83841bae401af7bd96be6c15a0579772091e596599e8b0ec26bc4a71ec959f998467213d7274f954e5efd3e7541713c00a32739372bc0b87438cc935f53c1c1bb3f88cd5289695ef361051d0ed706ca3e89c9d92ed11eaff3094a4819ffe2143febba364fa0ff2d748ce01"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_6(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "8de0a7ccd2ed7735ec43c456f5f119d079fe2458ce849abb"),
		nonce:                 decodeHexString(c, "51d98222affd6af7f42efc4f"),
		personalization:       decodeHexString(c, "4e57433237603b552afdbe56559538419c46f6651e33f88a"),
		entropyInputReseed:    decodeHexString(c, "660ccab472c463dfcd356074510ec8c4bc25415e4d439a76"),
		additionalInputReseed: decodeHexString(c, "ea1e377c8b07bfee17c771cbd65b27d6fc602f6050767456"),
		additionalInput: [2][]byte{
			decodeHexString(c, "65cb2dd6ffce38d7e80a9dc43276d431b9b87a37308c5852"),
			decodeHexString(c, "5d8e4a615f4322beb39149e8957f5c3590b06726da540520"),
		},
		expected: decodeHexString(c, "58686759fafd2d742434a3545293a8997a2bf1ba2687a47f6fdd6ae486ee78305c4aeed4e818d6bac553f5058a42222a3f1691ee93a379a91f85031a16ee17570bff1e304261106e4fd59a189d23ba2e9e9b2ca99f4872f1f690923f96e629b550fc21094c60aae4ad3b45c69356bf3a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_7(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "e6be30efe8584955f821230ee713e74b20d62a91679f7a37"),
		nonce:                 decodeHexString(c, "cc12044059f76b8b9cec2985"),
		personalization:       decodeHexString(c, "1cc2853a732ffcc0d66673f889e758d99b4b4242dbae8bbc"),
		entropyInputReseed:    decodeHexString(c, "0559ebcc96c222ae1ae24230ed8bcbd5552d6b36a2a6deb9"),
		additionalInputReseed: decodeHexString(c, "24f63ba28ab8448d3a1420188da5ff5eae932997b0346c10"),
		additionalInput: [2][]byte{
			decodeHexString(c, "81741a809b58f20c23386076c02a31cc804c2a84174e4f7f"),
			decodeHexString(c, "a6e926ff53f17a3e1fbf530d342723351530efffafe791f3"),
		},
		expected: decodeHexString(c, "5827e361babb194ca8f56f19b2af25ccc969d0cb0926307d54846713fde4be3b07533aa5ff455c4af0d940968b88da35798438969d8c72a3f7cd59dcec467ba9601a5776e7ed963870dcc45a91651b40d7f278bc1363266f4d1ca69a5c918198b3d23d9dae4f899d91e49cf63e515c19"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_8(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "0e3fd6f91a42ce051b6e1cf13728d255f6e33ed498acae3f"),
		nonce:                 decodeHexString(c, "cbaaf31720ac30038199dc87"),
		personalization:       decodeHexString(c, "6a9c208ff2436dd5cfa8e6278a916ef0aff1e304494d349a"),
		entropyInputReseed:    decodeHexString(c, "f7cab63b6b2de0bb7eed32eab8d61d31df08ca3886b428b7"),
		additionalInputReseed: decodeHexString(c, "4e390a652e3fa5b18f1132403c8366361b8713c782000487"),
		additionalInput: [2][]byte{
			decodeHexString(c, "361ea186f55542782c0852c5a3ff33abfc9476963de2c5c0"),
			decodeHexString(c, "7fb74e820630c5d08f887f9b62e51f59119f5191eb2f3f38"),
		},
		expected: decodeHexString(c, "1d3315862f189e987bbf4693855e41b1b73f5e314ae7ca08df43d234bffadb46ea14e2fe5af7143aaacd9a4f7845d9721da8a69600e36a17660e9bb3ae7b7b5c3bd4c2cfd633cd74f0c2d20c29bb811669121110f645e9d921f04ae4af37d133763b6319cdb44b8b7ed7cf69aa2b469c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_9(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "3eb99920d157083c2c3fc0378e7844bd138b08c84932dab1"),
		nonce:                 decodeHexString(c, "2b80b008ae815342eacdda74"),
		personalization:       decodeHexString(c, "2b4577aaaa68383010646e7c1e78e359ad04faf5057e4f6b"),
		entropyInputReseed:    decodeHexString(c, "e598a304ea309bdfff83bb713799715ab5849535c550d7ef"),
		additionalInputReseed: decodeHexString(c, "17c0543a2f0b1390ffc4a632586fc1e9ad47b1a755a13931"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6cfbe170be72e9b3700784a9990a45d18223596da3dd91f4"),
			decodeHexString(c, "38c0d8c83c03080b63abdf5bb59a88a1478047af96203636"),
		},
		expected: decodeHexString(c, "e13ecc156c8cfeb7d8cc50c526e22a79ec4733ee7a28916520314dff3f46fb7bcd4bd57a2de8c12cb652821ad36e992c7523dabcbe34c2909e39ff2a783e9eddcb33588a88678bc4312aacb920d5e1469c6875ff4419bcc036c72a4ec789dca8d0d77ab3cb2a4834d4aa25c475f1fa3c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_10(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "6314a2f66c89f1a5cb0ac5e14c689f31b489cbe0ece39c12"),
		nonce:                 decodeHexString(c, "4f2d5b65cdf76e24feb67517"),
		personalization:       decodeHexString(c, "b0969fdc980d89920b652f1aa439b395f54c851d2af75d85"),
		entropyInputReseed:    decodeHexString(c, "385b2cd072fe3d92980cf01a94fbed80153229070ca58b65"),
		additionalInputReseed: decodeHexString(c, "8b1996b989259916702f51edfbcb9006f1ede5eeab7277d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac6964aabf247ad0d974cac54f9441e399a002533458d6c5"),
			decodeHexString(c, "6f8e142c058883790e66bf83ed9883c83ad90d0e3dd99e11"),
		},
		expected: decodeHexString(c, "f7238924cc37cdd2e66a1c6f8874ee2803fe9cdbf408bb2ab7258089f210c9515242dc9b996499a81ff54a26d5848ef2efa7f80238ae8aafd48763c458a1aac2ba4bf5722c81e91fc91cb7584b24f3b728a8fa866b901d866e84cf79aa38376e41e06eb4d24bc8806e92e54aedf2cefc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_11(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "61fa8cff252f24ceb4f6e4ec9368f264a9723c1a7cb2bb52"),
		nonce:                 decodeHexString(c, "1c41cf2ba03832f1ba5ea088"),
		personalization:       decodeHexString(c, "c70afbc5bba95e3c669fbb06745317f834d7c7c9bfb7f106"),
		entropyInputReseed:    decodeHexString(c, "f6b19390a7d56ede06d6fa998d34aee3ae8ee17cb7538148"),
		additionalInputReseed: decodeHexString(c, "f3191e286d01e2154f05e80ea236b40eb410fddd45a69175"),
		additionalInput: [2][]byte{
			decodeHexString(c, "753d4355b4f83ff1b515b49a7996cebab227f1ca40a6511c"),
			decodeHexString(c, "f390dd7de6c742c03cf15ee8f4b817adf246a686b26a0c3a"),
		},
		expected: decodeHexString(c, "978ecc0fc139490e62f4351d8a26c6e9787b70493a437371d4ca987a304652087c7ab1dc5552dcbab5712b2d12e4b0d8898b9141c030159f3bc959cdca7d33ceb0cec53e44206746c75affae068a3505149b3bcc26c0f9fbfb3e20c89a4df7f456e937b7bef7e2fd93c2d454db509bda"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_12(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "5f14e666bec819c5f4497806350c3d694cef81735cedfbe4"),
		nonce:                 decodeHexString(c, "7429831269b71836a2a83f74"),
		personalization:       decodeHexString(c, "4e819059ed7f010be1afa360da363fb2fb6cf50d5e1e20c3"),
		entropyInputReseed:    decodeHexString(c, "ceeb441beec51adf077b33f8bf25ca158974801fe55267cc"),
		additionalInputReseed: decodeHexString(c, "5727dec6ea189334344f401634cffbf7e3c2f0b2c2da92a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbc3bd596ed41cd224385609d67984a483cec9e263fd572d"),
			decodeHexString(c, "dfc4fb34df535d59758c6ccfe59f2ba8bea1986bf142805d"),
		},
		expected: decodeHexString(c, "d41e278ac6b595990a29a1da97afbf45b70b911cba2824b60f006ed88d8ef959dc8a2f106096b22967cfea56b8afded4de84f306fa484cd2a61b0592c6803c58331f05172e6eb1f9e4c0b3a13b1fd93639e73c68b93c4f1fce41cdfa92a75cf8e1042988893f81db3beb9c758d3a5a09"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_13(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "050a3a18c1c0c1cf3370b42b4e03edb51ba33899b538c801"),
		nonce:                 decodeHexString(c, "65b317a6da4f9f3b1497cd35"),
		personalization:       decodeHexString(c, "f9b9726ca60adac237bfe8cc04d6eea57329ac038fceb070"),
		entropyInputReseed:    decodeHexString(c, "6c21f359a4fd79c340d425ae6b8052638717e04034292d36"),
		additionalInputReseed: decodeHexString(c, "d1d9e601e9b2b41bbdab2646a2fd854564872d0e4579e031"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d37fb12e23c2ccfc67f1bd67a83a921d57f5cc6dd4ed794"),
			decodeHexString(c, "9a27533804caa171a16c343066b1be99143eb32cc6e735a0"),
		},
		expected: decodeHexString(c, "e2dba73ed79046a2baeb1bd857cc33daf911e249d1e615572a3e2a39b2e0614dd6dc018630a19af1903532d002450fa92eecc23256aebff094a4a9c33ff8f0c8e9f523caa5c780696dd34a18389b2880499f4dad6afa9f19c4fbdc5b0eb0bcd8e11dd79344dcf84400c293708a946ea4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed31_SHA224_14(c *C) {
	s.testHashGenerateAfterReseed31_SHA224(c, &testData{
		entropyInput:          decodeHexString(c, "f7c60ea4659b29b1e5bfd4fa6ced79dd9caa2e42e2a21b9b"),
		nonce:                 decodeHexString(c, "50961d90adfa4ebe3feb3aab"),
		personalization:       decodeHexString(c, "1d5ac843fb4de2ec4d19c050a612859131b542d7c76bfb8d"),
		entropyInputReseed:    decodeHexString(c, "59cb8e4f26b36accd7201001ab544e7a0c61ce11c1b7071b"),
		additionalInputReseed: decodeHexString(c, "f00b0e3cf7179722d205469d3ea9b6da4a5337e72810a276"),
		additionalInput: [2][]byte{
			decodeHexString(c, "98fd69c4c295dcd0a298bec01ed2099435b5e0f82261d230"),
			decodeHexString(c, "d245531301df554bc195bc2ac359a65aec1feb3bbbca4f2e"),
		},
		expected: decodeHexString(c, "3ea21c6ec31534c38375040f83770c771d8291ee89df2b93d499f9b09f6d3500ef53b5ec0e77e59ab9d1be580e8a8519ef2cb639bf3ee68772263dce8aa83d0ff11970b55d7baa828cc7273595fa768b3320fe04bc10f9eedbfb64051f871d82221edcbe9778f1eec2c435c47ce5f3e4"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed33_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "9cfb7ad03be487a3b42be06e9ae44f283c2b1458cec801da2ae6532fcb56cc4c"),
		nonce:                 decodeHexString(c, "a20765538e8db31295747ec922c13a69"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "96bc8014f90ebdf690db0e171b59cc46c75e2e9b8e1dc699c65c03ceb2f4d7dc"),
		additionalInputReseed: decodeHexString(c, "6fea0894052dab3c44d503950c7c72bd7b87de87cb81d3bb51c32a62f742286d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d3467c78563b74c13db7af36c2a964820f2a9b1b167474906508fdac9b2049a6"),
			decodeHexString(c, "5840a11cc9ebf77b963854726a826370ffdb2fc2b3d8479e1df5dcfa3dddd10b"),
		},
		expected: decodeHexString(c, "71c1154a2a7a3552413970bf698aa02f14f8ea95e861f801f463be27868b1b14b1b4babd9eba5915a6414ab1104c8979b1918f3094925aeab0d07d2037e613b63cbd4f79d9f95c84b47ed9b77230a57515c211f48f4af6f5edb2c308b33905db308cf88f552c8912c49b34e66c026e67b302ca65b187928a1aba9a49edbfe190"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c3b200420bf9d8efd959efa4ecc66e077337c5aa9ab834398bc33d3152e39087"),
		nonce:                 decodeHexString(c, "a226083a9fe938c9423f39f0de2ee625"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ecbd34e657db5a0382e41971fc31bd6e83449b1b6a1a8296d1dddfc54a665d8a"),
		additionalInputReseed: decodeHexString(c, "5865c8f601a309ee4f7d417eab8587763539f38541cb1b9abf8a3a6245ceb770"),
		additionalInput: [2][]byte{
			decodeHexString(c, "932c454deb4a314d7bbafea7041c7e9ec5dab577ac2c4be5ae89cba80605b0f3"),
			decodeHexString(c, "469b3f8e721fd5af10863b568512724fcee9a8f0de6511511df313f4bdf8d40d"),
		},
		expected: decodeHexString(c, "a9d6d1da3fa837a61b0bd80ee63fca3f74ff073f31d2fe2cf7ee7478687594e40fd307d879dc04c7a7a9a9bd490a5e21d01d273724aa285cbb04c303a54f82906ab28b6bd3f85249db67ca2a1b92d4c2f2abe766c9a44dc87b479b58ca1437a30a95399bd5b41cd7c3b4302d42534cf5ce571479532720610621624cc27741ac"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e22a79673a2d9f835bd1ebfe471b16ab9434aafa84578a13ff1585de4698f87f"),
		nonce:                 decodeHexString(c, "403bac08b2975c26b0643fc05365bd3e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "83f7cfb3e0f96eb2525d42bd74900161801454277ae33ca11c25d92834bdc79f"),
		additionalInputReseed: decodeHexString(c, "693d4622cf57e1ae419eb7082c8777f028ff4d7434832ddc68a0c641e76f2902"),
		additionalInput: [2][]byte{
			decodeHexString(c, "748a07cdb675837d900ce23ac212666bee162ce9c9c840f8d4ca69b598f28041"),
			decodeHexString(c, "fb52238f8b719357ccbfe89e8a3a20cd685d69a2a0d662c1abaf6e137e9f7e68"),
		},
		expected: decodeHexString(c, "919e50807ca8dae027fd5c64117fa1f94aed42b90ea965f79b75162f0adf70bf23cfae4504c7b150c5c2474e2b9604fa8b0f7afe24f55777715980977f35b4b4e21c24a18ff3b161a5942595a9be4ea3e5f1665acfda8301256da1c97c19e65d461701f80bf6c0ae4e265a318c99b6c691e8c30b9c4bd54d25d111fae65b6583"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "9c4afceff0bad37392cf3a06938531ff38a40ac1dfa646caf6755cbce8bd9e9d"),
		nonce:                 decodeHexString(c, "2410fd6ba3373a29000d771051f66647"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fc6748bbc74ff70da29f3e849816413a159baa544a8450f27e9ed8259e3bf298"),
		additionalInputReseed: decodeHexString(c, "be1bd3a6d18a90489850dd91e7aad0b01272f44c0fea6927b61bf0e446b2b2bd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4dabddcb7cec415fcf07b92314368e8e15b94821c506169c098e9af91ec8d803"),
			decodeHexString(c, "67a2e425f49d1a7d4e5044829254c7a834e3265cfeb360f1d83a6d28357450c4"),
		},
		expected: decodeHexString(c, "33ea7954d8ce6140e93f9b0422a02b483627570309702616fbfe6433271293c43f99c0836673a15202e07c9e33c6f51c5ba165525ecc4c99d9bc82e6108ae4037dd7269e5f16b2f1249e1ac0c08f996e54bd9ad616ab919f5a17927f9dab0bc7c11a8cf021b7782c04f3ead19d572bfb8745729491463d3b8900c0d3b09b2881"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bf353c93f0c2dca35fc0c3d714a2e6aa8f606eb40c011e22a8263a6c3e879f79"),
		nonce:                 decodeHexString(c, "1a347369091b68c2568db7b636124402"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f30b2702808ab22e9215422089222aa8f1811c7d36ccac6b99ba23d6a36407a7"),
		additionalInputReseed: decodeHexString(c, "a85920c45189976cfeb2f586b2737d623b45d12dddaafba8a824c15c3b7dbcf5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f8397860c8ad783e8abe301dc10f45f4755a7c481173528a253b07a577c4bd9"),
			decodeHexString(c, "dc8cf6aeaf933d848538f3a326777534242589ff2e40168113196892291f44f3"),
		},
		expected: decodeHexString(c, "37c269942c13808877ffb8f37b793bba9f2b5604733e18adb127f2df042335c50766a0b5defcc5a70758af20e022c692bcd431366992c988dd3115babc0b3ca0c6c691e19e1db02bf390087553c17c980b0a33f39c7ca91364c327b4c72c8b40733c45a00858eb17f62853cc2d59ca89912c0928abf840ca425a6ec12dbed33c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bedfd50ecf70cc8d1586c507903e9d62547fc54f1a0aa13d5ff890695f39f751"),
		nonce:                 decodeHexString(c, "7eb96c7fd20adab487aabfe5b5c91c26"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a703af1c615c27d9b26ec6e5121b9600663ab090063b9298556d4d78f5e7c43e"),
		additionalInputReseed: decodeHexString(c, "af59b6bcc960efc148053e7eac5ed7bc3505b86be08c3ea3549fc3e62431d553"),
		additionalInput: [2][]byte{
			decodeHexString(c, "29e7ed10112016b64ee6185a19211c35e2932cc059bc324e893d196c3c6b41b0"),
			decodeHexString(c, "28bfd3fc4c72ffcf83495a9b7f883f9df728f19b511462e1f65e7f80a5208761"),
		},
		expected: decodeHexString(c, "2687e28c55c16269aad3705eee8bad4c9df12740963cbe55fa74a18bded5bc3aacc47c447f7b8d8ba47223d8f5791a6056d8fab050ea4294423d7f59675c3fa38785aa68119dd76b8bc5dd79fb2da48297d4fad5f127c5fdec2a3d7bb8d174609be693e362e22bbd025fb7662596bc691a9059420c57028262c51371d6d2c838"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c8a2af91b97cbce5efbe4b71dd328292ece5d34338cb8ff704b3b526b102c2bd"),
		nonce:                 decodeHexString(c, "ca373a0b622f61124296193e53d734f8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4ee01d02e8a67214bab2f5537671f1bd79d0d233645cec94caeffe3fe862011d"),
		additionalInputReseed: decodeHexString(c, "bfe59fc71b1dfa05dc67e8b787372a2f4fc7af6bc2b8124d7e2a4205fa7af6ac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a2c8fd3a8069b4500f3a3413d3c6404c16d5e496da52704253c8c5948d43219"),
			decodeHexString(c, "899056bc9be635ee3e434f216126291de00d311bf73eb1b5dfc0c5d4e1497a52"),
		},
		expected: decodeHexString(c, "d1a3d93610752080a05513965db3a10de1ee37adae3849c17b0f3245c4452873a3b298d21294d01f243ec5cffb757f610aa47a7c2d88dc5537fdc9b85bc026f35e7f5e92e3cd5211db37bb98c34ea00483845a98fc3735bf16db38ee3e7840a3102b488aae89656220f0eba5d6dbe381cbb04b179455395f62b940d1b3f280df"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bc1b1fb2e4ed6a1ecd14a91a6425fbc92655d1069ae1004634c0ecf66183bf78"),
		nonce:                 decodeHexString(c, "760a861a0229f736f1caf10d8721a45b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4ec1c2c52a35b31551d1201b368ba770c629064318737694eec68f9078fed611"),
		additionalInputReseed: decodeHexString(c, "c7f1ee5f6edca86acc3bf0be4a6520a2370b00841078f7eb7d724346345199df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ea24713bdf97b27f69c874254a0d402de214751ead933bb95bcc78b6305ed90"),
			decodeHexString(c, "136258f500d83cc032570738343a7780daf272ea491bcf53021d6a438c595d8e"),
		},
		expected: decodeHexString(c, "908e2eced483ffa02e09f5dbbdab08e4f0654ae5a66381c409b0b426bd428766eaa27d6c7048864ff35f4ce19aaa30abf90ee58206b700468854179bf8b7069e9710bceee5554e0bf16dd8522817837b3d4698d2e01d59afdaea60484c3f8efa75b30eb28b0d54fd838169922837d5ee259c9e44a396aabbbc472cd7486d6a89"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1660367c5bb295a48801088de29fd18fc91172f6a08c65bad9cdb4f5678eecfa"),
		nonce:                 decodeHexString(c, "fb3e304aa28bf35c682ef0e8055f53bf"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "857001b5b19777c2f7df33e35b3f7555fb6c4675e562fec7e5682abaa2b81d85"),
		additionalInputReseed: decodeHexString(c, "e35c502065e466d0e9b9aa365f035517488830e92fbb20ab150f57c9441dfe8f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c6922239ff2847282a10af197a730c08ac06aba2a74a1ccebfc8b9ff56154d9"),
			decodeHexString(c, "f0f841219212cfa5a116b843f9e6fb503476c0b6f9b4899016f21072a24e744e"),
		},
		expected: decodeHexString(c, "ef38843b35df0067286b402acad35894741359c14c19ae3db801d61da09fa2b53a15c39876b583d9e685e8ce1c3fabed305920f06a03410ce5fc4f5c6dfcf66afb119f334f9c6a9e708af498c1fa34f7fcc6e1bc219b8dd7c581d43c15bdaf6fac50569a3943ba0d8b2f8e5942eef42852916f4a41dfa28f26febc72cb9e5b70"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a1b0195f77f688bc3fefea419eb992ed3bdb96db999295a9831c92184f69c2a1"),
		nonce:                 decodeHexString(c, "4fc9d13388266dd4220949c60ea4acf2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "535a356623583f4f74d162afa35433f6be4fc6eb8e952f466b218493a342d98a"),
		additionalInputReseed: decodeHexString(c, "2666008e7a2bfb8ee28523be575392360ca93d09530da9aab5d182b84c65eed7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0abd63bb586a5e3048ffc200e5a3e37f78d74070be772eb8e93a773702b8ee47"),
			decodeHexString(c, "f375c4a286e5ad0cce36c915aa78ca0cd110e5417edc2a19f5b8b204d0072a2a"),
		},
		expected: decodeHexString(c, "f6ef8bfe9e491fd681e637c9e617acb0d5cf98a143c9ae3808bd7a556d8be2699a5a6891d41edd075cdffcad952d99e9475391d7743da2c8879ccaff58282d2b5d6516b06d6a1e6d3597eb4448f2b9bad1e120d265922a7e1ac2329a1d052a1e4a34499cc58344dd52b59dd71576fd8fa30fbb4f3a38a25d9d642a1e291c3dcd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f976fa66070ac087a5bb27c5ddaed1482b5cb2883434a31547f5f05f211ace1d"),
		nonce:                 decodeHexString(c, "bcfd38706ef091cb69b2859540925bd9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "efdad243b81822930a7319b05ce8427eb73376f9b0b84fe6e13ff767447eada2"),
		additionalInputReseed: decodeHexString(c, "a295199f2c800b17dd0bf4cdbcf79ec65e79fcf9eee6e73d844e47f93d4ebb77"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a6452454422745eda9b5c7db4c811ac4067b711dd6eb797ecd16306d335be5c"),
			decodeHexString(c, "d2ced8844a14e35113dba2d3c45cf78fda6a278f079bcda109b815a41ee0c293"),
		},
		expected: decodeHexString(c, "d467f2fb9d74a710d434090a55673490bb86fc055a2decdad67e5bd0d845fe76cc80854358bb0a8794fe8db631153a97eb805f318e49e278b88f3642798cecc2d72657dfb87fb46dac95124a606add2d78082bcf7a6919390fcca9e31c65edd48688971390c4c1d3bbc76812a4d42c2edc34e626f8a5b983c56ffbf4d1e6bfba"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "97fa51dfc485e3c7eea327a261802bd8afb738ea13045938c1f31fe75949dbbe"),
		nonce:                 decodeHexString(c, "747c6ec7ef6d1c815e527bdc6abe005c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e1a391eabf45da95a90c8d817ff518a78bf5630e70d9fbad720788ab0ca67f31"),
		additionalInputReseed: decodeHexString(c, "9d6413c945fae2fc67696fa258fa95bc47e7bf40cf07ee4591662eafa3c3f32f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3f1ab2d73acc14bb4d28d042fcfaf3957a04d2749fc6bf834812ce952529233"),
			decodeHexString(c, "64d4af088acf4b7192bdf9bd46064fefafedd2637845cd8c93e8e9738b87cd15"),
		},
		expected: decodeHexString(c, "6f56ab8fe63389955af7a12ba710c6b53b93a600a0ab4df6fbe374bb00efcec5630ada7c470926f12ffe6af7b2e3fd6d4982a31a7946f87bc9b7d770efaeb0ec36beb98da67e5e8fbad0f72fa45acd2c94e4c84d3f716b6b2af455e6e16b8ad8b33ee05cd315d7d20e0211b7fbab32132726a220f9e5ad9eb5640c4d666a0689"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "394217d3e312ddfbd6d7eb83cb9d1b20f357322e57b48f896773105b84436f37"),
		nonce:                 decodeHexString(c, "421dc160dec4a797441568e039b363af"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7e7ab2ab5ab64d337bbd489a0d00c13e3bba817a5c93f12e629a51e20d674f52"),
		additionalInputReseed: decodeHexString(c, "57956863c7f2aba0b66ef1a539dee6bfe3eb166a7bce14844229f63e7fac8e94"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0b4ea9e65d177a25dd8d3ae809d4a4c443f2ce01345c99cbd008b7b16e28159b"),
			decodeHexString(c, "caafb2c9c672df58a11d44f0136a516497ffece862a958d6357224a0b439f9ab"),
		},
		expected: decodeHexString(c, "35bdd5254768e9df71980a230d9b1c00104bfa09ce2473ade6c905a03e232daadd145b1c3ea8f167fa4cdafa03b87331fb07f0e7cbd0097aedb1e435eeaf3dd37737b6b7a7ecd7147d766fe2980a4577abb72af653c1a0846b2be9d867af2539729fd5aa2f7f3ba987c2a18cdc0b4404f42707012befd32e23daa42716415bb9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1ce0b1d992c3dee97d47de163ff7b42c0e0d3d9ca39b1f27a19e8f3648d935f0"),
		nonce:                 decodeHexString(c, "2be89d7d6c583c6baf7f0bf99bea9550"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4d8d804a3d8be2a92942a3c52419fbd38c30d1d045c9533aad88b63c4f52fcc7"),
		additionalInputReseed: decodeHexString(c, "a727cf4c71c91f17d09c31eafab4d55c793b51a0f0598fbbd5d63711280957b7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "55ca64df911dfcae212259800f0c1edf4dfba12af53b90362d013fdaf9a6a679"),
			decodeHexString(c, "56b90e825c616c11a704fe9125d8ca59010b534273ef9587f0b24f42c09b586e"),
		},
		expected: decodeHexString(c, "03c174731989a5f025bbd6d3717e86ca108ab178c3454a0e535516fd9f985e19e1bbdd6cbef69633f7c24d08cc53d861af3bbfea358051b3e3807d2aa7560b3f2a9dfac2a5e2b89c266015f2183aa5d433ef392d633103a9a9c40a117bc31c258c4e668a8ed2e62dd9dcd5e38fa0c9a460f8c53ae2e33cf5f3b7b87868ff4ec7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed33_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed33_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "48497a31bdd3d683a05e2dcfcbad10074765ceff04ce47fb52cd1df456641d6d"),
		nonce:                 decodeHexString(c, "b02356b8c6bc8345fd197bda0bf00ad9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "33d699ee8bbd5244f35fe00bcbe947a9d0e7e50abb5a39a70dd1829b0d519dbb"),
		additionalInputReseed: decodeHexString(c, "7c1b207fc12fa6a7502622a08aa3dc34a42b3687f235ec5e012c0d0a6d19b742"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8417638e07e9c163753ada4ed92561ff0f1f4794d636f1b07f3049ed5b8b68b"),
			decodeHexString(c, "2c896bb2dff5af370ebd7909097b64fb3180b5d9507d7c376ab9258548d0d967"),
		},
		expected: decodeHexString(c, "278a9f74dab56e372e419016ad2c95a5be943874f28db6cea90ce303a9e1eaf3e85b9194ce42fec056176920497dbaf4bb6bddde4ae7367c98b94ea2266bcdd376ee5ef12293f50f05059a5ee8ece30b0cd3cd64617c38f397a6bddd225703930fde8c0fe6ff468c02750a625bbc197dbead266b5e19f96a9648e0d974a2ff56"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed35_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "6c623aea73bc8a59e28c6cd9c7c7ec8ca2e75190bd5dcae5978cf0c199c23f4f"),
		nonce:                 decodeHexString(c, "e55db067a0ed537e66886b7cda02f772"),
		personalization:       decodeHexString(c, "1e59d798810083d1ff848e90b25c9927e3dfb55a0888b0339566a9f9ca7542dc"),
		entropyInputReseed:    decodeHexString(c, "9ab40164744c7d00c78b4196f6f917ec33d70030a0812cd4606c5a25387568a9"),
		additionalInputReseed: decodeHexString(c, "4e8bead7cbba7a7bc9ae1e1617222c4139661347599950e7225d1e2faa5d57f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dcb22a5d9f149858636f3ede2253e419816fb7b1103194451ed6a573a8fe6271"),
			decodeHexString(c, "8f9d5c78cdabc32e71ac3b3c49239caddf96053250f4fd92056efbd0be487d36"),
		},
		expected: decodeHexString(c, "6e98a3b1f686f6ffa79355c9d8a5ab7f93312159d52659a2298315f10007c71adabc0b5ccb4164c0949fbdb221b43acdb62bed3099596f2d7bd5d0048173dd2360a543b234ab61a441ddb9299af84ca45c6e618fd521366dbf509d4ec06174da924361d642b107e5564ac1b32340dd2f3158bf4c00bcb4dcf12c6d67af4b74ee"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "43fe3fb0ade534abdf3a190c29dc96e9255f13728b8a2cdb05a81b9ddbef5e29"),
		nonce:                 decodeHexString(c, "c50e25ec1a32e530d8459bd2508ed95b"),
		personalization:       decodeHexString(c, "cd5f96bca1014b30261432a68847b7634923acfc59397f462764d234be99c14c"),
		entropyInputReseed:    decodeHexString(c, "bd5023773b0de90d19ba56fdd61dfffacf81043b5549efb43cbc57bac06fc1be"),
		additionalInputReseed: decodeHexString(c, "3d4f633af072b427372406c8ae13d9660a9032f5d8dcbadd4b44d0ee4e0b7652"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2470807c3a87f8ca585139aed8fe5e45027bce9d3508050b84a09da35892489"),
			decodeHexString(c, "2b2e59bae861938e6e8891d80b1712d323a99bc390eb574266b78898d274bfc2"),
		},
		expected: decodeHexString(c, "5c92e22904f782d336222425f09a6181c2967decff5956dd49d196aad5d4fb7547368f51643796fcc192a42ab5ac18903d1de36a177fb060bd76ccba24379710ef3d7c86080c0f9d6db41d01f5f422ace87f6befc1efa4cde25b73bf692cf0e56a9bd526702976af0c6fb63f226e9df70fb9d6d63ae6ada1f806e6eef6117acb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "65a1ef55920119450aedea7bdc3439ff8368928c8de810acd459564900330e8a"),
		nonce:                 decodeHexString(c, "85ec6cdc01d378cd4c093de7036662a6"),
		personalization:       decodeHexString(c, "222e716408e7d37f6f46feb910e1d446c7c45a49dc13c93e306ab99af8fc2001"),
		entropyInputReseed:    decodeHexString(c, "377365b37ec38f180e0141510636a8356ca929216ce87638bb8ca1c7dfefccec"),
		additionalInputReseed: decodeHexString(c, "ec0504be96ab5cbef4f319c15d4965d5d484adcbc1c822509b56224df75f1b4a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66003090d98a1eb08959e686e030b6202e007bbb66dda622d43bd8093036370a"),
			decodeHexString(c, "5441efc988597a9b0e82aa7e7fa1f6bc85d8c757f467f2e9f00d2abd4cb87cf5"),
		},
		expected: decodeHexString(c, "80d86ee39dd20754e3099a1298884ded14e65539c52a83ab22da749fe6db237fbceb148d4478d82ce3625d47053ff1574638d445f7e88c44ea65e6c338560159d14d3b6f3b467a8a40c842d0cb571e690c2a69293c1bf917b4697dc5ece08eda4739cf40b629ec5389c742968c29f61c72c2670d50e91748163aa4b271205f2e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "92bed71a1b67c745bacb20f6707cc796a00797d4608abd85a0a0cd51d6b225c6"),
		nonce:                 decodeHexString(c, "96130a1715af35afdf13d8dc3f2e45cc"),
		personalization:       decodeHexString(c, "8ce419eb3f91ca9b45cdde29d612567574b62aa6b00502585205d77877b6ae25"),
		entropyInputReseed:    decodeHexString(c, "5638fe2f2d35c4c0e8cb1b6ba0e3477d9f739f7f8cebdfe2363b64e8107c202e"),
		additionalInputReseed: decodeHexString(c, "c4d1fe601adf4fb1ad0e0b197216b9a0e523f1b71b7dbe82908a7a0054d9e539"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6dcb2009613a215d683e1b72cb7a8e7f890b9443d1d00d5632f31274b629f040"),
			decodeHexString(c, "e8a371c67eabf01974f7b9acbb5f749d2203406fc9441ac21bcfb101509df5fd"),
		},
		expected: decodeHexString(c, "188a534891e2128a14479a6f37583e0ee32287de6d7d38d3a3776f8482477609356ae31decd9da1e51f8e47bc11a2e1c87ceb6439e40489948deb99c2e517ed2b771a8db5cec3fd096bdd3b4c5f27ba78646519d5a87ce84d806e1695a5f542fe801b4b3960fd204ee07ecb6af6c27b3c932738d12bd5815b6595bc6be7db066"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1ab1e3b80c00b14ea977566bc77b3764f29d22b90cccbdaa9d12dce0f3a0fe0d"),
		nonce:                 decodeHexString(c, "8d5c64748be79d38a67393f5a3ea9ec1"),
		personalization:       decodeHexString(c, "4324af7ad7fab31da7ab0d81c4f5c5061c4db2e504d026d22dc183bc191c6c36"),
		entropyInputReseed:    decodeHexString(c, "20ddb80c8a7df10de992f0325d3a6aac262f12b7d07166529c2eca19934b8526"),
		additionalInputReseed: decodeHexString(c, "531a2eb54aee6576958efe2cabb11d26703094318b941681d82ce24fa153e4cc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed87cf9d21b6d4229b838ad8172306ec442c79c73d1c55437f5a7f91215dcf5d"),
			decodeHexString(c, "0ab8fd485fee152e9444f8cfcca02fa32f1a9f843bf8c9f1995062c024be1fbc"),
		},
		expected: decodeHexString(c, "349b992483f6809cf4d9639178224201deae555addad37f59cf945e09baa7e2dd47ae3452c62eb83e6cb31f2df2141274d5fd969b5242cefed31fbdfb1b7ee559648965b56b55497b71fc2a4af80b6fb53ce4bf0da3efa880772c83b089673d83c1a499e4848ec4fece6a3b990ae26430d86e2329ce6ef200878d7bfbafa309d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "83d923f6717b9186953e1d1e861869cbef45b4674ad1295aea0add24031d0282"),
		nonce:                 decodeHexString(c, "3ec3ac2a6cb867a0cd37314fb06edb51"),
		personalization:       decodeHexString(c, "ef5a050a4be7a6800e6c583373ed439667f60d13ad0cb05eedc30152e61999cf"),
		entropyInputReseed:    decodeHexString(c, "961f97bc5a716b5442e74bb66c39324881b25ce2bdd1be2fd8b8c2ff4bf5a959"),
		additionalInputReseed: decodeHexString(c, "37d559ec48e0c9e686ae799f9de0725f205a2801d2bcc8837f38924968eba917"),
		additionalInput: [2][]byte{
			decodeHexString(c, "01c6e83ee8b11096cac754a8ad3bf944dc447c2e9b93292fd192bd8bc7afd362"),
			decodeHexString(c, "909d590361c8db2f29f7993eb9743ff3b0c66950ffef34301eac8a105e89dcf0"),
		},
		expected: decodeHexString(c, "6855e7d670d50d40f1f789f2cee1fdb6879b4401788b54c6ac11e776ad5a07725c3bea17f19b2241322fc2dc23327e5229d3e25cce3c2c52abcdc5f2739596bfe609980c559b239a3c8f0f86770078ff45b3c7cc9264bc1a64e4e668c932ec3a473f8d5ce86a19c0a99009fd4695d392ab5c0c5752621342bbbff00c6e4eb473"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "353ca81e1da9096a6ffd8728601e475483986ab1a0e8263db54d3dd68350c54d"),
		nonce:                 decodeHexString(c, "d6c4a10f217fccb997c30e8c818e353f"),
		personalization:       decodeHexString(c, "96a8c724f6631d9946ab2ede8abcd1dd7f4cb466472d6baf6c2d538129d4bbbe"),
		entropyInputReseed:    decodeHexString(c, "ee8315a876cbfa0eb80a88dc00e3ccf2e130db337996c3486b78a0a2ab391e9b"),
		additionalInputReseed: decodeHexString(c, "03fcd7e774878a3958dab29aad5dc82ec302228b5e6389f70d363b9b1a5c1dd6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a6468d3e2537a8ed4a17c340df4b2d1a026549804aa364fad342f9c47af5d448"),
			decodeHexString(c, "2b004888b9454bc8ef0a985e5a25891b4195ebaeca9debc655db5b9042b29c0e"),
		},
		expected: decodeHexString(c, "051454e174deeec6266e1dfe0b20ae2e18c69a202722cdc7d939c031dea7eb1894905f69440c949d97cb139267a41d7ead35c285e16000ad515e202798a24588f905b646be8aac16196e1af90f4807e4c8b538c40115000d09e7c03134813741a349091a4790b995532b115088f4692c889b644100fcf7996aad7e5be37bc3d4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "59d6c69bf6919c5ee744c491c787ce0eb09514dd4d1c2e3849afe5967a337547"),
		nonce:                 decodeHexString(c, "bc3c23b8b2eddf743ecdf199fd6dffea"),
		personalization:       decodeHexString(c, "952aec1e9b73fd65c9549d07554ee5c46326e3df8f7bff4cf8e026785945a7d7"),
		entropyInputReseed:    decodeHexString(c, "92da843962e1dd6b36ca9693090cb8cf40d65b01715591b8c8a0decca2a221b5"),
		additionalInputReseed: decodeHexString(c, "2535c4c93016a94a0ef42beff98a00275ae5ed1ddcdf114b10b143ff7e58f05f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9063e26b99aa6bc4f14d8db7fe3d84243abb67c1582898d93f5be056692a5fbe"),
			decodeHexString(c, "1d8e8ca8b63dce062fbd9a7dc7da71e5be3ac4628fffe6bf121e71658ac64baa"),
		},
		expected: decodeHexString(c, "7696c50e8d2f62e3ede8ca58fc300b40dd0074ccc9cc8621e733d04ffb6a090decf6075c0b390ab76b378bf68b2c94c77d7e73d5b33000a0f36b794e0ae75292ad8f50b02918b4fc7518916cebe14030b73338326e18932e3d08215bd2ee1a04c16441a65c19ff127dac665dd980f1b8fdb843dda7e323d21a01c823575e9593"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "89bd8a0af96b13210f1abb39faedd43f69d9c38c14e430a9f77bdd90bd26010b"),
		nonce:                 decodeHexString(c, "3763b14f5e8f5fa8a6fe1c2dfce44194"),
		personalization:       decodeHexString(c, "c4415ba2e7026aa9a02b834b63ed71ec080ee3c9ba68c5971d63976a321c2b83"),
		entropyInputReseed:    decodeHexString(c, "6be75653b095828687d8bb1e63aa89301d05f1443fc417b75f455e5ab5a2e461"),
		additionalInputReseed: decodeHexString(c, "1520684249f2a2154f510e715b8376135f9a9ae6b747923f5e287921678ece9a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "927a30af04915dc00a3e9f29a1c5045427999a33300dcaec8475908c058cfc3e"),
			decodeHexString(c, "1b3b214c5b6d60d8b7004bcc7958b7f170bf0f643a2d36305e22a3a3c803bfde"),
		},
		expected: decodeHexString(c, "5d7a8960ad7399b60965c13e7a63c74a5b4547be0d99bdfb14af45719128a80c408aa2be3a7f4ae356bca6b255b71d16c3519d25a923f8f6c1447dbfcdd972a6b42373bc2349075a84c010846ed8342d48b18bcbbb88d27289c5e24d44b8523d046158ac72cb786d09d0de9251820575b5f870fa2ed2bb4b958dc5c844c513bf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1390987ddd62538ec3e430897f67a716fcd4c3d5946c1cdf5d82d5727868e0bf"),
		nonce:                 decodeHexString(c, "5d30f2fc816f322e85bdee70321b8497"),
		personalization:       decodeHexString(c, "224bdb222e402d1f024df1cb8b56fbe2eda9d3645d63618ad52225c7432f76f6"),
		entropyInputReseed:    decodeHexString(c, "62ecb17bf06662045100d6f34b94418d28edf3a18fd919dc23f1cb9623c0a2c7"),
		additionalInputReseed: decodeHexString(c, "994a82fbecfde67e143d7a7ae3650c126b1bac16c69b57855ea9755c4f8bffb2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "783bddadcab6ec40c071372b344ae6a8c0070caa9d67df2292032d809e9cb560"),
			decodeHexString(c, "8ecb047eda8cd09842f2d3f031a79c2746c00b93edffaad7bde41be1feefd551"),
		},
		expected: decodeHexString(c, "4dac95cf35d14ae5d0ccc46fc6f7c0af5dc009a840c5f886fb9b8406f4a1bbbc1f8a652e2b1ce1960449bae0898ef503611e6504482420ec3f5a62292b79d28bb8e0949d2b214cd51d4568e1d2c89ce7500478b7d37a9d1022cb78a6ef2a95ed588e5474f02fa7bbe9e619f0be60a902221aac427908387d605d85498c069ffd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4af34574c878d331f07e1d9b33c0ab64f8e7e2c4af6db9ad8ab6d80c9acc6f16"),
		nonce:                 decodeHexString(c, "67165bb5b1aa3e7814f9d5ac2027d04d"),
		personalization:       decodeHexString(c, "39d67ab9854a3594575c86038eed80af298b9111de343d9e6bf2dc4b62887fcc"),
		entropyInputReseed:    decodeHexString(c, "3e3eade8f9fd6101b38e9fea97157fe3a2e6c9baa9c096e31ea93f05623e38eb"),
		additionalInputReseed: decodeHexString(c, "6638c03d015b120a5274db3e1611bd67a8858baced899b6c4f74aac976ab21d1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "208fc73960ff4a55e37bda3b46f8258830c470acff89e300ef24c9385e763cab"),
			decodeHexString(c, "2d2dc10adeeb06e69440d62f4ad6df7e02fa17119eadc3aea8aa0e2e5f9273bd"),
		},
		expected: decodeHexString(c, "1fb173440edc656d1d3fe84398103a10ee3a04d6fa4a608d7e915303c925f11560a51e614f5c62c4c1c87d2bd1742ab318ed2a565b1bcc7cddfaef5cf8ec173882dc1a311b8e2e772c50c0268f04714f0620f36d0fa1cf1237b6f07df934224454ee0a7fbe1d98d6b670e2416e4c2ea720195ed49c1e1f27e0e99572fe51be33"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fc78215e3e873e9b573ade478b9c4f6dea547e8f9aeaaad21cb5b8fbf50832b3"),
		nonce:                 decodeHexString(c, "931c4a74d7a6b70a8c3ecf2cbb88ef46"),
		personalization:       decodeHexString(c, "91f3dee0d8e6275eca85f4ba75b618bce96144e3c27896e1e985e5041a399b0e"),
		entropyInputReseed:    decodeHexString(c, "a9668ede5eb76074b9687fa08d815c99ab2ad99de6eaa4039b6a63827f5e4619"),
		additionalInputReseed: decodeHexString(c, "c02d58b50c710332c6d05f28f24786b6543aa35e93b36c823d012274d8aaa327"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2df8707d3e3f41a905a89c1c6b9552af2d148f50b3ae7d2d174f1c7fceca134d"),
			decodeHexString(c, "24b4957207876625494ce8930b43c63985d7af6a1ad2b9427a3ab23cfbc27f81"),
		},
		expected: decodeHexString(c, "4fe286abf0c0fb2fdbf64e02d3190b981e46edc5c47fae9cc4cb34700b4d4070b1829450a4f7204d7c874ee4f9ab8dc9f3102b84e855f8bc7ce2c7ae38a396eaf8db1a1a13abc3841884c7df0cdcb70942efc9537c336aba84383f4d2156801aa4fd8b69995b18dbde8ea9838775356e2fe353ecf9fad8874a33d6ef7f567992"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e1b15d0077ad8a2ec943c70d75426ed8e030dafb1865b1ee17dad77cc91fcc06"),
		nonce:                 decodeHexString(c, "06811c893cddfcdbde74ce4548f9593e"),
		personalization:       decodeHexString(c, "0d156b2071392a9e9735e47d2160915264678e81e55fd1938be271a771821c11"),
		entropyInputReseed:    decodeHexString(c, "e24e62f1ea663b61c422aaeda99502696c12c925b63b9b1da2a7ec5428946284"),
		additionalInputReseed: decodeHexString(c, "d308ee87714d6c70afcfc16e956f369ba124bfc09b85c87509227a895f334d7a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "52449c51bec014f10b359e28b2d891a41b097e8d1b5b6152cb0af9f29bfc7817"),
			decodeHexString(c, "9ba0bd3e3f814cc7a249a752d16df4b44026f11a63ec34b06f7c1a56d4ecef32"),
		},
		expected: decodeHexString(c, "2f4709aa9ee1d9dae6513bf362739fd6df0c32ce54cff46afb1a5f7526780e2a6fc6e499c2dfd16cfc8d49308a0e5d0ccbc8f2857441b225109057ba5cc0724f8fab0f58bf0a937688fa65e99f50a873caf74beab77da6f564181d2d4cabcdbdbe682e912e3dff69ada598cd2de4635aab1b1f2296b193db17ce313cceab8a5f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "2241fe35c8801373b1ae5e092ac95a62ba42757b1ffd739ffb643031d180e19b"),
		nonce:                 decodeHexString(c, "555d9b99b2e611a72a8f487b72a4b56e"),
		personalization:       decodeHexString(c, "35794a5b27d612a4939c47dac8a4e9d303bdd28a12a8a7010cb1e59746f99677"),
		entropyInputReseed:    decodeHexString(c, "ff0257e449ca5d04dc27a86cf6a7738f61185ee84f3660a7a92eaede140eb282"),
		additionalInputReseed: decodeHexString(c, "eacf98e4e37a4b76879fc797ddd46afd3026d016c43536eeb337524c779cd3f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3957d3350371c9f898a8d4d004c3e6baf8bb71812a49865ff82acf220f3ab935"),
			decodeHexString(c, "0a22783955947ed2388fe077fc23c93b4ce8a12caf7079f99c93e257a2a4ea03"),
		},
		expected: decodeHexString(c, "3bdbe1afd776c637648879f334497feb5ad057157ebb6cf20febe2a0f91f60b99d8ff8f6879bfae5db03d4dd76a4d6ce3d02d8a6f36227dac80539f890dff10b630fa940d80ea8ccacfeb8cdcdc1838c91a89a57f2ffe065449cc82ce9c79bbc94712b9ab870305d74a0b16204d066abf60da14fffa9665f8ac5e40b255f6d65"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed35_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed35_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8fa32a9db549ec18326348c6adaf0dec93bda83b0a6ba43f146248b7aeab2a09"),
		nonce:                 decodeHexString(c, "2bd4beb69697ea9237652268d8e58442"),
		personalization:       decodeHexString(c, "be95326377de3f4a5e8cd1b28a83331f4a9e0b136433d96ab4f0d175f7e883c7"),
		entropyInputReseed:    decodeHexString(c, "891e4aca8c3656e2535eba10c03fdaa8cfafdccbc408f2fe601b5f7aa2a47328"),
		additionalInputReseed: decodeHexString(c, "a9808b32873fd6b07d513719821121824e99d2b2512c49b7805df3686339e8e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a8a3e87f690b8ee46e229334e3fef7079646ea8e4e26c5372e7e747f7c9993f"),
			decodeHexString(c, "5c02214bc629611a8ea5eab5e54e7ceb1b07aa4967400df3b0a572fae1d34258"),
		},
		expected: decodeHexString(c, "085d544210d76fa6b6348dbbd4475d46428d9ab4e8f1fdd264a68895d625a7f3341b186124896a91b6d668454cd7be943c7c3a8d74097465cabb4abbaefde37bb07c51b5a5d0e52921a09c155d682f4592dbdd9a7e4d74c119e2e3e5c90ac5a86471f7ed49fc6242e6cd74b0ff995319d523380b7500671b1b2dbbcbb3db6fce"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed37_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8e3d3160b8e5cfd5e54290a6bcf00b9a584ae06330ab994c2fee7539faf6e047"),
		nonce:                 decodeHexString(c, "b3063c604537a31165e92e3c7e3078bc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "aeddc28340d623c90c471752fd967ed180b28e42d9732e7b68d4dbe7c46b399b"),
		additionalInputReseed: decodeHexString(c, "41bbfe767597223435cb69358c3fbe3bbb55fe50b74f7456c6bd09aea4d8ec87"),
		additionalInput: [2][]byte{
			decodeHexString(c, "792ce85dcc2f409cce6cb105a80136f1dd4755daf467c807e1fd2e69f0f683bc"),
			decodeHexString(c, "23c83ce2dc5fe94e3462504e55d612897e4928bdf23afd6a21efc967e4dad423"),
		},
		expected: decodeHexString(c, "0dffd2d53e1f70681df4e893a546618c6a42f1a6629306e9eebabf31dc7aa856a6f1a574dfd4cce25cb1f7752de017a757508429801a788ab6b63bab22c00ed8d514708cdca02c2c06ba290179868bfb54aea0d33bde57dc313d671736f33231c7e96cc9e0f642be52430d701fb76b993fbfd121a3babf1be519875084933836"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "b01d3c5e384773ebd6388b98bdad56a59ce26d32dae7904052fcf588b65e64b9"),
		nonce:                 decodeHexString(c, "71451b75940b4426fa9957a640637dd8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "508da103414f6bca3916d782536bdc46c9ae5a706b7f8e46ee3e99ca4cc8c4c9"),
		additionalInputReseed: decodeHexString(c, "a1b9ef553f65f06a3db10ba33b5cc1af7dd2c2523401730fe30e9a10bca027f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "83e48b996d53066304c9f910120ec50037d36b36d9eb503944dc8e6a4cd2447f"),
			decodeHexString(c, "4c8c836c589f89882d8ac170b59c5f58be029f36064cf27458ccfecdcdc75f30"),
		},
		expected: decodeHexString(c, "60a07285a71ed65215c2027671e74128d154ea0f874cd9c9247e68c40ba86455a66eb3aa162dcd323fdefdd73108ca22e232cccf554e0fa4157b933626a34a83ab8b502469809b9e325ef392c5dac797f807d75ea93f21bc049a553af4c100c9386d109d39d2ff8d7b1117e7e8bb4b5bff937b89c908baf18e202e9525086648"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d1124e952f7ac7b1ddd6c038f0d4f6e6ec881f8821999a394fb88e3cf6f0635a"),
		nonce:                 decodeHexString(c, "234835c3ea9c497a098001b914015986"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "afe5d8187a89bdfefa695576665ce6cc40a2d963d744b4e98b4d2ad3a6864384"),
		additionalInputReseed: decodeHexString(c, "76ca1bad0ac8e5f6008803be4952001f2f47f002cda541460546f45c6e40b92a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d87f51aa466fda01dccd399c356184368a2b14e61d7417853e547c535461239d"),
			decodeHexString(c, "ed1f955e7694380929fd718469f896270727e8d7f5f209d4bc1e4a91ca2350a3"),
		},
		expected: decodeHexString(c, "0ee2cb162653b1997e33156b59317b3db3eedff69b71212b0ff60bc3cfc2ca4884756514fc81060768235ec19f68f2fbb15be9cf1e4c359bf3dffe98618f23301a6f2fce59b34279e009d1341e3a9854f515fcccfb8ad095aeae4e4b9a791f94c20163dba679765fabf0361219ba445f63805466529d0c3b7a9b78528ae54edb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f45ad9a70ff2d3f1bccb025062bda1707804f2416b75a72fe5505ff654954858"),
		nonce:                 decodeHexString(c, "6f5037dd990ce0490bced8d9436a2175"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0846276a3249d905ac0de5fe29c715d72fae1c9a827ea5a38ee1ec378da0909b"),
		additionalInputReseed: decodeHexString(c, "699c6d4ebf08a26ba67dfe84439f8472c6c02aaa5b777943cd272d10a4d9909a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "52c20bf432a1bbdc9ceaf01dba0d0a1994bfd0d1f92e45b4b3c68c0f340beab7"),
			decodeHexString(c, "d33074099bf9f93428c751fd35f25c6eea54dd435711e345efaf01ca6d4e08c6"),
		},
		expected: decodeHexString(c, "2c01efbf7c344124c7f321ea36e8f1a07553442980ffc35a99233bc21c6557e0e10d81ad5f3a88064eadca721be539edd8b1742fc89de1783e2d1e874e1aea2c60325689ea3ef074d90e10c13e957c37b5787d108f86b9fadab0fef6bff77638a3b25eba84d1eb1e5e325647f6aef8c5bc13ee97bbae4872b9089b9ebea4d6b4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c74a47a6292a7e9a7c918a9cb2852f7a4343b64f40025eff69816c0e43ea4cc8"),
		nonce:                 decodeHexString(c, "d692f78ec411222436357de659f84153"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "67e2aa0c93579a57aa9b0d67acb8f7ad3ce2ead7842d3f88a1c56abcc95acf04"),
		additionalInputReseed: decodeHexString(c, "eb7c8185787647dd26116ec8481726601181ed7d2b22b3c556511e10370d04cb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c59778493bb420f6e25ab35b7d259899983b9607b377a83e6469ec7487c2bc78"),
			decodeHexString(c, "4501ed5569c19c443403bb4217f9a2f6cab8b67f80be8fd7a681f37d97d6a6ad"),
		},
		expected: decodeHexString(c, "01a40362d045a1f8c8d2858cd49644e598b8bcf4f4dd5f54f94540a6bcd3d3bb6ca98d7840a96aca0c3c563b9626657456ddb24c0e11cae8a601babbf773c26cefb0763bad39e167019cf1e5ecdf3f325e3ccb91425434284669eb4e6134dd628ff5336e5a4a79d38e3717c5f7cb8e437a3505c8985294ce658e62a9eea141ac"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "9892e77d7131cba688688b26c4ec4454f9ae6ecf8eb1ed33673a36ddc712f166"),
		nonce:                 decodeHexString(c, "dd31c195fb1c55c3c1e8a88b33ae40e8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "52b768bc093181c759b44efc5ff1ca48ad746db0495bce20d454f18f9d7d5a60"),
		additionalInputReseed: decodeHexString(c, "8adaec7933e098a48a6dc5d5d5c85400d6d28fb1ffdcf33e879523bf98aa8539"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0cc5ab0f7d9ca34db1a1fec7f3989765a4e86ecf52e24dc29f9e0dcb6c7cdf88"),
			decodeHexString(c, "1ab594f4b8c0e9abfba1336b85f2e8686cf3b606b64f589579de21fbf68332cd"),
		},
		expected: decodeHexString(c, "d7add95ff00423febee95cedf2ec02eb32ca90b7226ffff328fa49d5e80c95b7bec00fc9354f3a641907355d819ff693c4ebcdc2239a8ff02cbea775f6bab293160159d974853d11fbe5a515c28d7e872164484f3664f4ccea77067a42c8dd6436bb4627dfcfdc405f99da7409a6b97535627c7923956340387dde9c11234c50"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c9424e722eb11573d5eef7a0a3488cf27b16df5e84d4eabb566a0e462a4b40df"),
		nonce:                 decodeHexString(c, "c9f2d164a445455baec2d9cd59814d74"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7f821949a3fc7febc5d33d627cd92b7bce2196a8cffa55f381166bd65957c03c"),
		additionalInputReseed: decodeHexString(c, "8980295cb58731fbd7164674765aef9f8cc3943265ccbd5f660c02cb30941a4b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5e736b2f41618954944af31cea8bce0eac67d4418d6994cf4a9062c7781ef2e8"),
			decodeHexString(c, "529d04e80eba363db37f14b2651f72351fe509e76cd0542667e22f9ade090ca9"),
		},
		expected: decodeHexString(c, "6c298c43d8f51ecfee6a0b7d04c2c431769d5387a68fc6f94c574343a5d29526ba20275f530e98ebb6b3390512d8896c8bcbfb5bfa6469ff6548fe40b7a48762762ed1836f889b3501aa64ee88b51acf3a3fc2608b4bac4231cd92ca8c5cea0657f89ab30bd9aa2093ada816af734429d212463735be6396c04a67215d0e93d0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "3b0b4bfff28bd72333e29ebc729a5b28a3b85d46110f3db954f81e2590a6c700"),
		nonce:                 decodeHexString(c, "e1a23b7205b6c119f2afbca1e4c2eb21"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5d908251d66b6d9a718ebd354d5945589cc4e58a7479950fab99677f7f0070ab"),
		additionalInputReseed: decodeHexString(c, "9adc919c582024a4da25c1560f6850e27eec900b3dc860c1001d610dee173ea2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "20ff1f27b911c8db0dac7f4f6863d15f5dddbb51339060921276e69db5b15d72"),
			decodeHexString(c, "e49619860591e1ee54c0f524244f258453fd38f2e5ccaeec460e65c9d78ec49a"),
		},
		expected: decodeHexString(c, "36354df1d21187316cbcec20c62c52d5f198379d2203ecb2244226e3e9e9aaf4380e4e516086c9f0c12631dacd01d1fc3753983b16420e67d4ba15239d596cf83eab7d12db0c4cac6932f99f4fb6cc85e3b8635229c41672a95b6b9b92a876e035a07eaa3e43e4f09a0a803fb137cbb7d6d91ac4dc5c9d4adaa1dd2a30b34ff1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d942dae7ef77e09e467130fd9e3f542a5a7d96b7c323692914bb32895fdbd9e6"),
		nonce:                 decodeHexString(c, "17bd1a0053db4db75ed902fdf06f5486"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e12787ea8b7e9161f00c8b6145820843408116b644fd803c6d7720161dcc2bed"),
		additionalInputReseed: decodeHexString(c, "5bef201c987b55943ec6050a98f43407248d12fdb718f8110de108a81a445129"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2c08a54eeb5ac37f02dddd5d65b1534655f3384f469d44191e573f9eec0c096"),
			decodeHexString(c, "6570633cc8f9e6490f516e37583daa550aa9719d99a98119221b605536e22748"),
		},
		expected: decodeHexString(c, "2b8631968d6a6c8c448fd0a6307fbf7a7b39159a8d6f89b3d0b1d7bec08b397ba1616206ed7e3d6c25ed5100ba25da95d432ac20672bffc398736f6477b9181b318c42ddb353a3657a6b3ea0cd4a3b2a2867e2bcce5352c069738b0eeeba98db3044791ea03a563b221df59f617b2cfdf84b972e629ee2d748cd3d3c128122a0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f5bf3c07b47c64dc616e4ffeaea7310de0c1acb18c4d75a9369446951360c926"),
		nonce:                 decodeHexString(c, "6e9803143f4c83c88c3164108e00cf71"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f8255e5ff8cceea225cede072203cde88def4e2263715d3336d2e2a34ec69097"),
		additionalInputReseed: decodeHexString(c, "9028304fdabf8a21502205da145ecf06743243a9452c9493cd6ee210e22ed810"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4676fbd9d2193d04d90f9ee9af2872a67a46906e3a36849ad82c8d4d76e279a6"),
			decodeHexString(c, "709145ece00126affa6e7979fe63e4c0b86216ab3fede9b8de4f7431d1bd0c41"),
		},
		expected: decodeHexString(c, "486494aad1e33c437cc4c7069aa87d9a3969e0aacff5203d50551fede4b1046778f539cc1e173a510f3112f87554e0cc564464aa2059084a800f6e39dddfd48e24bc3b14b7f42cabccc74e1b2acbce4690368ab3ccf99660f69f99aeaa17c527ce36347c92533102ac24c802e6a9c7bae7183d685adc29874c7e468ac66ed37b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "3695e9741e3a6bc58e7e39541d6223b9e7afe8ac99a020ddfc8f637c32b96816"),
		nonce:                 decodeHexString(c, "94da5fc69e135c80d6840badb685e55e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cd039db768d214069d1e846ce1c754f486ddec1468318905b6c3b13b67fedd43"),
		additionalInputReseed: decodeHexString(c, "36e1089d7cb405adfd460dec8cea332fdb62f840d2eee7f54fa5be3fdd94d92f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "54220b8d419fe05216a5f2b4e665ea4b91ef6d31e3100bb693cdd7613faaad4e"),
			decodeHexString(c, "cd056f86e166ad1b4d65b2d88d032a4762918761851d8d259fd617cff883e64b"),
		},
		expected: decodeHexString(c, "4bf2261f562c0ba72b1cc85bd289ae7071507ff200fbc5a9de8db01a620a4e3e4049807647289579ddaf572b724772491705586678b9704a55c6e075559cdce89c18976035d25df4ad3906c50a97e2789cf977e1d4e9eb99493a2cd2409674e500d2e018ac97b871f80a34e8072aa6ba9e6f087e771c5c9149a3bed15ba08c11"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "45ed521cfbaaaa321180fe7f9374b0fec540ba0e1d4f5c2b3ca0579db4c72ae2"),
		nonce:                 decodeHexString(c, "59e619de4f904546ff8bf164d03ff568"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8c41c270288a1eddfbc608ba30a574a47a3c0bcd34ad661d6ac7c3535a9b3389"),
		additionalInputReseed: decodeHexString(c, "4923d85eb81a8283f07fac186d5781e334e4608e9a72db60c187a9cb820fdfe6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ab6ecd1d55960d7d4555063c7b9c971193ece711556703466895df88115a9eca"),
			decodeHexString(c, "dd785eecd3b7a5be50ba1bfe893af9939533bc6c7df054f6751b6f1a0e5b41e8"),
		},
		expected: decodeHexString(c, "3027d4441a0da4abbabe9347186d522a9cd25719393c90de270ba09464a6ecb2a30840d599b6cd8b982227aacd03759392665e1cc07b2d6cba8b4f6f9228d109bca59de5358436a2e181ede3c67746bbd7d5ee75b88b5fbd309c6d90139812a0f2aeac82f6210494a3fe729905565cee4230e8fbd132995aadd9506dcc9535ab"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1d6953239ae8f6980f19aeca187049fbaf5ea27334b8caa7ce7471bd488cd624"),
		nonce:                 decodeHexString(c, "337691da41d45658234d1992ddc00298"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ded3f3c83c47eb77c9f218ace1e22e4695fd66c1cc69fe9e7f1168f730cb0fa2"),
		additionalInputReseed: decodeHexString(c, "82c1d29b935feaeaeb291097f358d213422d118a137fd25e6297d16527cd708e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "941c1461d93525061b06c753cc8e886cd2126daa06b85f893db47034327674b5"),
			decodeHexString(c, "26afa77144c05ef3c07bffdfb9750d394df1be3ad405e949cc0c775b697e5c64"),
		},
		expected: decodeHexString(c, "67580bc36c551f2c799d54f25b59df9a37b07293b683d832638332829e2aa8930bc51abb28db1733b60476feacdb0b0dd6e80c29b21b74135507eb0e547c8917b9b48d557236b63eae25f56c5bdc215a878e4dda0cbe1206006853ef8559246c4f68b690406f8fa173a45a2cf46b2d2214857b08d00b7a3beee76386f8e26d12"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4e2c4bea0d3d0ab42f53318a2a654c7d142af8a721e7c22d79c0b64cad4b8c13"),
		nonce:                 decodeHexString(c, "e9942208c6caa52f48da86340724631c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b0419fa1436c74887a4da9c42dd85d6b1efe5069adf5dcfed390168999c82434"),
		additionalInputReseed: decodeHexString(c, "756cf5e3707d82e0956d22f4c95b451678415212f3f95ef70fa9ee94581237cc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5f8b379a9ef3735d837a0a805b39d251a4e776444cc07cd5ac144fb1f2528e7b"),
			decodeHexString(c, "46659ecefc84e4cddbfdd159aa2c962687e1bc20782a2bd1a85ec70d65e5ee04"),
		},
		expected: decodeHexString(c, "b8f162db57229d05b56b9fc355e08ed19a9c0a9a61ff70a79da4cc0037c6ce336c546e618075a4c3fa80d06b7c070dcf42cfed6e4c2c1fcc74a4a0b8af40ef12707f2d9efbdbd629355cdf073e8fb5667f806c78a6cc3a584dff185b5b1d77ceb2b684deb00b3d2ddc2725244e03d331480b66f44ecf0dbbe8660a51cf569fbb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed37_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed37_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1c06eb29f572af310821115f3f57b608f0f224182813cf99c11bc64ea7d7313b"),
		nonce:                 decodeHexString(c, "23256f5c568f1527f8399cb112f8a138"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6451f80328d7147497573bc48c1f7d018e8e8ae36600183cd480e5bf7597f056"),
		additionalInputReseed: decodeHexString(c, "d19b33adb45943d6eb02bdac9a92b4bed7f43c87d1217c86e7e38b0ce535fbc7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c89e7fb1a441e0438a16ea8a33739a99b47be6cbcfb179f9e2c9dadad285e3f0"),
			decodeHexString(c, "f73aaac7a3b250f76c09c6b082b0a7e38a82fa467a6a58ad91da6edba8f55afc"),
		},
		expected: decodeHexString(c, "abf041573b722b14efeca6912d5df93e9b5d762cbd64829afa3390d6668e47d761b1a799e3b05b670045ded5cf040a95d6dc797bde21ff6272c7fb2ce6b52b1a9d2ca09dddc8a85dc0bd7be02c186b05d119ef6279cac636e275388c82724e6cb99549268e20f2d294fbb88f07827561cb498d4bca57efb475bdce0030ec6902"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed39_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "63d1892690f6f127374b74506b919a7d4ff8a89eb57513d5928b68d464fcff4b"),
		nonce:                 decodeHexString(c, "15ad942c57d09dcc3a8b852d6071138b"),
		personalization:       decodeHexString(c, "6c491832189a5d63565c3c9c078ac065a073e6faa35cb8e8d4d5e5778cce7452"),
		entropyInputReseed:    decodeHexString(c, "e8c45a0084ceeb4c50c216c95770124f718ca7018bc27807ce08e5198e292b1b"),
		additionalInputReseed: decodeHexString(c, "d5a5e2f5e164d6d9f1b334083f621d7e2dca78ef8bd53c4015dd5d1b428c8d74"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f3e5e9c69db47bee42527dfe55ad26380694fc1ad73428f2298684f8fecd6141"),
			decodeHexString(c, "dab0e3ca49e5d6f5344b8baa840545ec5aa86c9ff165d7cfffaa222483e81f18"),
		},
		expected: decodeHexString(c, "ee0611a32c60439ddbe2fb23ba3ad4de78ef8d7173f40481cde15207b1270281c86765a63e3f908d3b13ec73f14d80ebdc02144e86af0e99e3ed47113cb1794ad8db19efb290b4a724daf96eaf14023ffea31cdb7dae0574573470d69ce67a53b330bffc3208920549f7b1d348c198e28aaf1a83cb86d8a43adcf5c5cbe1c401"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4a67a08d67856c40db7b517e9616e5f835fda708c6d7ca7944857d436f017b88"),
		nonce:                 decodeHexString(c, "523f99483ae2a1b8c575a512aae71bf6"),
		personalization:       decodeHexString(c, "d6183ea223c11a33c8b8570ca685bd1d9a0a95209158340aabcf23db886b49bd"),
		entropyInputReseed:    decodeHexString(c, "e500dab42963b7d1f841e73b8bc0dfdc39949355678e726e15d6e9220b131be7"),
		additionalInputReseed: decodeHexString(c, "953ced23d0defcc1c5b2af94ecd93c7a60b491975cd40df1b386ddd6f5f0805f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "56b836ff95b52bda328033f1a61cce3b17adfde7c867aa841f720c3e46e27e49"),
			decodeHexString(c, "6264ee957398b2f71ffa04041218be9093d67efb530ac030779f179ab2d62c09"),
		},
		expected: decodeHexString(c, "cd959453e19533efe527bb6998303241c0f7be93d565cb5d5af41dd40f4de1c627bba290b349a13a8f8373c8b1c2f7836f3c54820eb97de7fff57a093c668b20249ae2a01dee01fab54021f45a80163c251034e2c9e4b5a17c064e902dd6888ffb8e84ae1cc86c722b160a20c3f617016faf831e4ac422cca8c798bdc985e03d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "7321e3d77840380efcc17712e0ffc55774df7b258251cb10346333ce022aebbb"),
		nonce:                 decodeHexString(c, "3b8b3fce2549048f889330c0c843cfdd"),
		personalization:       decodeHexString(c, "adcaf50503c0fa0f59220f0bbb1e807c0aff5a36d096693a9c70b903c22e85a1"),
		entropyInputReseed:    decodeHexString(c, "44294b9a4034a99b7edd3e76c8970d8fac05cbcf1d989f40d684b85455f3bb01"),
		additionalInputReseed: decodeHexString(c, "e37b8b2b651d96f2e0590fcf1d311b41ee218491b3fd2d3a7f6899c6ab4e32b5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "139a7d2495c3f50023cdc0edf0f910063adf17c76beb8b63497ebc14cb3c2d11"),
			decodeHexString(c, "418b07a91628f5fbaa010f375265c0288e040f1a89aa297796d7eaba0c5f2ad9"),
		},
		expected: decodeHexString(c, "9f0213fbcd2ed0f6ae2612c96d8f23f96fe10e628950054d502ec6844f9ece3df52ac8d6a6bccd8d7f286195df4d02ba9be3874dd45601fbac9d913105086803170925048d6acf04558348b87f0d19e6ddd2166a6cea02cc34e83568e643b59c55e9dfb08369c786e5a0d36078e4d9ede786b98b37c80dfd5cf34a59aff46e8b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "62db24cd7b875d9d2782c3666c6e088801b32cc61f64ed23a6bd1e831b416019"),
		nonce:                 decodeHexString(c, "e5035ce750d03b35556d0f21d310a2b2"),
		personalization:       decodeHexString(c, "5f97b854c64442dbac3a4181f897a8f6e8e34488f9d96f05d7282e7ac0aa04d8"),
		entropyInputReseed:    decodeHexString(c, "5d796e440c3db48cdc2d68f7e279ad196f71fdbcb4ea6a894041f0bb2b9a98f7"),
		additionalInputReseed: decodeHexString(c, "68b1e21ff4813a21a88e68bce4ba8d8cd0a861453fac7d376d1656ce5fb25e40"),
		additionalInput: [2][]byte{
			decodeHexString(c, "884abd9f1abefc5265c151f8a81084fbd359716321e1408c056ef7a6815e3917"),
			decodeHexString(c, "ffa2697d2e879e72c4cd10850449a009e03544f0f491b90179ff493eeeed142a"),
		},
		expected: decodeHexString(c, "9121c3f4d45fe857f5720140758ec43f4bc83de16945d20e20a92b182aeb1214ce3a6a13cf20c041983deb680fa1a2df08299576f1e0709a4f0e980ac992e8aaa20cbb27e46fdc2a52b46b0499b48ab402663b6d749e3b846c54d53d6d6c4e6899c3a0034a3d101f9bfef5667b0939060d3018987e395480002701467e6494fb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1f9e4ed427f4f038838e50d5853aa62c4ddcb2ad5962223a145479bce3335816"),
		nonce:                 decodeHexString(c, "da045697275667cf889efc5792ff4974"),
		personalization:       decodeHexString(c, "7472be3f4ce2bb29d08f5e31eb0f39bd543f24b35648b6ec0a98b691d8a55a2b"),
		entropyInputReseed:    decodeHexString(c, "7215e83e600420cf08971e73a4cc1889d6fa5f9f7fef65851eceb87e6d219fcc"),
		additionalInputReseed: decodeHexString(c, "efb6497181bab18fbb2577cd24b23a3659dbfbce3d16c7258296eeafaa3c31bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3af9562ef394542700cdd810638c853c1c574f823b1da4b243199c8f0c29617"),
			decodeHexString(c, "c3c39d58332fa71fc6b53b0eb6ebfeacf5449ff65cf2823f741a73b50ab9ec8a"),
		},
		expected: decodeHexString(c, "639ef04b9baf12659d7ae6310553eb97bc9a65b279a230867f10275e614d9ac73ad94651c550686a87ee9ffb84553b3262904f24199bd64812c193db3cc268ba55e3f481528c7d1f6efe2876c4c22b7c86d4db01a1f41001255dc6dbb2374f8ee84d192c6dd5bc1af4fad95110833f1fb720fe32a2e78f727642508818d52dde"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "7a43f6c5d6aee5565f62c60dd2faf0833c073395b6c3cca86ab73d57d55c7538"),
		nonce:                 decodeHexString(c, "c97801f0813234d7aa019dfab00af8ec"),
		personalization:       decodeHexString(c, "b5a221c25386074aaa9e71ceff8f39317cfd5c121b8660cd35b730cf32fae3ec"),
		entropyInputReseed:    decodeHexString(c, "d5930a2362e16704bedba8a8d57794e4d9ea2a093550fb05b75a41768645c9cc"),
		additionalInputReseed: decodeHexString(c, "94ad9691f73dff5cf3e626d0d6ecc972b02bb1b51ebe29330ce1662f2067bc25"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7342d7d91e1737d24a0e027e49edcd9b18b0a60e433a190bc702a8b6789a1d7f"),
			decodeHexString(c, "6e311ee704202e8411673101d8045aae2ffd6e9743c1d5647d0d940cbeb0f31f"),
		},
		expected: decodeHexString(c, "44270d9317c9ed296aab1c35a9bae5a9c509b4913294eec111096364f755bea59e4b665b364efdd26361145d5e6c17d3964062e6b810353c3bfbb7583cbcd0c4f6555ed15eadd90339f19e78b733c4e88119b69854dfd953dc0551cf0efd604b19c6531ea3f787e2f6e398f32faa8034451e0982591edfee268bf032063e4509"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "785517a1a51d1eca95862e71945f3d27eb3f316e5cdcac13127e21cf02effc4b"),
		nonce:                 decodeHexString(c, "1059e07eca4a00d62738c3c352fdda95"),
		personalization:       decodeHexString(c, "6f327bcc5a700eb4d01aedf716b6727fe04bff724bbe43aacf05d8c28d9abf8e"),
		entropyInputReseed:    decodeHexString(c, "ddcf3809781cbc525b138cbc925595df5abbc2d658875447a24be356848f94ec"),
		additionalInputReseed: decodeHexString(c, "8f68c6713ba4f97657439458e8e36803501fc865d2e7c2440857fe75dc593bf0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0f954b11f30781e52e3dec4e1113fd17a69b6887555b29ffd327113c91c7ab36"),
			decodeHexString(c, "a55074092efd3e2c5f0b03ca7a03c6c78067a31a505879c3f648093bd9ac593d"),
		},
		expected: decodeHexString(c, "f0c0fc0dcf2cff03b800252515da524c23fd2c3d1200fb9dc8515c06d9188f3dff25aa9943f8a09c754826851a375c540117b552fe487d30716f3465ef35f1e5a6cc85bbfecb1481c49344e512d4d6960ef6d92891a7435148faf846966d06c713fa7ee4fa399ef91acf83780337e26beed3b5d5187b0fc0fa49d4d9031b7adf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "309c1c36177539cf953d95c7d3281f4150c01bf45caf4a47e0af411aeff5c4d0"),
		nonce:                 decodeHexString(c, "f8e2ac4f29949b19eda337097d7b9269"),
		personalization:       decodeHexString(c, "f69a9c5a51039e72a55f50b073bd1ed0bd650ae9af968dc87b22c4d560fcb997"),
		entropyInputReseed:    decodeHexString(c, "9c014b7f3bc223a29e7ee5b1494b93a3aa9a4c03be255b6ae1b8d1d2773ce3aa"),
		additionalInputReseed: decodeHexString(c, "2120b02f63375772358c06122157fc62655f41e9d7317f29c9cf5602da20bc4f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ead67f926da5a2abab8ddf1a1b6fbad52f15be47bc74bb3c41ce1b6621cf75a4"),
			decodeHexString(c, "e2816ac4f3ea4975668509fe712b334ab98d2ec2c7b14077ee18656b4f513db9"),
		},
		expected: decodeHexString(c, "5dec5f796216ba70accaadc248d1c4728d9803f5e2c5ce0466dc2acd16f4dc5f289b0ac619bea866fbfa6539958c815b8a7efe3f422fbdffe7a31dc9bf4ece2972f2e221d8df0dc247fe31f7a3f4a48676b641d19afad1cb76a3b5f6f82fb81e700bae40ce0ff9392bea6e909030b6fdadae2adcae879bfb981026da6b0b1406"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "25c4bc11c769d257ede0517a76f235ea2f5fd3cd3f93ac9e10e28c02ce7aaec4"),
		nonce:                 decodeHexString(c, "86282c6c5c5e173eb7626db398582f49"),
		personalization:       decodeHexString(c, "3fc182c51817c0ec3a6bb96508ea497188f5bb6a1cbc5f021c11dcf7e497414f"),
		entropyInputReseed:    decodeHexString(c, "5a1c91efc9efbad78506793944a4b6559c9701874d5e3d0ed01d42604d7da232"),
		additionalInputReseed: decodeHexString(c, "7b4da2fdbe33a8b42330cf12e16f0e24007904ec3167f7f2a1df7865e1174ccc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "49e59f65aa6224f65258523bbd58803d5e4c159adaf4dd0a2d2593161137fc96"),
			decodeHexString(c, "41c1f9a9ff111b140c311493fd9ee5e3852bbf250b6df4c8fb6d932407c67880"),
		},
		expected: decodeHexString(c, "c298ab851dce30bf80e8179c78a8ddbb30dcecf6340b8e53d29f899452c89e8e9c69e188eec931c7ba8c254239576cfaeaa092df4bb10138192d76b76643f81f4f57370760fe7711a027b4636a8de51e9b1db90b157b7b3b21696b3055c8d82283e922ad8fee9f82443012557bf18e99b7599d1f5c6eef7bff9ddc3ebba3a2dd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "9906b88532caecebbe77708daeabea9473c97c694b0ad8cbb757dc298606a6ec"),
		nonce:                 decodeHexString(c, "d43585e416901598a94d3aaf53a248c4"),
		personalization:       decodeHexString(c, "800ea23ea4e741e490d14c901fb75425945eec932c194fc048dfffe92f86f5f4"),
		entropyInputReseed:    decodeHexString(c, "1b285e2b5ecbf0fb7cabbb618b3334582b25158e6bc8c27fd75ca86adcf8ca65"),
		additionalInputReseed: decodeHexString(c, "5740cfa51134541369af1fb014d6bd9f93ac40d595567f949898f5090e58b717"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7750bb23fc678f04822a2f18f863c08542487025a191fadb88f2764d4e3a2586"),
			decodeHexString(c, "04c7ed02c3d0660e2e6f5344d9abe4f334e309c7ea5a3202357461a0ca630c30"),
		},
		expected: decodeHexString(c, "9ba9f9fc41c5ff92f8af68937b130aac4d69305b936d14396b0f6f6dd3fcc20b064456878f7082f7662983dd241c7108cce3d69f85989e88dc4b5318f2e4fadc251254f51ecbc3cd77e299bdb5a8863723d87ee9f400d8a02672b00f964b5e16874c17e98efe67ab9922acb80edf32a052792ad281c8cc96798b60ac8ba9a9d4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "924d92703f5e8c563d215989858e68bae0f16290b224cbeb9d99d58c514bbed2"),
		nonce:                 decodeHexString(c, "945abf547fe67db36c01572679a22686"),
		personalization:       decodeHexString(c, "ec8fe188a93cbba2fa3de8b947894739b52414b837b9b6172ba71edb36fe9841"),
		entropyInputReseed:    decodeHexString(c, "435a3e000f5addd324c79f7739fac0d534c4b841a59ab96369888798469623dd"),
		additionalInputReseed: decodeHexString(c, "845a5b22ecd8296a031ab03dc29f34b7212ead472a9642473b2e25970b5aeb73"),
		additionalInput: [2][]byte{
			decodeHexString(c, "37cd18968960ac1f9d91a8ed5620eb8c46e0770c8b9ef9be77563519f628c313"),
			decodeHexString(c, "fe44fda12447144204b690218f7c3aca8379a467b322f046184d3d18dd2eea54"),
		},
		expected: decodeHexString(c, "dd4346d83e2fcebc70dc0874868af522387e48bf7184e5c4de661f554c301c954e1a3bbcd38c09171e2d1e9be19f02fb0f3cf37ceedd82f6e2f2c2443bf05a5e45942220f3123ace07c8ed229ea01578b2fd93fd97229322c8d43a1a882853fac361d778a9aa28ab07c7c9c0b3fe06db985b377ac06c568984c0d23812d0e6ec"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ecb139988c862c399e816557c1d26dc15a1ae211a18d958a3893d0e6867743b4"),
		nonce:                 decodeHexString(c, "acf7a4a06fe5515a09aa3e3aad3b7373"),
		personalization:       decodeHexString(c, "2989b07dc369419f91985213ecb7e3aff54f5e1e6038dcf37c96bc2bbba8d6d4"),
		entropyInputReseed:    decodeHexString(c, "dc338f742df145715c613c8c20ac9b9d92f0dee14dbf8e1eaabccba2a00118d7"),
		additionalInputReseed: decodeHexString(c, "47de7d1880052ca8857dedac2e5520e58f7a11d8733cd0107ae2ecd1f9f02e02"),
		additionalInput: [2][]byte{
			decodeHexString(c, "89428866830c50836c48cdff230831057a0a7df6d94bfc3237d0d571e1aeb36f"),
			decodeHexString(c, "055c2ebae240a9d0c7cea8781e878cca7ec4e2e90492944bef3e939db293b012"),
		},
		expected: decodeHexString(c, "845b0a7f95a7cb195daf0cc05eda1522a38dc4efd18ee79e28eaca21dabe413c446f3ad2e4f44b48865b3625d0230184c92ff2f30bd17c77c79c75e627f4996251725d961b1128f3e3a088a3a3930fa9a8fed6cfd392cee0927d0e932accaa155a7c5b5fec38f1ca46e6c6de2235a75db9d9cad6b803df59ca5377fc148b671c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f3d185a0363128da8ad2a52fbe21ea51c60d23e2f592443ad54ca59979e7fefe"),
		nonce:                 decodeHexString(c, "adc21dc3fd5706aa721f45e8b3aea531"),
		personalization:       decodeHexString(c, "ced35144ff2e4cbf9e0f0f4dad6f2c24d0be27f1251ead78e6a1c8fbcc609094"),
		entropyInputReseed:    decodeHexString(c, "3761b0a8cdf6cd0021d4d46cca15d0b7b9dd814a21977a2956975113c73dd2f4"),
		additionalInputReseed: decodeHexString(c, "f6ed93f20e9a8bf87d8ec70f6f1391ffe32a2b518e7d2784c8cfad2f270a11c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84dc6e8143e07250ffee1de4497467564fe3c6b5eb996a4b185a7ba5090691dc"),
			decodeHexString(c, "76b36611ae1606c1790e275e1ac59198637c4a5f90a73dd4ad7d4511755206bb"),
		},
		expected: decodeHexString(c, "0aedf11df9c858d3451ff6f634fd6aedc9e334949588a0a6d1d74c4e973ff0f9f251ca2e8620db1e461bce3a84c5f98afc1dd93dabf3acd5b43c0dc73b85512e603e61faa47af80a170298e39693ec85a5f706666ac17bd6df73d88028b36f19b9ea29ba95ba4b3f22d8bb3c0deb05ca1086bdb617ed8a1abc10420757462dac"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c55f13235acc38435e9c5fcb0112f5f9a2ab2db6b5bb358c0df7d4364a3bb5af"),
		nonce:                 decodeHexString(c, "7bb571aa0602ace26ced3dd6f22547ae"),
		personalization:       decodeHexString(c, "8c5290a7d55d271ecbb703eab7ef67faa4ad286abc1195ee8a6a9c8ad5be2446"),
		entropyInputReseed:    decodeHexString(c, "e20cf0e468e7f545cbefd0f581131097c06062446353ae5805751fc7c450852e"),
		additionalInputReseed: decodeHexString(c, "b8d6b8c2f77b5f84506eacee14b4687fb970c7e597f8cb37dd587e74240a442f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "28f83e27ac60d50883de843769b50a5fd425891a1ec2fbfef00849d9b7c9804d"),
			decodeHexString(c, "6db48fa278145140261ba1001c4a93b07cc74eaf6a525d7032e9cac1e8ef8ca5"),
		},
		expected: decodeHexString(c, "e2c2f0142db7775c20ba08caf3cc5d014a69237c60e29822d3b95ae6cd9ba8f6dc57a4233d298c667a01fa46061b508cf1a0888af04ed996d10a9261ad982e242dc9d009c88e109182b95f5212d62eb41c2dea56be313e3027286f27975cc3f881496f5d00c35a4d70b429892e6d9ac107dd7667b26c106cf4213aa98fa850ac"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed39_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed39_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "bc5b8d1517b6eacae26589203e0e9ae349e34f346c63858dabfeeafad7dfb12b"),
		nonce:                 decodeHexString(c, "5d8875c42bb320337967fb9baa1ec500"),
		personalization:       decodeHexString(c, "07a069c2e4e5fb4752750caa90684eadd5e3a747aca86d10c07cac97d4ffa47d"),
		entropyInputReseed:    decodeHexString(c, "c84dd873d76a7742232a9136cc5126ef6fcfc3e59152670d1624eef097d4e290"),
		additionalInputReseed: decodeHexString(c, "378d28289e8757b2ebb6598846443e6ef7f49a0b4dd458f3ade9c34156a8b08b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25bb43ac515048cf995fc9184b62a8fe2629451007811867683c5815743efa7a"),
			decodeHexString(c, "83ea415166fe870dcd2f0fcda41b955f39ba96df50e40fb7de3a433f4e071250"),
		},
		expected: decodeHexString(c, "546d74204c4b37d20d723143852121c7b7ba5affe13fbb5ae34908b00013776d6efa371062912c152261059f2ccf9231540a47ddc8853e29a2b816089fa12954346ba2d3732d9f7a39bf0d7a27865bc0aa5ee9934d4ded4e6fbc5f95a86a437a21f7635d78bfbfad491a4723b215eaefd9a160f0e81744632280b5d5cade4eb4"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed41_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "b6ede63ef581505bea11f5f75c13b3d569200f526aff3a4e88466311e120f315"),
		nonce:                 decodeHexString(c, "f8c413d038c907c5c366f47a6a514d20"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "95189ffedbf83701c64dfe8754b8583363d196cca19b03e8043e53152949026d"),
		additionalInputReseed: decodeHexString(c, "8d5f68e3bc90d659af580cd80ecee8f43c20e92c4aac675758a0bfbb4cbc5736"),
		additionalInput: [2][]byte{
			decodeHexString(c, "835eb2664747d9341ee2c9f0abcc6a8fb528e9d556e9a60d8f0d24a63d582ea6"),
			decodeHexString(c, "a553a538598ff314506c5c9efd4ca793b0a59a46b7e0568e1c7a89e305c40683"),
		},
		expected: decodeHexString(c, "8a64e644273c9040d299ec412704f6474e0fe49c58cc301808595e36134a06e58d3141037fb6b0fa2b43f2484debc331fcb4d38f85a79fd6e5a4f9e5b3d369407dc5fbd86a88a2a623b49deada25a11b280414ada01ef0354e7f6ac0a42e14041f87d4178a619483af123e7d5a6398690711b05c81a7e6b4a39f6028cdeaff66"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c7e26f40a23ed69058205fad48b8899b8db2c1e52c4741807f246eb6661062e1"),
		nonce:                 decodeHexString(c, "be162f5be78fcc41759a2417b685cb60"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "94e0710cd576266b065f759340fa2366a3a42c9b91d5ecaaa830c6c76fbbb2ab"),
		additionalInputReseed: decodeHexString(c, "172e9c98af1c64332eb624566c715e2010d7f4440f9aa0b5d03a6286e3fdee8b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e19354fbb0c8c3fe829436ca094dcfe1c0673e10dedb116cbc2e38837af72f76"),
			decodeHexString(c, "1ba7552c92593eb202d88bfa9b4853621711fcfcac22ce3fb4c7c293632fd56f"),
		},
		expected: decodeHexString(c, "e765f8bf9b893519792ac364f75f91582bb8dd02f5a3b6174d10982ceb8abec07cac35e70c914ff66ed594572fcc775826deb38b4833bdc1deee7852a2a6deeaab8ecec42001775246345a39b520cdf744f55c8c280209df5a32599486d8f1625dce35af70cbedf6ed02fe42a818903238e371a3620af749db985b53a6879709"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "88ccf7018bec7a7878c38a61c7377c9fa5b4b686df9298b0d92cf082145e2a3e"),
		nonce:                 decodeHexString(c, "d6bc90476604a0792fc40b0caecd2bce"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d4423e75c53582f29316af1676a448596e7d188406e9d6a255d7d13540be548d"),
		additionalInputReseed: decodeHexString(c, "044f90c251625c87d84cc504bd0fbb0c1ceeb0031e25f2246381ffa4026c0b23"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74fa3ad4e976f9a1fd9d154598ca7c7c49ca77e3ea1f736f9e7336cf428b9fb2"),
			decodeHexString(c, "fbb43e46ff2c5b8dc134c40b7d420ed25f3fbf76db9840c26e53a000bb65fdd7"),
		},
		expected: decodeHexString(c, "e72eefe2c433f3460dffb1b3b0c0fe4623535e05d0f47b7b3ca3fba7e7244ecfb202d2c6a3b6eaa7d38323df9e0db863e1582fa7e48e7598f6525b917790229f14d4e3b9dbdb51f2f19cb25362e1e6b5192fa3d206113e13a4f9a4ea003b742adbed2dd65a5848ef2aa85f717986164db9746defc53262865b7044f030dba572"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "0675092fa386daf8fe11c505aa65b3a961f5bbb41d317d2c2d82cd63cfa834b6"),
		nonce:                 decodeHexString(c, "9cc267f83399e2c5041340565d428a64"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "43d3b7ed2591c1b8b2fc2ea8cf526eb6e6fb369bf789e1d7ffc069f06c062a2e"),
		additionalInputReseed: decodeHexString(c, "7eaa99e1b2cde122498b15d7a7118a13ebe1fcaa5a95abbf3ad1e32395a869b7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ae4fb83f486c8574abb2fbfa8d1b493c6ab3b44a454dba971af17750c3da8eb"),
			decodeHexString(c, "152eb68213c399365f083b0c19521f189ad9be842578fdcc14f3f7c22f99bbe3"),
		},
		expected: decodeHexString(c, "4d04f0d00c3d904543edf4319da11a14ea68079de912edea6bc0f581fb20c4e6e558ce7cbfb0ec436ef18f4b9d9ed48f3424c1a61c3342c97d670daf3b37bde0586c33a70e704e5136d839dc1ccc4f093d4ecf22677dc1c25c31cf2dac71a643607675c1155b6dd3be6b30dbe0db12e0b53f26bde95545f9d6b75f7ca7d7b994"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "68762738145c9bed25ef023a5d78086f1ea5d857e7b5df46132946e30fb24760"),
		nonce:                 decodeHexString(c, "86a4537d13d2e6b142941b5a97fee194"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "68718bca396a9ae9521e272571a02ca74985d13afab29c7e2a35136062ef9173"),
		additionalInputReseed: decodeHexString(c, "33302530f27be9e12cbba99d6ba9d8f1cc6f4666f596b24b66d94429697dcf7e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f45019a855fc50d7a2ed3bf26e34c28094dd83891b57385cb744602c5c71af83"),
			decodeHexString(c, "ae1105d6d73a7ba409d58890d313130324c612dd1538930bb19fb36d49bfcc37"),
		},
		expected: decodeHexString(c, "8b89effad9846249ac50ffaade4b756e3ddc56870662a50c14fa65e6b6849d919ad137e042da1306db59584764d3b9addafe2fa2dc53c129419b479912f90b3901a3a009bc835986a77fea85f62a7ecbc3d73e2277adc10a8343c8869ca97059720eeba520aef0a06ed53b5821787c922512675338a08957348fe4c32e1cd580"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "08537435905c5cd0eccf7cd78432a1ff9df0c5327b77ac4531afeff6fe8a80b0"),
		nonce:                 decodeHexString(c, "782dc3ad1d4d6f8306f970aa35a5a511"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "869676b72b0297a01f463cab02c9bbd1233588415ccad460bfa2404968c39df6"),
		additionalInputReseed: decodeHexString(c, "d6fb4a70715b0976cf9c831fabec300b4047421895b8c5bf0101f67fdbd042a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "04b29acb210bd5214400734a498d59eddf3ff3b446605e3dc9fa315c1f5f44dd"),
			decodeHexString(c, "4654b033176de5c5be08ae0f57b920892c9fa8456fb2681e819429a2ff0cf32a"),
		},
		expected: decodeHexString(c, "62003f1a147f91b47a1bcc23e3a6a13dda6dac3207f08637bd475f623933ea00bd1aa159ac39aadf5057ec59f91024bcd05c4c2cd7d74eff8a6fdbc000c4e5b4220104189178714a5d08a0f98191acd2cffb593247befe0788a642ca3d838549d0824972b160e7cf13f4d8f69e522d0b981f81b3a54e473f2309f58316ce4cd1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "186432952735fe165b8a3cd7f233a36efbbd7a69d9d1fcaea451bee07f5d1af4"),
		nonce:                 decodeHexString(c, "73cdeeeb84a3aa76a7f0b1f1c1b83288"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "82a41b671f36d7a1dbe6145c67dae9eddffd2cb1f1c09824c6ee2d0ea2db4cbb"),
		additionalInputReseed: decodeHexString(c, "a9acf8683326160fc63dfc5454bf1baac834f1b4f5fd29b38211f81086f3fdf4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "989bd13d6c6d9874cbc402617888ba4f2093ac62a5ef9ce7ce1c37429e16ddda"),
			decodeHexString(c, "d4ba8c6ab40d50b780ad6181fd2f099fe714c0bb56690f067bbb7ad611dcff5a"),
		},
		expected: decodeHexString(c, "5aad27c91a55b5e714ef8743150881833be6c2e5bf79bf1705d3f30d81b1fd272eac6702bc1642946863cd734e9e538dd5e84bbe54748071d81de1d34c2286afaf8ac4a9997aec1840cfe60540e37e06f07ac662cbe00eb4ab76dc1cf98259197f2c1a7b3cb0e466ca61d57d884ef9091e357a9c2f0d90289999728af6adffc5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1fd2fe2228daeec95c7536e2f4bf85c341c2539a20966f0da45757ee82e891db"),
		nonce:                 decodeHexString(c, "9709888f0154f670fe86c2e57f080a9d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cc04a2876bb5e4896b6c73f2609a0d3b88f349d8848330b3aebd3ca2c37309f4"),
		additionalInputReseed: decodeHexString(c, "ecdebda4e56b1741d9414df6f82d19f8629e5db0302763258e688772861eccb6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36823fc7342bf1ad34a7cb0e83c8e8e07ba750685ff1145fab1d4cbe59c96e04"),
			decodeHexString(c, "53474d42bd14e1840b42c5969eb8b4f7bb1d94f3da7c02f7dc408e15517afa12"),
		},
		expected: decodeHexString(c, "8cfddd5329d4f7b15228cc4240fa379f6882c404ac76bba457827277d33e04ae9925e86aee36e688e27b53ae0c53270a4c4dc3b9fcb8dd327a32720bd7b90593612cb8e540d2d3b4b323a4aafa2baf926d71ed14ec2b8f1547cc04fd00c40a1e003b8d65f56ff81da9e09a19e329bc893b265224742d69d1fa31d699fee1b623"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "41b38833c5ebc7cefe9dc59f913c00525fd3dfdd7bcddcf1930ef27f91aa60c6"),
		nonce:                 decodeHexString(c, "775bea35720e5a1543aa7d847d036c9e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f5e30ab56e9ac4cd47a0c5562ed17ddaf8768dd332b0f1e0e20814a3582159cf"),
		additionalInputReseed: decodeHexString(c, "561c6f52117964243a19dda151a8910bf1d6229fd45eacc53483832a0797c239"),
		additionalInput: [2][]byte{
			decodeHexString(c, "140a6ffa2dd777bb6dc2682fcb6bc5021e7237160bfb78e8a3f26a9c50a7534e"),
			decodeHexString(c, "7518e93a44263481bfc20f9e6b5618dacf9c4a73d7f5acc3c042256b81ab87e8"),
		},
		expected: decodeHexString(c, "f546ffa53f0c91c641e7871645f1615a527cc6a4ac6f2b9e4e831a1ee0fddd5747163d3515a8ddcf4f30fa03f95b74b8c9ec4d46433690c28950c985f9fdd65d2f9e020734b27217ef6233c702d82ab3e480805692af2daacd8b5f0ea75f129b90809a6023f0937a3d9f9be021b63718611a5b69b9d10f80828d87d36cf5abe9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ac437a11515b389b2217f193fb640c17a0a3773c3c4c6fac74824860cf338381"),
		nonce:                 decodeHexString(c, "04d899abbb4316c2b3ded86c951e8054"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "314fd9ce72824e9ec21319a7a557e0b0b8361f181817f35376a99eb09a9a98fe"),
		additionalInputReseed: decodeHexString(c, "3eaebcd48a8a0bccb53caa4250426b915d4afe3288d1334ae16645219834c7aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6af7bc8fbf8fb060f181e6e4a0f696da5c2a84626d5209e90fedde76c95dff57"),
			decodeHexString(c, "975eaeea1fde39b9df1d28ecfb12f7cef5fb5f2c35253766e2278fa05025c456"),
		},
		expected: decodeHexString(c, "cb5b021e6c6d22c32c222944842a4693f0ad6f7f42f4af8feb3b7615cedf9a758b9cc82ef255b829d7ef958c2d5ce6e1890e28e40187828f0f5df7ea9665450e09aa4ba12413c30041be8f9618aca428cd24234d60115b66156f70459890dc4b41ab202cbd35089265ed665344a4a85770c0f0ed8bb8fb98b8d218e31db9444f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ac9ab06f30ccfe95d712f7e3f57778ff927af4b6c68b2a63360f073b1a1b63ff"),
		nonce:                 decodeHexString(c, "3af87af38c8eeeb79c67d825920de633"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "18eaa4f18d783fff6080b2a2145179ec3de3e6f431fffabb9a5ae53f2bef1ad1"),
		additionalInputReseed: decodeHexString(c, "da3753e4bd7f38d40e299906e9eabd9228bbc38cba29549cfcff325470e41f61"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fe6c77d68c9ad6ee70f3a5e4fdef3d78e7d08da764511bfc7d407a0da3f01408"),
			decodeHexString(c, "2db9c52787119d9f365ae51317f120925694f361532158a9d18e924a272fd2f4"),
		},
		expected: decodeHexString(c, "192b48e9a7e31db3251fa412cd48619ae7810bfacc3605cb0a7ff49e2f6babe090aff3cb6e705c432bb3015fa8267f259a19672c64edbc25e82b8364f5238a40d875219497a4f79976388a73bcab1a2da8b59346f83db9bf710f4d4b646cdb776bb6a588ab3b18a3925f31497501f8e2f53fa94ca226f65ccd598ac13a6945bf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d1a264bbb6e5881d99a222c88d867ac3e504b458b98915cf2442e0aa826a88fe"),
		nonce:                 decodeHexString(c, "4b5fbe3f1dd17e25adc8920060ca63ad"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fde3f68d63c077fd4dd81205c036a8238119b76ffc7dfba6d730e4dbe7c1dfd2"),
		additionalInputReseed: decodeHexString(c, "8e942ddaf8303fb21b59170ae21625e54d8e2ec8820c4854eca4576baa6c7aa7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c2dd28ea4569f66af771a35c13538474a221921c8175e46e120e78a0d05e3051"),
			decodeHexString(c, "efa204ccadcba9317def9874280c7e80f6d5ab8cb1240c21b5a1a3ed627d55ba"),
		},
		expected: decodeHexString(c, "75adcbd4b5c760b83fdbe9ce71430d5584fe0ada00d661581bd1cd56c50332b8c0fb084b0a71e19768f25994b7edca52468bab4205f6274fde7e987a63b85d47794370cd2e0259ef024ea8ea1cb139918d2fa4e61484518ab9763025c2ab7761ced50f5b646cd2f0d0fc503a842415f2ffb7526c2d30375f9ae8d7aed56ebfc8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4c31eec0709c4fde56d8cc6d11c7888d9970cee4a6d0ce0a845149e073d1d623"),
		nonce:                 decodeHexString(c, "6ca3c359fae66aa8db6312e61920c5aa"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "15a7346106e493e963d167acf7dee837963626f44216ae0a618bbe11d7a16ec7"),
		additionalInputReseed: decodeHexString(c, "984de321abbb0eb5ff57758dd8cf250cbd72706061eacdcaf9fe6aa2e8321995"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a83431e3a77d3a311e322a580cd4c90a17cfce7734a8afe767cf1988bb0b8218"),
			decodeHexString(c, "d0afee6b4de87f3bc0a29fd3d1f350da97ce5a9055959f414ba14fbdfa034a3b"),
		},
		expected: decodeHexString(c, "4d3952ebf2e3bf9cac9d4bfe8224ca4eb69dc76d1fa9aaaa9c04ac63c558e84afa3927f84189d6c399e0b5efa3ba91af66675893fdfc78343cbfb376679acc156d37df3bfd2143ff1de212448b0db3d8a90d8ab347000b06214c2d4299fcda5e87c516192973be09b849db250afe256e592d8c31c35249d179e9a6d82e26af80"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "290029a7a660aa9f38519496264eb8894b316a44bab71d2703a08313705e42ec"),
		nonce:                 decodeHexString(c, "27b2cba8058cc385fcb238daac0d0e48"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "539155dabaa1924f75da76fd5ca62fbecbdf82dfd1be84588a221a0acd9867f7"),
		additionalInputReseed: decodeHexString(c, "9318a7eb7b2e39bbbea207495dd3c75094072eeb24869b97abdec54d578eddf0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "91cb81b2d800ad60b136ca63da2f5bce7ca6783f8a0c699931886f0934e7647b"),
			decodeHexString(c, "8156cbf2c0b5b7718bb92742b66cec75a4191359e16c50bedcc5e748a22d129b"),
		},
		expected: decodeHexString(c, "70e62fbe676ea6a4dce2fe02eed8bbd237cead48a59c2e4595e51722ac6ff11ed8d2a42596fe788a3a07b3e15bdb4025b3dcc1c3c254d619a94afb7ac54d0c722bb983e05c3aee10bbaab3ad8631cf7b4ea76ae507303a8b66541bf7594ac3810770e2348517d34e2f69ed62df8cfb04b01761fdaca2880ceb2a63292da77936"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed41_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed41_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "234cb691da8e4c2e7812fb726799c0944f3e61237c782a268c0c811e26d826f9"),
		nonce:                 decodeHexString(c, "1534ed0b065729ef7fe3f9a0e5fc7b85"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0a6c8e62fafa866f550dc59ac2538ef06a030c5ec46d98054dd949678528150a"),
		additionalInputReseed: decodeHexString(c, "5bb670e67691d2d4bce04aaf397527f35089febcb42a4523a50fe2333674688a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e1745f002a390f6504846dda08e111369d7828cb79f0e1a1afeceaae4cc4a778"),
			decodeHexString(c, "4e3b1ddfaad296432c85cbac5bd5a2bd897d41ad56f5e37ad5f4ea9b75397afc"),
		},
		expected: decodeHexString(c, "068adfb8ae1f9c7d51453f665332f99d85c92c3a1c5d68e6e967ab9c43eb2493f2b334fb86acdb71ddf9819eb31850f39b679f2a698557d046fe4b773f1bfa697e43c5f20845feb374d016552de2ad17c1e4df6e05ded9e86427832d15463cd079b5f30ef491813664feadcd6a1abecedf708f048408af161f04c3361071defc"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed43_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "a0a809d13f9c88cb4117586a56946ff25922304ca28e94055cdeb1d7e229b34e"),
		nonce:                 decodeHexString(c, "5f1bcb91faad6387bff8e918a9228f43"),
		personalization:       decodeHexString(c, "bf34b1f373bc5930ee345617453830fd670bff5e1d31dbfbe7fabcef64e30c58"),
		entropyInputReseed:    decodeHexString(c, "eff8312250d235adda4b20686477c5b77e3336a6e1fed8b09a4e1b62e00c99bf"),
		additionalInputReseed: decodeHexString(c, "5b48bf0e90a70ddfe9e50f86d33ba473d5b04cfd4d43ca2ad12a6b6ce2a99359"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3532ed84a2bb6f61f787a5ffb60e9a7682954d7cfbf9525b691d344b7905aaa8"),
			decodeHexString(c, "05a5973d2f26673caa5cc76fc3381c6895373de09b136e798b44975ca4c32256"),
		},
		expected: decodeHexString(c, "e9ad87ccdbe060c15ad936778c6e98c3a34465c766ac719b4f678e2bc009f7b693345d129a9e42527509c9e51cbb442539087ff6621a773be759eb8c43825864c0a3092fb57adc9e2b3226b182c5171f7425e7beed3572412baf3df6dd4d58a0d45bd9b01e77c0625650ec86f3f288c462510653b034e4d363e829f6881310b9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "40c5528d3caedff54a5c3ca0b9cca1e036a97c3207006ff949a58e0763e84168"),
		nonce:                 decodeHexString(c, "47efd3d608b635b280b38c027ff66002"),
		personalization:       decodeHexString(c, "33827d913942d3d62c5ca66319d5e27389c587e8592bf868154b66ef78456737"),
		entropyInputReseed:    decodeHexString(c, "105e6f823a4d932f9ad2fb095efe5764b45891416d16a67b548bc24bd12fb8c9"),
		additionalInputReseed: decodeHexString(c, "99cebc96266a3ecb9a96bf050a7da57f1bac4ee291cb93efbb3282050ad7fc2b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "707602121e691423e7aeaa7a697fcb809ab7f2a2e662ac1bcf0e907cb2ade6d4"),
			decodeHexString(c, "826a8bedfcb5546cf747bf4e5b3d9631c6c01a635ac206447e17a128d29820de"),
		},
		expected: decodeHexString(c, "edb7cb26b91b7e54f95c8e40c0a9e9b15011b1cde99a2575bb5b987d77f45a88cf76d63e2780ac8119a1ea34d6f7ed60c16838997a2cd8b1a416d1c40e1875970d6c3a7631b2700f321e444e27f451cf6ca7898126f45797bb9fb68439983ffda2e810009b3461f0b7f39ffd15cb0d5d1b5e36b6a97596c18dc3965dbf54d6a0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "46c88a68bde571771d3c422bb090f12f8565abce08589d530d5da60795682bf3"),
		nonce:                 decodeHexString(c, "ce6b0259c6245365e18f668041faa748"),
		personalization:       decodeHexString(c, "4acd8580a32d629bb4b8e952c8e02538a594fc909a8cd9942772f3bbb66f9639"),
		entropyInputReseed:    decodeHexString(c, "8efd8a30f2220b9aa4b469318c22a4a88e2ac9ebb18da7d7b434d41f26128e53"),
		additionalInputReseed: decodeHexString(c, "7b846c1339b2ffc7140de43d8cb52326ee9c64e154c20be10f1fcfebce1319ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec57193bff9b11b024d2ef0bb169edb67e1f161a1582dca45b2524aa81a38fb4"),
			decodeHexString(c, "b917da93b3abc61cd05ff2703bfd94ef82c2c3e36d6db8d5ba7c575a33193467"),
		},
		expected: decodeHexString(c, "f1a8a8b1a1750533444962e1a456f399455ac329ae2cfe9a02f4bd52b07eb3ee19c599184977d602fa51421d8c5d8809298dd4ccf7c72686d243d2795c1407ac8a5e6e5926510c56d11d13648f1c6724132fecf776a51a58a61bd03df872e3ae46cf4749db34f94c538d5e5769fa40f0594e2d81917ea6bc4638e4cb0896d46c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "eabe40b4692b60630ba4267420b093a0acaee778ffc78f824a8b0f5d008c2019"),
		nonce:                 decodeHexString(c, "c73641e6c3faea4f01f072d32cc56328"),
		personalization:       decodeHexString(c, "92f61b0b488dc6d6f8ce995b3a2cf45de41eda3b2eb98d9aec2e1c37f2b5171c"),
		entropyInputReseed:    decodeHexString(c, "6629b64a6fa727d7100a5bca5fb98f69913ed6661fc7c5382b2e1a73437ae39a"),
		additionalInputReseed: decodeHexString(c, "117f41f100758ebebbff7f02eb38f9fd67614d2909950f5781a929207d4b02a9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c89dae50c0a9a8298e50e0a6993a555a574ad2aae840f37b5387ba2a5a3cff53"),
			decodeHexString(c, "a89e4765c96c816ddf2411ebd77aad0c873a8900a80b28c154f7b2fa2dfff827"),
		},
		expected: decodeHexString(c, "66bd2143c0bbfa97775b8fdb38bbf47d32df820ca911821969b7a228a5c94c3860d6a129d0355365e2436d57479bce14a694643805284d2a3a55e7f9585a0791ac8a12b5f64d4b30a6807751a3eff5bd430e77036bdfe7d0cd88cabfc126d27681b790d9cd0560998da88c6df0051b6e74253d64c6be5f0d4e02368f809ec3b0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ebb89ad81be2d8975543be3895b2740777916f391517e5ff34bf9b429427774e"),
		nonce:                 decodeHexString(c, "ae60c49360d722e0c682ba99c9fb35ae"),
		personalization:       decodeHexString(c, "3bd632f747567553aeab00a909e43eba6b9533087a218c281d67457c47d97fdf"),
		entropyInputReseed:    decodeHexString(c, "2026bb0f3d2c68eff46920a8b0fdd0fc1b6ffb3827f84fded7bd46181ed01010"),
		additionalInputReseed: decodeHexString(c, "4103f613ca177bbc2f3733d18d92417faeaa3407f3314c44a47434f9841262fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a990830546edb15e105075db882a3c0144ba2273c8b6baef48df3c83a160497d"),
			decodeHexString(c, "af752811359ada0accec2945a516c9c9a150809d593402729cebf6f007fdfc88"),
		},
		expected: decodeHexString(c, "384883695b91b6fe82cd76c6bef204be68844a0e8f1f59048d65d752e74123ccb386049c96c616b76a427c47b51a800aafd1336e174ccbddff0157d9fbc583b60570e14fa27c4ecd00cccc4f1d9bc74a7dbcc464c5eff9e6fcf5b4bd7f175ab3a3a843032262f92d076bd55aea31cc4040431ae12a64e3f86b9b49e121fe8340"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "6d8790fec9633bdd371d505f3e2a18a6e61b57665de06172dcf757e640fa5993"),
		nonce:                 decodeHexString(c, "fd889c9e576b883e2ec2ad512970b979"),
		personalization:       decodeHexString(c, "c3d2ba08f24f32b0b4d8c349e4352f86313cf4c5c49720ec8aca9cc47851bef2"),
		entropyInputReseed:    decodeHexString(c, "0020477e51400c8f81399852b449eb977c44316ea8cdd0a7ddeb87804ea4074a"),
		additionalInputReseed: decodeHexString(c, "233cc439a1e6795f8033382bc6f5f38fb371cf72094ee4ebefd06c18db0d521e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e445ec189b309618ea20456855eddbbb17c5311457a896b229a60e63d421d163"),
			decodeHexString(c, "568f6324c002e8befb7784ad8b2043a75b5b49c0bfe4b4d73a4f2031518631bc"),
		},
		expected: decodeHexString(c, "22e896bf8737be2d0079c26f286e0712d7c92b0996754bd63a079c2cc80128b906a13d82b6e203359253133538e919e6e4dc23f8a1508654ac16396c84f8936571a3fc1aa9de555e67c75c4847437937ea6b6d55e30f423f8e0c1978cbdb7e5ee4cd04848a98935d16934af0408cfe7df1fe2d25e8c2824101e6b969fa8054f5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4e1aeaffa8d64e9c86dd9570e75d650c2985cb0bc95a1946fcaf8b98dc2bf536"),
		nonce:                 decodeHexString(c, "33e86f1d1df9e50ded987d1e73970700"),
		personalization:       decodeHexString(c, "cf272e3ba187aef4d8036e76ff8ea5c33afd09c627b04a2863fc92bf3eab49c2"),
		entropyInputReseed:    decodeHexString(c, "6f3fa65de621588aaedadb7516bd7ee3179f0a355d0ac218c4052320e8c390da"),
		additionalInputReseed: decodeHexString(c, "567061b9d602ad112b0c43e37278ecf2bc946c126cbbe10c0a7aba01d425d9d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "10c0714d47dc3c84069735bbfbf907ead01c5d4ae19c3887c4036868d48d5a29"),
			decodeHexString(c, "876fdd806443fab7234ee6884cb6b8bd628517dd6bd7960963d5237eadbcd7c9"),
		},
		expected: decodeHexString(c, "1dae85ac5116084a8e13ea9fd65cdf3a78a9616960d2a7aed28366b08281ca7d013b84aba09bc3eb768e388b358df88660501f456345a4f0ba3cc0c088fa728e63bacddae0da9dccabc665e17c8da6917c4ca00ed96bf4c39dca3bd38f552afbcf21fd0924bdb077d16818ca1edf54cea1857d511de31316044c3e28da094f39"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8ddc7d79a77013a1a10d9177e98a41bf165abe0d36b7792a5d1b52ceb39ecbfe"),
		nonce:                 decodeHexString(c, "207448c0b2c2beabe3e447f1fd1b485d"),
		personalization:       decodeHexString(c, "0dab9e9621cd14ecba4e6da2f5b2c7708eac81acacf471bb1d83f539c50d0480"),
		entropyInputReseed:    decodeHexString(c, "f75442b13ba8f36a3680751207644d2cf4716a669da5b7ac79eaa91ccf8d012a"),
		additionalInputReseed: decodeHexString(c, "ff812538060335f4dc060ecb5c30b69ff5e38957ddc9103acfee6d8c000c4c63"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d5a054a871364d55f151d74bafcb603fbe48728d56f06895bb0585dc572206fe"),
			decodeHexString(c, "bfea69d468a619d65535cfd92c6ab2f6c069776b8092b6b114baddb255673f7e"),
		},
		expected: decodeHexString(c, "2f51d5b6856be93eb70f6c0b34b4b9389f0e69953c70d492a4b646aab1707ca6ff0a232f7396e9252483d41324b645775fbbfb94318d58c90bcb962b1e8eadf0ef76a840a327ef40febebdded93fc686e76864801509233443e92ac079e0957d0b75e948bbc50d58f0cd8a1f9667424c6761834ea230187828c2a296641d21e7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c00b1ef7d6a23785faf2685002b33459562fac86043b641679298c08565a6129"),
		nonce:                 decodeHexString(c, "72e6cc764523e4cc8a36a60b949404a6"),
		personalization:       decodeHexString(c, "b0799ca214289cc392417ea439995e1e40f573dae68b6cc617f9e995c3ebcf05"),
		entropyInputReseed:    decodeHexString(c, "387fd8785a6ad9010d04c626f0594014667910274812d7a8f8fa00a16383ce8c"),
		additionalInputReseed: decodeHexString(c, "dbb72fdf3ed3f2852e1eec30146ed923841b83ed9b2c0343a622c72ba43fbe7c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95ef4c3ddd100e895572e75ee09af25414fcd727a348c7895d6e85aef2cee57d"),
			decodeHexString(c, "e4e310e8fdc0edf676d387dabe59b68e0aab862fecc87bf17d88b20af65c1244"),
		},
		expected: decodeHexString(c, "cf17c8db83ffece762d8f68fc5d829b60a8bc6095715d5d1afa2f384dedfe855e768d928fd485edbb97bdc724ed8140a229ab18d38b99d3676d8647d2d1554c9a9406294ca95e1777a40d8535ccfc93f3444f4a0d8c80fe211006a642507fa691d9c780899eb0478d99e768665c903df4ce4c0882b3362326360546533e26ab8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f923b3ae2d7ae9a01d6033595ebb48de70b3fe218a0812c0951705a0394ee976"),
		nonce:                 decodeHexString(c, "9e133dd0108d29e54ae621e84f7a0c3a"),
		personalization:       decodeHexString(c, "3e1b4b0f1b0c0a9118d127b13483145c9af3e645fa9c4ded3a98cd75bee53290"),
		entropyInputReseed:    decodeHexString(c, "dfdc0aff3ccd1bcbbeb4872ce0aca389c84954c6a894c3116e2b650771ec5656"),
		additionalInputReseed: decodeHexString(c, "88cedb20e6f49122f2181b3b677edda0b652ca3b886cd8636649b120dfa93340"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7dac9a708211ed329ce4085495d288c168ea2ce3e663f3b52d10c98e5dde5df9"),
			decodeHexString(c, "2925d129d353e0d122a51fbe80a33c854ef71a1fd843bbf3fd87cec92bcfb27c"),
		},
		expected: decodeHexString(c, "d19daf5c2e001ea3fa1acab0381747e355c427b3321919f0b72576f61a30825decc377b20c7f18a833fe653b7360bb260ec247e37ebd1e415fe278ac1ddfd010133ad3e738f0e80866a595f6b6904285b52a0a1815ea9722c93fbc5f12585a0c5a41cc5a064738b237246bb6ffc09916c3050a5c11aa2a7a03f88166137c739c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "eedb4329a2863036fd4a688b73c9727d7ab374c49d872afb918bc75715041540"),
		nonce:                 decodeHexString(c, "168be80b9327532200b87593580d049b"),
		personalization:       decodeHexString(c, "b2fe15f255750304981aff7cf5c103169def34dd48d07a88b815c10d2c14901b"),
		entropyInputReseed:    decodeHexString(c, "f4c6b82458acc20a96d8fcd37390004a4e53da30591db093a51f90e952dd71ca"),
		additionalInputReseed: decodeHexString(c, "f24303face32915d226affacb32e9d196540016e74e5643c0ea5a1e19b25e3de"),
		additionalInput: [2][]byte{
			decodeHexString(c, "de78f256164f8ca5d86b6f53cb0d5e8e2531d316101572fce8c1f54c0da4d95b"),
			decodeHexString(c, "1a5ccd5a810302ba5b48cc3d650d19343713ccf47de68950cbdcc884e9bf18d5"),
		},
		expected: decodeHexString(c, "e050da9134cf11aec991eb9c4836905b3e530da1d5d4d57c1fcd559ae95bd1ec9c00137eba187ece36842847ba94d3b347fa314c9a74a07e02caa290d3c8e4afec18b0c8fec7d9a0cf43daa2672de205124cf62d68a6165a280a58df4874cb761f89490c29b53b4d2c2a940997baca51ababde810055cba974ed0c6dc0bf0f1d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "0f4c85f1ba4d662caecf3122856a90b22e55d33454382badd0e7159de4795516"),
		nonce:                 decodeHexString(c, "47581883289982b4ce0e8c2c8e4b0dcd"),
		personalization:       decodeHexString(c, "4cbdeafdabd81e1ceda48ac3c678ee161870edb79c12cbe9e7dacd8a9b3612bf"),
		entropyInputReseed:    decodeHexString(c, "82ab805948b62b63a97e9acdb7445b6a3ec1707370f65fb278e31826c09bec81"),
		additionalInputReseed: decodeHexString(c, "d3d759198b903cd647807bc8c3a8673dfdd4d02b2cbef64d454d639fab0ca191"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6e9d018f12aa77bcc69f27959366b2a65b64cf3687c2915b25184a7042a398e"),
			decodeHexString(c, "2d782b50a77e9fbba42891cc473636eb77e7f34dd3a8969f3596d9ffec2c612c"),
		},
		expected: decodeHexString(c, "ab7acb09532509250eb666fa85713224fb16787a1eac4286d6e01caed14600bb758a91a6aa7f4d9d9eb5dd1e4098321c5fb3a3a63fbdd255b014217f36af86736ed1e0cccb75e06b88244506c2b8a9a2e14306ca4794e2f2703b2ac0ce8fc40c7dbdf8549476c69af884edfedbeca9dd247ddb8f3aed3c846b23a04a7d98d7c5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "8feec97bb3abccd5fa832d0141baa044ce48b8a38dae7b045d59e21f83edf9d9"),
		nonce:                 decodeHexString(c, "27fc14480310dbbb58f2a193723363d7"),
		personalization:       decodeHexString(c, "243f37f1c6c20edf6618db2cf89726499f2b958c1a1cf05fabba0bdfdd5a737c"),
		entropyInputReseed:    decodeHexString(c, "975125efe5f4d162683ffff9077a8acfdc206d5db3b9421bfaf90aadc14b39b5"),
		additionalInputReseed: decodeHexString(c, "3eb73d2ed88385299cbd7bcfca64d044fe07077d477a88f553062b68983fb66f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "40a1b0817cef672424bb9792a1f59b124d858ae5cc2f147e292333fa3202bc2b"),
			decodeHexString(c, "abc4e7bcc8e8a1d2553250003655af306906619d6a5f7a123673e11295fcf02a"),
		},
		expected: decodeHexString(c, "21baa005f6d50c445ea38fa22d032ba8bdd6de26111e095346155772325f5b689cd949cfb0ca7e7dfd54717682a8e2dbfe763cdc4e4e833731242a646d975bba8de8d9287721a8b86bb4e1a5c2579f435328b6a0c25aa503214bd2611153fc57cb82eaad0e25c301785f19f0eaf1176ebd8f3a9245792462f3bf131506474752"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "490f6e4650c9ab12f4c105ef52ca94767ea53fb9ec2ee7dafa19ec239164342c"),
		nonce:                 decodeHexString(c, "ffbcd82d8c861eb6c72ec07e7c746f37"),
		personalization:       decodeHexString(c, "169a4b7dd371ca6ad717aac91fb7ce06fca342ddc920f8b35457e99a3297e47b"),
		entropyInputReseed:    decodeHexString(c, "8e2994b574eeb0551d624685e0b3257a311e45155140f5ff01aef6fd7e260258"),
		additionalInputReseed: decodeHexString(c, "6ed796414045ead36d2612129f683a23f911f2121baee64e3202c688469c3fa5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "44cc12574e3e5e4117ddd9c0cb18fb17b5201ba744a7a7c11819c39f8efa5cda"),
			decodeHexString(c, "54569015831558360a787ec1030be8ed20b1d098746b8515d9846e5dc47b805b"),
		},
		expected: decodeHexString(c, "99c0fb997b9b76c152a92845ea17080a699bf634a2fd8b29c341a67a89105295e05c0f6e6b993cd88aec303307b0c79093050b5b1b7ee881ad41137c699c4a004bb335ae2d5fc62e71440a08e25e78ac19a86773bc7726ff2489714ee632d7a433cb2f4fb3bb2d70bd92b4cf6810d21b3a79932d18ca3304883357cbc1611692"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed43_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed43_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "85483423600e93df98ef818614a6df509c813738874795c44e4ff803969e29c4"),
		nonce:                 decodeHexString(c, "4202283f153e44d32dabcad1df174d85"),
		personalization:       decodeHexString(c, "0a68b945e49c0ec9d35563669fa3b92b3eac0e15292d274eb5d2510af0756a7a"),
		entropyInputReseed:    decodeHexString(c, "c6344253e190c45a41937406dab4dede45e90f57e0fe5b727c1ec60b3236ae44"),
		additionalInputReseed: decodeHexString(c, "bc836b536e71bfddb67fe77473194236f9920d555b3d174e293cd9ebf15197e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b11f7c1b60a1223e5c514690edd2d33227df3326a99ed3a3aeca94b5e7c7338c"),
			decodeHexString(c, "32cdcf759e0d7e1a728e1cd2bf4de8dd225c7dd576da2a565662a3d28d8d3a6d"),
		},
		expected: decodeHexString(c, "1e344c946cb6f54fd2bc17753929ee881e5c6da0eaca9b24c071cfba6919cf6d9a17c42963ffa93797f72369811e9f3c0cbe7aa6f62cacd9a8698e969caa0b8c37db7ef9cddccb37f5205bee6190696a45a7c527baa49524439e67ae259897892394bb2ecd4bc7e112f3eb5212e9b9bbba544aa195f06f2a24c2929243482291"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed45_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f6117655719a70ebb0b1092e98c989940f5e389572c280e84e490c9a6d3d3984"),
		nonce:                 decodeHexString(c, "12a88ad4b16bf73eb7f9d9adca57189c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "926da2d2742ab1c9cf186c21787692d9e5d2c4bb7e3f50d1be21aa22a734a3de"),
		additionalInputReseed: decodeHexString(c, "26915f6326457449e29887bc470ecc1aa9508ad5a22844a87341f95f134f57a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff5d99e551fab70f5c6bbcd58d9db8fadd59c1b0345add33baa00d9d0d021d36"),
			decodeHexString(c, "bc714e2bf27ced1af26189ac59dfbbe5daf58fb1c781aa0b07f657a90e05ae6d"),
		},
		expected: decodeHexString(c, "ea709bfde49bbb134a8304bf4b6e3e1a10b9b46fe505d7178a01d6126060ad986ce8fdf7648c04c875b6a355540724099b739c214214a4c43a775e733d22f4c63f9ec655ddaf36e40f639703bae853c2cc915701a75f8c75fbabed42c9dcdabb82f8f667a6ce77426bdd5eee1e82396fffe36676d69dba0f89181f5f3209aa38"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c5a9233b8da28592237ab6adde2118d00ccca9c2ebde8f8dd6c12c56cd6be1b6"),
		nonce:                 decodeHexString(c, "c491aba35c9d32bba6d538e8bcb1e369"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6bdca2ebe7223766731295520cd3b0441f670f67dc85bf4ff0a5a56d320df754"),
		additionalInputReseed: decodeHexString(c, "08aa6bca5922cce0440cd89e62fbb5c957e834e0fee6ddf0d72a61a28ae4faaf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ca1dde786d671820561023be0cf133b6d00a3668b3120484a426151f2cd4530"),
			decodeHexString(c, "328e7e4e8f504c5c5bccec752d5bc0c4ce6d8dc33c9f4e744135b24f4c466441"),
		},
		expected: decodeHexString(c, "5cf6c36662dcdd73d9586d4b3ba68ff9f658863a46893a95d6ad40e0abec24c13787e29d44d5d435de282d73ee72ac84c435c72dcee59806d9bcc8e9aa2a0e5eb64817b5f4609e6656f24fef4001ddfcc5f606d68826b18dec016d1a066dfd6145e7ef509262be0a65c69a80a560c96bb96f8a21986d4f7abfe42c919c32484f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "aab072aaee6cace69ceb99c31a62fde67853370842c259fe37f0817cec80d4cc"),
		nonce:                 decodeHexString(c, "a91d9e182cc6bc4921e04a13ec3e34fe"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e15fc3713b65d1b2278dc5a503b52eb2547acb74121b11420b7ea0d81ea3170b"),
		additionalInputReseed: decodeHexString(c, "f58d367ca1fdde7b464989764d7e732ae254f278f97afccbfe7b47fb992ea4d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "77c0077e5f04fdddef62fac041fc4ad7985bbef77e4dfa1dd67a457a47116e87"),
			decodeHexString(c, "e4d8d195dc9bb97d6b7dfe0a14594b4be523fcc8d656aa22ac43814e740a61c0"),
		},
		expected: decodeHexString(c, "ba3cb66a66a59cc3b5ce4b43b540a7ead44436d5892031c77089f78f4d6ab6036becb4562554213fc44ed561b68e3f415060888b5a71e859d800a4d28c4823c4427b31571a1f5d77b151be9affd99f339cf34d71df9ab9b145cc608d7f7fa4168b12acd3d74dca5e114444f11a520ab4e459e4648a95df81f564f434fd86b023"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d493a0667d3d1d6f9e525549a1560d72c0351cf9922fcb5dd8c446da390db78f"),
		nonce:                 decodeHexString(c, "1fdaeb26267ea06cdd3d8e71ec7c266d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2af64031d8f4b9c1eeb14b81fb96e2693d3add8a3b72e0b14346cfd0ea04a450"),
		additionalInputReseed: decodeHexString(c, "aad066fa0eacc29fa14555d5ab79ffad77f20ab9ba3d114219078d99541125da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fbee74d82db11c01417a22b72fca08d83edcf4c10ed9748853d0ba33e0339417"),
			decodeHexString(c, "bc10bd7ca7ff5c0d6a011e50b03381c878b040c3f57de42ab57e7e24f956babf"),
		},
		expected: decodeHexString(c, "4d1b41ed84b19634582c8c0cc744b43c4a9add9892b626687ce9d03b074c599aa6fa58e765d4d68b0cf8b8be50dd346b05cc9c588c8004cbf45a84819d16930134a9eeba74ce8e4133bae0e8fea0839748e6ab03b4831eb8197d88da7801231b71bfc258bb3831494953eaafbe5df638ff66156fbff02040c0cd0407b5a4447a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "ff88640139f9eeeececf938c6b39d81cd46e1c35d14d60c224cfe2ffe623db0a"),
		nonce:                 decodeHexString(c, "a343cf91a4d21d83f8466c4a91286f76"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d7fabca339e32033b3588b0e4069557564d81aae4922dd2dd370ffc9da430f28"),
		additionalInputReseed: decodeHexString(c, "af6e2b4867e24d0a46ff013deca274252620d5bf8c9743d73894e9b0d81e6912"),
		additionalInput: [2][]byte{
			decodeHexString(c, "55a4694e4b3a1fe22ef8390fc5cabb3a787e2f76bfa47c302229cd14ecd187c0"),
			decodeHexString(c, "685f6de2e4cd3351c266d5c721367875a955ad4f898b08f022b635d240d59d79"),
		},
		expected: decodeHexString(c, "fd55f15d8eafdef6f9eb31299a2feb2aeeac2f4e5e8278052c438f86e8c4ca85cf0952f87486f967e65c4c17886540efd837ee89ab1c4eda9cdcbb5b61e331a9933593e8f8d31a90e7579fd446ddd1412cbdb15f813f4b95a7a33b937c0091ab4aed275e8a4bcc16d7266abf9330f5fcc3434f0b496fda2d6e9e9ed1c84365c8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "c2fbc8f508c672b679a5b5abfe639064672bcc2392bb7220e076f1cee032fa5d"),
		nonce:                 decodeHexString(c, "8166224e53856be7ec8b76675115892b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "46b95fc97ba24996a020be9a109967551401f315de3813598e89dd50c2fab6bd"),
		additionalInputReseed: decodeHexString(c, "b6132031568e9966b1312d4c3f2f0bb2372be025fb1fb173fe6c60d87342f84e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7139de54e0796be4fbe6999d7bdaca7af6760061a7b71823dd2ae6074468064b"),
			decodeHexString(c, "b5e0761ebef794f79fcaadf0bd6ef06c947c7196afa5d7f4a252c229d304f6a9"),
		},
		expected: decodeHexString(c, "50cf7a63c6f4cf48b0ef0ee3723d9641527a9d3bd89b8c705a08063404530aa2824342552f86257b19e32d8c9db621443f349496465f11460508cd72ed9a1807a4753f05fac4e57b9a3d78132539d432c7ee26c4d3e54ad82a3499179772b92f30f121820f18a47c52a2546e930c7a3d061755b57c1b828550de3f3206b23743"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "917813b04829b1107846e393b11bad96636a4ef9b486ab672ff493a9af85f36f"),
		nonce:                 decodeHexString(c, "c6437422bebffa22b59e652d30c75f40"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "28d38078f7c45140a18cb7368f760d15dab36d59bb5f016618116b551e77e21e"),
		additionalInputReseed: decodeHexString(c, "ab973ec337fab78b29afea6428d7f1ce78946505f187afc5b1f228bbbabeaddc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c3396078a2286248b29f352961584ce6dde177ece2497aaa9ad977f24601746"),
			decodeHexString(c, "0241acedaf0bb42792d47fd62fb0ac67eb14d4d95a91702fe451854d83941654"),
		},
		expected: decodeHexString(c, "1948c39523438cc19076c41c419c37035b5f241fcc7ced61274f042dd9d339c9275882e084d107d4b3168a084bc4fe3212e4c878004e34ffac64e84e872db27a838c4183f50c9a4d5a3d54fb81c788511e1de9177034b499c5125e676d072f4de285ed1e3c42add4b4d4574724212ed1f2ebe382bdb4e134c167e7248fd9a078"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "48532f6b35fd7599b1696059f806f0bfbc77c2b475a16af917eb9bbf611998e1"),
		nonce:                 decodeHexString(c, "5492f42699e6ef1b597d26b713bd0969"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "884601693cf65509d8a753dc766f84a5fa19ed94db6ca30b29a196bc85d96665"),
		additionalInputReseed: decodeHexString(c, "c8094f9012b23be76619cf53e69c06b3fb653c400ff85246e70f8e3676048fb5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ad42e11be73e2b70c7e01807bb6d537d4fbf400d559d3afb1e664c8c7fae8840"),
			decodeHexString(c, "4bce650b78e5cd8bc0c730a35522879851fd9ef4db7a3cc0e630d81955b4d8d8"),
		},
		expected: decodeHexString(c, "adf03da03e3d7045f7c7c371cfed6de783c0644a9c2a9e744bcc629ee5e5a4f2dc171ade98b30308a5ca8693c62dca292e25bb699427680aec6aad8b07c635ed0e4381232cf48fffe2df55cfbcbccb8c4fd93e21cefbb79d532bea27725cfa5119ae34970d16fc0e7f6804d4940d3b4aa0aff09b205550ed2d7788ebabe6066c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "e63c3a992d0109b711b5145b165cc3f6d534bc12fc8f93badf16e35eed832153"),
		nonce:                 decodeHexString(c, "cc830654285b47fd1071f880c1b8c4c2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "400936e777a9a763ea04d95bc12bafc05ca0236b43beecb3df3d6f29dcbdcecf"),
		additionalInputReseed: decodeHexString(c, "9b6ee86bb013cdab92f532f0d140c66a6beef13e9fdb377fb0a1c991e1954eb2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4251a7199de88d13c84eb61f4d7dffcd7e69ca6c6ce7cadad24f5ba23552938d"),
			decodeHexString(c, "8f93301cfb47a030fb2bb45953bfb82c970f929ed3f06566492b588503e20630"),
		},
		expected: decodeHexString(c, "1a5fa69b24ccc564b1f5db84a832c429144a9d86e44010d24e58d2ee5bae1b06ee87d766782de53e8f6cac88a714c6b36b1dbe4f76f0b4086d5fb0bb9afbecca21d6c6c01804074fe104be0cdcafe9dafb250047d28ac71d9947596ce9bbf911060d05c73c3968b4ab05908a3a18029ce062ee4e46036e74d1759ce6b8dc2e95"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f39f470f2ad8a377038f1fe3be35e224b347fae9a86298a9193e7b1599c361c5"),
		nonce:                 decodeHexString(c, "7ca134873a40e2409c6561398432c684"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1401ea41fdef051cb583c011afed8d607636088abce0e80869b94b4a9a7b7b7e"),
		additionalInputReseed: decodeHexString(c, "321b9d2e92e0c8c4e20abee42901b6ff5f29c819b2fb2730bfbead0037ac8cba"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cab2f8102d96bef444cd4846372d26b7d1f65574ce235e9d4f08501a36fc929c"),
			decodeHexString(c, "c2992b05ab4e51847fa8d7537120ea77447c0fde5335b80fe00f660e50327e8b"),
		},
		expected: decodeHexString(c, "f2371b23bf165844c77f5c44d4b96449c8e994f62ab6828dfeee337dff5261a45f7184743deac217322880b9dc402ece17d875e3fe1c2e90dffe076a5ca9352798370ee9b2b717793b73313f1272b3b82a4975519636cba2600df36225ea82bdca15f8dea589e95ec81b850a3c70d7e6720df1aaefbd2cd9df16419cf74350a6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d5d7f5e305cb25c55530694e8fd393159a1bd586e7f2f05e9c24e1be8d944c61"),
		nonce:                 decodeHexString(c, "a05743dff2b6b06a4433ed8f514a8245"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "44dd0a3ff0d4eff18058ea7f4bf0d7a1907601e2b00b8402d8987517c54f5e67"),
		additionalInputReseed: decodeHexString(c, "cea2e5c75c58322eab0a07854b6c915fa853c690082a1377fe3d91108ec9623c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84c8dc9fcddb61be84e26637784d8238f5ded6d3318ab3160dc0129a251232c1"),
			decodeHexString(c, "d7d7fe696844151a104f98841728bc6f7e167242242d8aed70c55c96f2d59c78"),
		},
		expected: decodeHexString(c, "fc252328547c457ca03e2c1b72de3f5af2b874cb60ece7c349ef07f41ffd8748e2590da44fb458a90693b28aef29377f53947d9309f2c882ba1cc036e87bdf35bb61cca7374ecf4826f32fb71d3dc968822b3f8aba0c904d87ea6689bab1782d1b51af666a5e918cd4859a3f9a9ef29adc03db21ec02abbf6ae2e45b6e200c41"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "386479990cfb1fb640f569c224a00fba156c1b8a7c83880f2bfab5bf32d5e122"),
		nonce:                 decodeHexString(c, "30503518ab22ee9a30e0fcf444ef8189"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "256442c47aa458eb586bf4b3c866389eb591612b15a926ed9b2493f2e65a4d55"),
		additionalInputReseed: decodeHexString(c, "914758ccc203737e2ad07dd989b24a60add6b4d3b4f3968c69b0a1f3dc1108ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d7e5221550d450f9c2543b3a022b576f56f311c54c13cc19b95f7f27d911f04e"),
			decodeHexString(c, "9c9cfaecfed9ef3e73c73d853f6df215de91e979a1d77650be304d1b75e099dd"),
		},
		expected: decodeHexString(c, "7dedb5fec4fa835d59b63bde237f5a2011c3ea142f8d9bd0121fae176e0afad481d9abb194ebd6378bbd28f3d1de29dec4f59ac22dc152ed04c6d4ee64f65cc91765dfd9ba45b7207d080c23ad7bbaad41dfdac6170222196564bf399c2774d37a333686f7f16d144104522f75048430f7ac49d63f65442997eee8ba0d70bb2e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1431c496ac7a9bceacba9c7b4255a70e10fe49223d6496176f0f343f35ae75e1"),
		nonce:                 decodeHexString(c, "68d302f51fdcca107c2c0986fda88a1c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f2edcda32223c8079a936297a902a6b44aed7098983e7826091e99d7ba069f0b"),
		additionalInputReseed: decodeHexString(c, "e1878b5ce7f14fda147bbdac11109ad541ab96537791a9b924c0838af752863e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bece2a7046131d6b8311d12e03853a96d5f3d46ecaf06424335f131968ca7415"),
			decodeHexString(c, "6045a8e8ee3b2dca319cded3ab58bc63bcf5b9ca42413113c395a3216bb483e2"),
		},
		expected: decodeHexString(c, "2ffdb106088615ae0eb1a88b191e031da145238600d591964fe2fd73fbabdabe097102ee8aa0c45c3407203c79c56e21193a3932ccf6a4fba9fc69869e5f4f52fe73b8c530ab9ff568f994538f3e5ed440558d960312f91b3914b326b1c1f1c5818b785c34932d361f17f423475acc7e2760aacb0c0c517b090a751ec50420b7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "5f794e6a03946121688854b6b5397a1b89e758ef8abf0f814a3ccc84bbc8cf67"),
		nonce:                 decodeHexString(c, "7b88dcc3dbd0f1f87ff2c00f17845fba"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dee413cb76b53c90a3bec893c7b5f53c706086a9d0e10a2559f90408fc6ede2a"),
		additionalInputReseed: decodeHexString(c, "6a9afc80763990828d3153271e76981dd6c16ba808c80c34a6f9afcf19cb6174"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21a8897df9670fc7f2d90b0f9ef063a1b832d5c83b91769ba10c65955b90f4bb"),
			decodeHexString(c, "44d1c3b4ba4d56d391fefc01ddb3568ad204959867ea88002f34d701f68c7ee8"),
		},
		expected: decodeHexString(c, "5afc0393c62b236d7d084ba970a4f57eeafcdaaff49e565c441cf74a7afd0cc6d9ce498db1771539493911cb770d4151f67acb4ba2f5e047ffb7cdd6ec9b24404e8bb5ac9a1a42be323b9f625847f07ea0dfcda2c2535d00665ca93527db9f6d9fd91e516fe0276fb399b3ed05fb657992843fdab5339d49aa5e71cb2a649f2a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed45_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed45_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "2a5644232a2771fecff696f5b6e0294e9c4ddbc86978c10a6b821bed8201b6f6"),
		nonce:                 decodeHexString(c, "bcf79360f2e91e5e47c618368a54a73f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5ba9413341665e3678d5d9113dbe4291d260edf3b566a1ba8d20d8f84d978786"),
		additionalInputReseed: decodeHexString(c, "736e65f392904c0b8b1ecae78421d9dc68fec9715cf9e055c761e962f097b8b4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "502a0b889ab2773207b50420e7c55566affed70d0eb1b03419c1e94b078c97e9"),
			decodeHexString(c, "45c1dbebd32bbf5e2196a61ad75986b29395b9fb6729a697afc776cda4b3ef2e"),
		},
		expected: decodeHexString(c, "9553738e3c63026e78ea7dafeca517389e292f949877d630029e3f0a2d805d5027e178c10b36e54c5b462207531fda07850db6512ccea3530162555e805f6675528a2c677e237842e2edbdc1176f66cb11c3ce49618c98c7ccb77ef5d3cd433c52608de9f1218d0f92665d22f01c54c2dbe1a9d6c15cabdbaf253fe23b7203e3"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed47_SHA256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_0(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "f05bab56c7ac6eeb31a0cf8a8a062a49179acf3c5b204d60dd7a3eb78f5d8e3b"),
		nonce:                 decodeHexString(c, "a14508534168b688f05f1e419c88cc30"),
		personalization:       decodeHexString(c, "a03472f40459e287eacb2132c0b654027da3e66925b4212554c448188c0e8601"),
		entropyInputReseed:    decodeHexString(c, "72d402a2597b98a3b8f50b716c63c6dba73a07e65489063f02c532f5dac4d418"),
		additionalInputReseed: decodeHexString(c, "b30d28afa4116bbc136e6509b582a693bc91714046aa3c66b677b3eff9adfd49"),
		additionalInput: [2][]byte{
			decodeHexString(c, "77fd1d68d6a4ddd5f327252d3f6bdfee8c35ced383beafc93277eff21b6ff41b"),
			decodeHexString(c, "59a01ff86a58721e85d2f83f7399f1964e27f87fcd1bf5c1ebf337109b13bd24"),
		},
		expected: decodeHexString(c, "ff2796385c32bf843dfabbf03e705a39cba34cf14faec30563df5addbd2d3583f57e05f940305618f200881403c2d9813639e66755dcfc4e88ea71ddb2252e09914940ebe23d6344a0f4db5ee839e670ec47243fa0fcf51361ce5398aabfb4191bfed500e1033a7654ffd724705e8cb2417d920a2f4f27b845137ffb8790a949"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_1(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "fe615079f1ad2a71ea7f0f5a1434eec84635544a956a4fbd64ffbaf61d346183"),
		nonce:                 decodeHexString(c, "9da78756b74917024cd20065119be87e"),
		personalization:       decodeHexString(c, "775dbf32f35cf351f4b81cd3fa7f650bcf3188a125570cddacaafea17b3b29bc"),
		entropyInputReseed:    decodeHexString(c, "18897bd83eff38abb56e82a81b8c5e593c3d85622ae288e5b2c6c5d2ad7dc945"),
		additionalInputReseed: decodeHexString(c, "ef96c79cb1731d82850a6bca9b5c3439bad34e4d826f359f615cf6f2a33e9105"),
		additionalInput: [2][]byte{
			decodeHexString(c, "af25c46e21fcc3af1fbbf876b457ab1a940a85164781a4abdac8abcad084daae"),
			decodeHexString(c, "595b4494388636ff8e451a0c42c8cc2106383ac5a63096b91481b3a12bc8cdf6"),
		},
		expected: decodeHexString(c, "8b1c9c76c49b3baefd6eeb6cffa3a1033a8caf09febd4400fc0fd3a8269cee01ace3730ebeda9ac623446da1569429ec4bcd01843225ef00910bccf3063b80f546acd2ed5f702b562f210ae9808738adb02aeb27f2d9202a660ef5c9204ab43cced62497dbb1ed94126a2f03984ad4d172f37a66747e2a5bdeef43bcb98c4901"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_2(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "957fd40750d39492110474b85e7c45754e0159107d059fe4d750adde714274af"),
		nonce:                 decodeHexString(c, "1ad8bb3d3d234f8a2699f48033099b2a"),
		personalization:       decodeHexString(c, "463d3e2c20c7467e258e1f7b4d6a7e60a24b82e017c2831f78ed7747ae82d81a"),
		entropyInputReseed:    decodeHexString(c, "45a5c5729ef7c7f0a67cfa13be5ee7f0d71359148f22edf8d4c2ce61e4b64105"),
		additionalInputReseed: decodeHexString(c, "b6dda7dd4a69eaccad4a680d07c654e95dfb75f0021f23bc5ca874469dbc8d43"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7cd687f16faf3420b1ac23189abcc427a6b5a88e6362b2652f129ff044a58ea4"),
			decodeHexString(c, "93965881baf2f1bba36795510b958e732df850acff6e06316d4a99a824a97876"),
		},
		expected: decodeHexString(c, "234b423fe363a3c8948f7458e934e2b93fce8b7d06c54b03f745c57cffa146fecfae3f63b78524b2972c709b0b32b2a08894ff8fc85090255e9ecd8d5e95d41ac8387a87a37205c7d87899ad27d5e8839619221089bf2e568d39c3f0785ca35085ff5a8c60bb9251160b3b93e63c4ebccd68f8f3f7e46bc24df0da0c5734cd11"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_3(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "892f5a7bea64ad281c13f1857e161d943424ac17fd6df2ba91c3b8b94ec02131"),
		nonce:                 decodeHexString(c, "9b62974e4e4c98c385784c1da434a3bb"),
		personalization:       decodeHexString(c, "73a70e8bbd75a0e8420f3906499afcf3acb819f1bcd4a1cd5e471454ee8318a1"),
		entropyInputReseed:    decodeHexString(c, "731f91c2a131c41ff8934d04afc36a007a20e51fe67c937516c8be17d789e75f"),
		additionalInputReseed: decodeHexString(c, "42c1ab5d3bf7d420e4ce50bb39b05bdaa68412cfd82d587c9212cfeca8c8c30d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "21e368ca81d8ccef39c3ec6c7673cbd49b268409737006b15aebb2722895a7ec"),
			decodeHexString(c, "ca3e010675d4afb364b849f5790a11686247c82d8e296c0aaa4eaeb1d974e1b0"),
		},
		expected: decodeHexString(c, "372c0d2e9921fa01ecb562ab333c4208153fdd77998124206bf1511a7012e1380f77b867a1e1d7577c506018b5d66f272a11b5989aaba41f7c37c101479812f7021c9a505dc605105b0974cd7b63aaa68df3469e92cbd2498bab4b7248d4b8de9ddbae04281bedb7ff497f607f3e51a909b3b8545ff25e80941d6341c4395bd8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_4(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4dc6e0da3df923c2ea7d300331263c4c2b40d53271adffb92c932ecd9b288a8b"),
		nonce:                 decodeHexString(c, "25302496a882f86a71059b0bfbd734dc"),
		personalization:       decodeHexString(c, "c6c23211e4f7931bdd4b4f7784061b2ef45aba5a64082d7fdaf16759a4807c48"),
		entropyInputReseed:    decodeHexString(c, "7a93d5cdbb90473b2d85aeac20eeb69b45424a062e754a8da188c684630bb88d"),
		additionalInputReseed: decodeHexString(c, "8c7908579ee0287c2c9ac5d7208a6ada29159d99500895edd3e247c8998ec4d8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "47087523854ad0fdca89f03b5010ca67473d084fe8bef8b5cb10369d145023e3"),
			decodeHexString(c, "8eedaf754b8a602c54a3e4c515577fdc47608067bf706b3b7a65623671d572a5"),
		},
		expected: decodeHexString(c, "613a60f8238a94f10bace7987549aab1d51724810776075b673c722f1f7245b0e4da8ffa50517d9414eef4c348e16178395c02411649fdb58fb34cbc7f3951f765dac11b075350910887d0442270502dd0f897b77591d7631cde0a811f9e092bdb865a9d0bdcfa4274bdd46dcc72435ec09122d5bd239378eef62a25dd6c6fe8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_5(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1b8d0847ba8c8cce02f5e814f1804c6695870f4c0419da093b89c6ea42222c4f"),
		nonce:                 decodeHexString(c, "5d484ee22d42e9f2cff8239496ace215"),
		personalization:       decodeHexString(c, "84f81d778cd78bcd0a374a469e509741efef46687bcebee91af0de3644f331a1"),
		entropyInputReseed:    decodeHexString(c, "1fcb8e105b07e7e696913926c16c9cf07c5e8826a28bd04e6ee2c2f09f8dadb9"),
		additionalInputReseed: decodeHexString(c, "353dcfbf12d31fa6f114b647b4e51ad3039dfea2f1d73ad22a789ddf7a72c9fd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "131617b1e13791a5b60e9ca1b154bd8886d723b3483694b2674dce7c5922b17c"),
			decodeHexString(c, "b69141394aa8028602b5a7557e20332f8414a66bcf58b8b4b6711e738bf3d19f"),
		},
		expected: decodeHexString(c, "89fd76da2ef7b56eb38db1dca7be2cf6733feebd369ca408f57a9bec9ebe80563e500b632eb1557f73187b91fb0ba6241a4c9082ba6250d522d5d371be8443b702c4a34d2ef6b66baad58d6263f5c757d6bb3cd1f43950e449995e6cb49e8bbb9ccd03524974dcdae6124d82efbc24f37aaa2da268d8090de2473477f024df7d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_6(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "4b23e0eb578133c5b5836a56c76a42c1357ffef9450a0583a454af438b0b940e"),
		nonce:                 decodeHexString(c, "b6d7f93484f117db7579a2e74e71171b"),
		personalization:       decodeHexString(c, "bea62f2a8a54c779bff84db9f6ec55f80bbf89ec828da3abf5ff26b395bb6743"),
		entropyInputReseed:    decodeHexString(c, "b4af981013bae510405bd64f757f22341a5a975c48a37f6ea8d078e32b218340"),
		additionalInputReseed: decodeHexString(c, "d69b16804225b774fe10452b402f434aaa15ae485ae5e075485d9bd9ec13969e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "876cb7db89ff1d5feef2be4fd401f225c7de2118115c350207925b4693425193"),
			decodeHexString(c, "1747c2bdb753d0faf42ba2ccd1ce1b0eff7da6829ec4e565c539d53ced8ec691"),
		},
		expected: decodeHexString(c, "2407dccca3f341cfcad0b96dfb97e6729188d40990ba5d094854ff7214d188b9d976dace2cfa03501fe62349a672f9337737c53289ade7f36d707e65c90b38ce208dbd1ecb98403eaabe33f2aeac89ca546d18eb61ebec87c38ef2b8e9dc13d73bebb9c225af9937eb54a040f64f12103a22083947d1afe32c6fd20bf43f7ab9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_7(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "d09a8aef727fdec717e70abd84760dd92ed731a06ca75d63abac931b63151a6c"),
		nonce:                 decodeHexString(c, "115cf13876702f8976bf3ead8af03268"),
		personalization:       decodeHexString(c, "b34e70c924048c83dd2036f450b142a4c742263831450c382d570d948f986e22"),
		entropyInputReseed:    decodeHexString(c, "384d2d85299849ed931081d32a70645bcca18f8b106f6c6826087ad28b71ed5b"),
		additionalInputReseed: decodeHexString(c, "56bf7b29af32090235eaec45f590b4036c44ca7069cd15fef4995a29acba67d7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "49f82c6495d2f5f42a26b994412e54631db2585ca5d04fbb87b78c1b60b9757d"),
			decodeHexString(c, "ec5b44cf0204f4682334aac8b0dc24fe66b7bec222afb4b7e0a5d832632685f2"),
		},
		expected: decodeHexString(c, "f6671424debd1326a547b5584e653da380c03c3c039a1d9250e5b7a04f1b925b4155cb0b7a0b1424662b0cd8cbd517f944a6f2af05b8966615500a0685148ad8fa491f6280fe3fee65d208c1166839ac8f1923e33b9a845be7aa6ef7ef1d706d9123eb4755b91ed6a54f771f6474b20f1d662b9cd814cba7549edf23dff4d0be"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_8(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "071e961e987097f77c09f76209e5e5b3f8be0c4c27075735e1fc202f6081abf0"),
		nonce:                 decodeHexString(c, "03d588d5947afa87db319a5016137ccb"),
		personalization:       decodeHexString(c, "5192482a6f4333de109be8208cbd8e68ffcb1675f4706e8575f6732b1b82eead"),
		entropyInputReseed:    decodeHexString(c, "23f740adb634a4a849cdfa0dbd8a2dde4aeffd45e220022ef50ffa841bcb0900"),
		additionalInputReseed: decodeHexString(c, "5f632bec5a1d76b89e2f73f2f386e6a877fe4b32f63330e76b1a66c7501dcc78"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d405236d30f51951e3c94368368d6df335113b36f3221f8f84bc5dd0d1b86e53"),
			decodeHexString(c, "50d9f7004418b1d0860597abdaf2f1b07cbfd8e62ede69f70c917f0ada2f46fe"),
		},
		expected: decodeHexString(c, "517d565484f879428d020e8021e36fc58b24e951c6bc6a3b553175430d5f5b45df65b7ba98421d6805b0eeb80319c081914582705d8c67f8be89a3ee6b2ee175e186a49f8cffc958d355ba5b133125954825b04eafef1cbc069e6b132bc385c52055d5aedf6f185de20afa6f3bc470a040eec5b304aad006b11e0e2567359610"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_9(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "18f68ebd74c499a71f3a06b5a60cc55f2db9c9f2b64e8581d68d086e77acb28b"),
		nonce:                 decodeHexString(c, "2f9dc7746348fbe399625bbaffe32455"),
		personalization:       decodeHexString(c, "6b8cc4c861a908c19b61a227e9889b3120751a219dcd6beb3b633ecdb6870e58"),
		entropyInputReseed:    decodeHexString(c, "17e76e390642206f33f29bb19361b8fab3c674c16a20ea2410789e69fa4aa883"),
		additionalInputReseed: decodeHexString(c, "f90085669d488cd17d66a35eebcf5dd05efbb4c6094d0e01c6fd46a81f655795"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4456e8d93d1e7363f903ca9df29ec3f8336a9c62e37b0df6bd391b545af0b372"),
			decodeHexString(c, "00335103bf87ab37763261207d63f3915c1cea0f9f00ac9ca96f21c374e06d55"),
		},
		expected: decodeHexString(c, "6207ad87eb092a362382ce8b903ba9434e213d49bd52ecd78192df1519bd12db0a6e4aa6fa02da2571da1f6e0294b3ef3bf534da8adf7edcc30b6360e19705bf2d6cd494ae8a5da3fc77032403ffba42d4e1e1473a2ab16c1493675739551ab1ea5aca30c9498b5c7d45e3a8ff9452669afd4e1ccfe32faa461a33502f68480c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_10(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "299878bd3ee2af42fdf4ccee414ba7a2df7d35d9c2fd44cda4d897b1d9204c09"),
		nonce:                 decodeHexString(c, "ab938037e11d95fe1456ceed58d4f9d6"),
		personalization:       decodeHexString(c, "d33074a5f01a93be6fb78e43cce0d178351ba7a18a5c581699dd8f03a00bc07e"),
		entropyInputReseed:    decodeHexString(c, "04449840d91afcc2f16ea5e025e3509bf1599e8932c22bf4fda6a0e95657cc47"),
		additionalInputReseed: decodeHexString(c, "a723eb227ec6ad93dffb0b3d4b90b875b677d75bf083c5c8acd36eb8294e03da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "26d294ddfb0acb9bb4d12c7cbfe9ffc7d187a98543d9a891ca6279a00d100c65"),
			decodeHexString(c, "8c39dd962346f1286ceed3641e8a8c94dc5047f2350c587a474baa3590ed99f0"),
		},
		expected: decodeHexString(c, "4f83430e0621d23011b499ea8028c6f702c56bfa4acc247f88a72fba678d15db5cb8c9ef48c64731078245129461ad0c99a8dd82e1b5526f27d6ad23059d3f73c5aac778561841e82eda0ca9648a62568d1d695073a9eea4cd4f7d709a1b48dc8547ed00ba8f1705e93649d843a8bedbc93f50b14cd0fa5e845111d2c4107a47"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_11(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "1a0d0a6abecc6b61b23f5a611569765723cb882ad2053429cbdc3280e78a4283"),
		nonce:                 decodeHexString(c, "a92f2939b8aac7d6e44165c956c65d8e"),
		personalization:       decodeHexString(c, "6d0be76157a77c6fb7fdeab164c1d9c288154fd58aafb1f13d9250d70e03d4f8"),
		entropyInputReseed:    decodeHexString(c, "f271cf7459e3422b7790c69be2db354b99acb0250572e0d9cbfc2c8d2e2e826d"),
		additionalInputReseed: decodeHexString(c, "65324b5b990e196334be868b73ff1379d6e2445149d83714460ffe9feb0c2aa5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc94148f4c78ba3ad3da777e7b1acaf7569ef97a4ddb47a57b67ee1b5dc61149"),
			decodeHexString(c, "28152d9de7bc9df3a5a1bbea96e4e16e5c854bf7a39953a00eff1e91d6dfc503"),
		},
		expected: decodeHexString(c, "c6c158b3be20aee57c527cdd793be636220883ac8145b1877c690aaa0f0ce05485d94a6936c946b48f03c8e626b5ab1d7e05fe276727047c0f54608e7000edc7ed44ad3d4a6bd084dcf716efc93740397d55e294e95b883a696e7d8e40c1d5103fb184c0c8663060059fd25ccdc8d78e658b82f20ac6ee1efe69564975074801"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_12(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "be17b941700a83f584fa2ac66ebae2397e2bfb409d7438610cb1b57f03d88244"),
		nonce:                 decodeHexString(c, "b531698feb71442c2daa1c3d58cecba9"),
		personalization:       decodeHexString(c, "6751369d7fb8012f360a6feb5bd240f7c9fb506a09d1f226c3247058e84b3d50"),
		entropyInputReseed:    decodeHexString(c, "446c936826bc1c722fcf8781345dbdf198143e15a0d7d06453e20362a8ef9e2c"),
		additionalInputReseed: decodeHexString(c, "2da333a622a82e04c15d9880002b6e9a3dfa7375c9d7b39f04a7c387b24f49be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "92d9c9181e2b61179e81e5596d87c36cf19be1caded08a61e8fe5846ee396d79"),
			decodeHexString(c, "8f9021aa420e3f1ff0637b1a3e044aa563d0a2195c6c24f2bc568ee603a4899b"),
		},
		expected: decodeHexString(c, "337946786c72f86628e80df7d4d76a2c7a6554989e6b8c3b36d0abe1e1817f318126fcc6effe7c90373ae7eb06d5eceaa4064625a30ab51ce684bff6a21e64630450e633456d0afed27e6448ee8980f2c88cd4d45af51ada29ea029d7858ef8982c5be6d9f93aee498b7627da1639fc636c7cf8688b62f9b7794357b5496ec88"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_13(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "afab84e28344f7b4f5b069add940d3f99e399c82ac9f0655a330068fcff589eb"),
		nonce:                 decodeHexString(c, "059cd73fb7a2f50cbe9cb404fec8b0e4"),
		personalization:       decodeHexString(c, "6da5e7e2c657b6a7687a5796581de9942fcf6c866c846d689d94f2629cc5ee26"),
		entropyInputReseed:    decodeHexString(c, "9fa6f7561d65898702601fe482c38857bb890dae7ed7b682cb8d8e4f37b7f782"),
		additionalInputReseed: decodeHexString(c, "eafc8bbda5495f10306d2232e9d5f34b5140a197fad8c057a085f04c7d2f9221"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea96ce4e296fbd07681b1899bd8d45bb9d015e45b6329fded54e6d6f9afdfbca"),
			decodeHexString(c, "e8da5fc94446a348641343cb83a31692e3161c4e7eb9d2776c88d9dea9cc1a73"),
		},
		expected: decodeHexString(c, "fa4f9ac8516c13f1dd63bf0d2780bcfe97530f4dca043324ad67d7ba17a8ec9b85d3340ef7904a8957d4d46a734af04ed10783eb9cbe8a857918b4c57e306b4630dd565a3e2f6b43eafc6a287aba19c34e91f9d6de7ce061608901df32f1d9e4dba664cde80f8e37cb3fafe2ddfca3017d37ef6b6028d03a9dedef65a80ee0f2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed47_SHA256_14(c *C) {
	s.testHashGenerateAfterReseed47_SHA256(c, &testData{
		entropyInput:          decodeHexString(c, "40da1c95ecc20ec9e2e2278c40207762006fd2b5e1dc5cc821d2325f0541e5b6"),
		nonce:                 decodeHexString(c, "6197e864ff069c5a059a323f2147be65"),
		personalization:       decodeHexString(c, "9d3dc781820012a0908c4aa43f9006af5f160cae2b4cfbfdff4dd35581c8e2f4"),
		entropyInputReseed:    decodeHexString(c, "60514a033a2da73f0eb6f532bb316dd4c48b4b3f2d7c62fb13fe241d3071e5e7"),
		additionalInputReseed: decodeHexString(c, "1233906d0a92403f3eed5770744cb742880d28c2d523924907f3d30ceb4cd9bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bcc4dda285cff30cda51832a8d320f885c887ab081c1c8bd53a1d68993026f25"),
			decodeHexString(c, "d579d4178cf490d2d7738290834771df387f5256204a575b5eb2fc4da3f9e91d"),
		},
		expected: decodeHexString(c, "b98e479a117e8b34e6862269515563641ea6953bb7e6e44165c03a9b5e0f24d4c333fd9e98d7e73e3512db8b36a4d49361f736c75dc0b252bea84b2b7ce42069336c4bd30a77d65148f5305ed6292e672aff77f9f1f4effd7ffc92f425f4505835e9e1868ecd8ea93f0deb273ae01e63969b673d88c44c11db7d7da46f875c6b"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed49_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b9096646daf8ff1e539c4e18ff6a5419184d6e72cf2be0e6727765af291b01c0"),
		nonce:                 decodeHexString(c, "63bc9d90cd3f497076b51698802704ef"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b1f5a39ea5c332e8733e101a1e08f298200bf4462cba56301173d2da3e6dc3b4"),
		additionalInputReseed: decodeHexString(c, "eee6742ae6b5d0bb669cdea0e33fbea1930577ed82ddaf0fb7ac0d496086d0f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a293e23d2c206912ef7e0957c6fc77979786c3eda754f628dc226ab0a8237c46"),
			decodeHexString(c, "07bc38ec01ac68a9ba95ffea1101df965b0a7a0f9bbd363c1d293c60d024cd46"),
		},
		expected: decodeHexString(c, "a3bc6e5945673964518c18363b2b94882e029f22be9da39e6bbff7c3f59da35f02faaff903b4b9f9021042ad20c8ecb494cf3242ee4208df783cb22914174dc7b0f614580fb67ee4026fc6935155feb338e34d0bc37364328606b91d8fe6690d7190ce094f031340370deee4d1b4fd9da80673ef2a77debb280fa5dbc6f4e31f95809fdeb39555412d115c217cfb9d68aee8739c3e1210519b4e5506b6e059d45c51aa09ee1d067c3b546e3e83b72ca31c13046f3d5f61b47a4efbca4ebd6226"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8f491d6bc59f581b353d836698d5eecb460864573d30fa438544b327b8a42424"),
		nonce:                 decodeHexString(c, "e0934ea8b55eea442de4cda7a835dfc2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "25c6bbf8bda61fdc913fe6d369e4fd477244718cb28207eb2bce7724ba366ceb"),
		additionalInputReseed: decodeHexString(c, "fef9101a538cbdee70bd9559cdaada044b4f63d7b0f53c89f7b0ba19143e1004"),
		additionalInput: [2][]byte{
			decodeHexString(c, "757b1809a53887f5d03b22b499668ffc113b16c4c63a1de3b15c6f55d9bbfb09"),
			decodeHexString(c, "d324e79474dce6bc4c5ae89806e30ad315d7952de7a7224ba1013ce5ec03d274"),
		},
		expected: decodeHexString(c, "fcefc87ed42c43c8841faf2e52a699be3d5c1f8208aeeeef2dfa90e7dc81839f1ebcf1e58d840d77012bcc69bbb6da5ee7d9b7f75df6128c08a6e484be1fafc942f3c1e1075dd7e250c2d54d68f9ca3018ab55cf6e53958e1bb25e8a00c65ae30563ec8f9f26a08be80a0756d1d8ab53b798ec5cfdc1c102e1c10f7bc3da6e0119dc34167177d0eae42077b42500d5971b21a37f22d10bb5b36ceaf71d22e09c1c1a47d70595506ac628aee0c939a6bfac44384e82e57be4299a184f91d9a220"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "10be70ec0479ef2a2cda2626f5f606447caec626280143fda60c143003cfff82"),
		nonce:                 decodeHexString(c, "e2301d47aa02d3987b6547c6df42c655"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e34c12788572dc308d6404ac2fe3ba27605e67f1b11e77180cfc934bfa053809"),
		additionalInputReseed: decodeHexString(c, "885605f723f3db83c30b0ed7d8e5d8801615be1d4a3043bb67a7f0c17c146c78"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d687fdf6bb4f3b13f613e92a5792b75bf297b9969c2c9e44eda6450fc5e3ea2"),
			decodeHexString(c, "0deaf55047051c9f8edcb28e0fe4367513eccbaa18b8d7ee438c59f0ef019a86"),
		},
		expected: decodeHexString(c, "ee74d44e7f060cb14e313d632a36b5bec18d290d7e507a964872ad16573d271da6fabcecf799420106819e5e7e3d0a328c5d835caf67237e61beb8421a11fe6380dd42f242f7ccab71bcf67740ebed56cedb5f9655416786f38476da4a8639f62880650a0b92285e97f1dd540e71928a8e3823efaf5862343ce7ce6f0b5b5b65e74ecb2d8619eebeb7967916cc7f1e52d4fb6ff015bf15e26b08671e114a1d88a11238568b0832cede3bbb9b25bc0d7a0d20815f007393098073243ac4abe055"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "79a12d037f4865d37d242dcbfa6602d26d5b9057bf0fa117d92cb54bd99ce26d"),
		nonce:                 decodeHexString(c, "fe40dad846f132dcd06c1a87b16c1748"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d09bf2de4f6228d74388aaedd1f909f0e0b44e35b837e0ce17557d3aa5edea86"),
		additionalInputReseed: decodeHexString(c, "a9675092cadd8d7535c1a6b22ad7a0e5f76946f265a643f3d8bd7116d0d7562d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c2340ed985be03b07f1c2e0d332cdae494912dbc8480c752bcd6143c5ae661ab"),
			decodeHexString(c, "675aa3d7d1019987c2046b3758933a121db4609067c3b622384d504b976ff97f"),
		},
		expected: decodeHexString(c, "42fd0e14581a05a61627e0231e4443279a2117dff10122daa4700deebbb5223074034d4f8cded99367885d1932fa84e854a1955bd4e4ece1d395a8eff7b4d7e5386232038a7c4f4ae536abca303e911cbb7539cf70d618e98adadced3018f1dbcd4d4ff9772030cc31aeb1543630b1338d2aa52782c3ba0425e3d49ec2396bbb6367a106e87e178d5f02f8d1aa6f3a954ea727d43ea6089904e8178d21512c0861216e9d1efcc1e160246ec80c2cc11e14241428372785af8cdbdf710af2b902"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7e6d9980270bad5b893f8f627038d63111f2ee9c55cfb0cef04dfd11bcf6af2c"),
		nonce:                 decodeHexString(c, "23f1156eb3c544c15cbff2a029209a43"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fae5a8baa27990da2d0666946d139014d2a92325fd04c7dfd8a9f12b1e26f577"),
		additionalInputReseed: decodeHexString(c, "a130fa1f2da080a4aadbbcd8444651acae9c5066a3aaabc20fee8c074603fe14"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a43fe1ee4b63a138cc5add19a44b30d00a562c56a10eabadab6dccd2049a1e03"),
			decodeHexString(c, "01f72080dd0a8f472b1b7653113bfc779fef4ca88037a9338a57976388b2689e"),
		},
		expected: decodeHexString(c, "215673057455e77495b93e8982b8d3cfdc851c1afa0a03f96690089b112be62be285fd70020d300ef8481ce1252b1f5313c0cda3a2420ae74b63a0cc0dc54c429c3efdb3f8bab27765a1fa3ae4882d6898ffb22bf23abb91c5fbe6a65eb845bebefb98aea0026f95a513885ef54a8014cecea329b225fdc775451797729ca70df4c8bac94f1381c08181910f1cbcc177fff2b62e810070ba50e0da03e482a08b1d4ebdf004b56087e57d15ab6649d07f99db7ffae671e9cb4a0f30a97532119e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "150d74f97cc5d1f8f015711da6e0b74fbc9d2bcacb026b5364409a975b7565e1"),
		nonce:                 decodeHexString(c, "58850b3f7a01df7b4fdd031b08fad6f8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "43f4721d3b33b8d0c0022220829c803d27132b923d6b598f45c068b6a99253f2"),
		additionalInputReseed: decodeHexString(c, "2c529433c61de1b0252361231c2362417ae34900c32ea5986a195aecf4c8b46e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e0d72f10a0241e27b28a66b6613b145871b194196b26d84ae64e35d424f6f4d7"),
			decodeHexString(c, "8fba18bc1f0967549d7527a49ee84589a3791c7e7ef723735d2e7fd93fb087f9"),
		},
		expected: decodeHexString(c, "7b5fe4730d60cf2a1f878396ae3f644b7b6ed08d290fbfa936fb38cc0ae402288b3011e9ba6fe4f1b7253ad5854fcba12ada5c83c23aef9868a958163ddb4aa07a11aab2aae7979df456cdac3ec96d36599941f0789dc1db5d6510592efbd0a6051ee25973199017fc4057e1da26295150015f9ff5066390e2327f548f76f1509cdea4d6b62ff404ba1a7cdd65af2eb658ad14937eada087f48823ae7b86cadaa2bb5691925b7b5458068c4524db397a999560918629ee6fde92d78b59f9b27a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "54855241ccd11d165e9edf8243764e874e441f7e741e920d648f15431b28b2cb"),
		nonce:                 decodeHexString(c, "e7002c35fa4df3696a38c01006a1fa8a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ade9b69cd2ddd4f9d41a1fcfd1f7dfd80e91d17bce843bea83be473213023fa4"),
		additionalInputReseed: decodeHexString(c, "f86309ebd361c2b6e16d53469aa2dab53c0fc210f9bb33c1348d5e96e4b8a7e9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b7b6b5d73e1fd46251295b5998043e595df5ae8f05336e1612109a9a6cd4fff"),
			decodeHexString(c, "8ea9b5136e9e1da5ae4dd030a8e6819b1d14c6d712f22bef9af7a9ced9e057e9"),
		},
		expected: decodeHexString(c, "6cd4bb7aaec4267e223c8547d669660f6ba10227a9628987964d9d1bc6af9f023325b9a3770740dd68fab1e9fe0eedf8aa889dbb032c79004920933cee9645e07592d78921785aff013731540b98834bc72fca00257bc7fc566465003d7f4e820e4be3c7265c8b2566510f527e5ce36d03f1f416207b54a2683cd66ae43dff1ab190a480985b755d80090bb4539cd38674a2bc07ba0b49bacbb286a57ee72a567d6b3ab171abf5868ad5040dbc16d3336eb62dbc32b4978e331e9c947e4dfbb5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "beb9e3316c4160c98a8ac72a98fabf2e400e5c9d9ba46ffd9c9b00035fdf10b6"),
		nonce:                 decodeHexString(c, "2818dcb40e17e1c96c690bdc574f86f7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b82bebfa2233a8d973880ebeff77b56eeec4ac06c77486b8dca8d104dcf873df"),
		additionalInputReseed: decodeHexString(c, "ef93a7f2a004a8a3934ab1f880f5082fc00e89615752d8ffbc792af3a6283ef9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a6203801befb66b56f3ef7241d33367c55042bcddb11104b3f7080c5c127233"),
			decodeHexString(c, "95dbbcc9e41f9bf87d07cc85b540fc9597f5498595aa7d1f6162b30235876004"),
		},
		expected: decodeHexString(c, "1886f46eb7cbce6ad78a230c97c49dd4357e5bcdb5ec364383963b584068d45bce4b6011a7b0ad3560d351ef12ceae9a1d3373fb5e23fa7f3070f45d001ee8a8b39a2b7854ca71df4361366470abd40d9a8288e441e11e5d28d82b0ec446e1daf187d4f8b99808b4ed624c09f014b74813fa65e50c4a38c9730b52754a8bb5e46474b3bc6fcf1bd876963c2b85bf351f886b6a7e153fe07f7df1d1a2435e47788de13d6a182ed0bfe7ac4ddb0ac511d5c32f40f9157414538c360bab7a1592d3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d7ec482f7868fd7e1c739f8c78492ac786cb7e85bd8dfb023d806f0d2742ee80"),
		nonce:                 decodeHexString(c, "8efacb48fbc8169453fbc89fd53f741e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ecb0fb4b17f8771736260d01ce07bb76111a05378de06e7a12e8133674f54006"),
		additionalInputReseed: decodeHexString(c, "ed4f4e01b82544730dc3fa3a6a326f2fc983922df259669b8b381deb61dc5fe6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0684c1dcd1f44626209647be5493c2bd22f2731e4424bab9dc958b34ad889bea"),
			decodeHexString(c, "1cfb501038208079c13155e79dba5e8236f2f7a58dfad267914356b1f90b865d"),
		},
		expected: decodeHexString(c, "443a13c4e891ce5a23c645e02aad2a7309ca1a57a73a84b8712494a1ce7852c35c1f578727bde6cf8caf7a5bda3504c1bac1118421b63df6311fb32180ff89c6ac04efc60a93f1f9e820ed5036bee312d605197cf99bccd208d130ccdc5415f7d724842d841e80645b087ebef5ab305679c14c7e82dbaa7547f4d264fb78a7fb2d0ebdf1fbf03308fc497795d4aa1b8287a4001c1c1041a35fbb85005e4debf1def48d4fe3f771908b891f15439130da0c12e16f889990fb9fc1838a5610a45a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e0dcdc14099ab737c0d0b0c8c3572ebd3dbb28f42834147628764854e7e81f50"),
		nonce:                 decodeHexString(c, "eafc0cb26af09f7e7fda9a6ab230726d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0d25df4d6d913354b49f4ddabeff6d8dd328d06fe1dc6bcbd69979e3a3b691d7"),
		additionalInputReseed: decodeHexString(c, "ee71107ee3e042fb3964664147dca2f90221faa6d81282e5dfc06bd6b11de2e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b3dadb744e56cd02c8793326fb24157c2a724b5f632c0b7598a51dfeb059397"),
			decodeHexString(c, "df1a31dbf2507fd055b3d8e52f73fddcb7e73afb9bbef97d0897660f8bccc1d5"),
		},
		expected: decodeHexString(c, "d17ee42809d9ad363982daf009e26359ee0d70e135a11ab60fdc5525649ce0cea8046e03f75c5d75b2bbbe50fac6ec5e2eeaeab63dc9d5fbb74bfbe7878c7a866766f5ec4b970906cf3755c9d847657f242c55582f1bef75a11dcb3c8f6dd6163eb0c3b53b9e34d44d9a55492f5555acc76be483e3ba79d2ca64a446ca373e6089557856593456c4e7b8132f2d591e0539fb0b512caae185a7472e16e9de25bbdf090e72f4be07b8c2154e18299d08ec184c74a57b48d09860ad47672fb9e976"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "4bee2e93154ff1965135208991cf9237a0625a8e1f142e90973bdcd4481b910a"),
		nonce:                 decodeHexString(c, "53982a4d8069110e2b8056f9c5628939"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7105a8266dbb47caaceab8765d985090e57e355a3fc20288e6b866c39bba42c8"),
		additionalInputReseed: decodeHexString(c, "25f8f7d4e4e14654ef2c6908abf59e7b579c9277e505c6820ea4ad0595d59825"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b1a740806a202d5da0082ae56d69382b378a482db44d7ebd097a6042de6d9156"),
			decodeHexString(c, "e7af421379ef377618de862d95e09165c89067849fa11abf597953dd09ce70c9"),
		},
		expected: decodeHexString(c, "183cdc530817e49c40cdd3d01508f027a4898f47ae934b25b725758fdecd483dee7461a0b37604aa585a62d30e23bd3e1b053bb8975dbd608757b05db95ae449931e173b7280ec5385ce7e7f029ad40776da9fc8c84cd2c4c63b5a54223955a5f158cfd8afcdc869f7bf1d99ff4882519e76f02c2e6e62b27f2988a5b666c3030adb729c9a5a3f257310ef1520ac77577539272ac896af5cf3f275e2d664b05f90f00b24520580d4b3e45bd836a6e565976b5f68c7f656d2629438b433d9bfdf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "fa0214d1de746f23696d96ea5f00c22bf573ab047a1647c3d37511520cb9b4fc"),
		nonce:                 decodeHexString(c, "22af8732362df8e472659292b1d1c8c8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e33a9858a48594b974c1c72a06ebe09f7b0d1a09f9930e862e22c1583eb92654"),
		additionalInputReseed: decodeHexString(c, "fb057fb13a81dff9571d7c04afad90610eedddd60c2540f61f28613fd0892438"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ca14f3ac55158ce52330c960dfe0b8ca3f00a752591f947f4904caf0483a1ecb"),
			decodeHexString(c, "6d0116dd3915a461620d84598d766685961d862d539e98be2d1baa48ef976d3a"),
		},
		expected: decodeHexString(c, "8a6481729b3b543419d8f9c217b0c90a40cbc8a42f55f488a0b464f53f8f1b0b0744824acddf08fb47ab4c771e97265875e53feb3f9815f94b7124970ccc80b46ee4832d611b2dbd021cdb84c27c1fa051d091904bd98b4d210337eee56341f778facee7fe0e1bbcdcdddbfee2ca0a0ea44eb3237d67026bc2d1f68b6211ddccec2ecb2b8901e59179390dfa8a675924bd9b923cbbdbb7fc9581ea0efcaddf1821fed432f8953e30648a177262772e6668ba33c52d875c8b5ced8750b90cced2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e4ae2eb4f1c7fe11bfebd16fcf9770f1097ba9982e887c4540451973da009712"),
		nonce:                 decodeHexString(c, "e2f4f875fb6dd698f8fbce455e6fcc34"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0eb51a0eb55cfe69c9accd9390af2c79cbebf3c4fc5b5af1984c283ad5f83f56"),
		additionalInputReseed: decodeHexString(c, "1a3ca6ea56079fe100955ead59b2a30176b755897ba33effa582b8c54f40cab5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8f598e9a83c3df9c07da50d12ebd21f46fcf3d4ee79eb12067f2de8e41208bb"),
			decodeHexString(c, "0ac86d66f4f0ef7f295473950ff0b29507334a341e773063c572339e6e165e97"),
		},
		expected: decodeHexString(c, "3adc8c50574b0987c33987e148634c9fa64bd77ba182d33b695271d9c3f5d9a3ec506d55c9e61cbda281c4a955d9a3f03a70a2627f9ec69803b04a27b2936d155c28d3cb1fef06ccb69bd1e2d7ad27c07ec2c88fdcd5fd34c96e17f27a60b5a676967a31e22b497788e47cdc54393ef6c1c87e29bb3fe0eb8b482355fd69395036e7b88d355bbd88af8b3af097c15c051e188b34aa8152dae6629849db3086aa4a8b82d14aabd6c7fff9dcc1df5eda3bfd5d1205540e2fd068a43915538abc5e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "dfe24c46e7d47be9aff72bec236fb425df618ac1181349bc09059f1b955056a1"),
		nonce:                 decodeHexString(c, "35fb9d485ca92b881312f1fc20e24fc3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "acd99b9bd2072267cede7691950d7411f3f13f10b2925ee8fc01d53347a59932"),
		additionalInputReseed: decodeHexString(c, "61073170fb42a40a81019d6154ab906b7f0fa2dc42548ed1ed890f529414f002"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d4e9a2ce4f87d8497667f5b9ef1abf5c68f6dc183f51810a03a59300cef7d022"),
			decodeHexString(c, "d034e4046ebe9826c820e149faa0492049ef6413831d966ea313b68003633395"),
		},
		expected: decodeHexString(c, "e1c61111881dceef937b20fb8e55a189055da1052108277f03c96e4e0e26f28c58ae4c7eb64576d7a7c36ae39abaa3141fa8e80a3325f58677cdfc00687ae478270ddaf41a095581c7ccc61926d19f6310d80874ef0339db26eb30450a7357f69d7dedd815207c4e35d81ea56a3ae47b864df1fdca60a66600751d965e0b0772b7aa775e00671927149ca48956cbea4553b9a2693570a01ec8d1d29ec0447c7bcbd58d387249cddc8db7226b3d766a7d6cee49f27be4d07d3f131d79166cacf0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed49_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed49_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "264e75ffb8b39bd67e5ab8c9da2902f68b7fc1fb68db3aa23c8058eb9407a76a"),
		nonce:                 decodeHexString(c, "8d6ff33cbcb71b2d0b972e17d97c0b81"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7e9a57a924ebf874e2f3465d71661ce1019e1dfc6d552bc69f13cf0a5fd886e8"),
		additionalInputReseed: decodeHexString(c, "da62f2bb6984ff8d488311da187676f6d4007a3e0ef14e9456b5d7bf318a9235"),
		additionalInput: [2][]byte{
			decodeHexString(c, "855d222ceab7c2303d73f6748097e82dd0efbeab6d543a62993e248b2f617972"),
			decodeHexString(c, "d116e25161c960248f1ebac704a1533d978e7d2c78ee4f33ed95686f289154d7"),
		},
		expected: decodeHexString(c, "edc93d49fdd159c933ba28ec7c0b1a8ef9cde600802e48fd1b2bcc511bf4b4d4751962fa70cde8f4a95b057c1f828f5d008bd54d2b2d9cffa32597e195a029492cf94fd4e0733730a7b3b0796f163c0e242f041b0f9e8d5c5e11a5961c3bc7d6585991d7395b371b4bfb3fa7449a94aedbf12db5361c7759203a05eb1d6da440018fad7bab27701400a2f0285de81bdd35c6dbdf5039a3a311077104d3403bbca9dc887c4cad1cadeed9e4a3b6461903c3162aa5ae831359a4a4b70f2a2f06bc"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed51_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f411e1feeccf01c0d4bde61ca2384a2640b41e383a055b374e0acfa8170c2f28"),
		nonce:                 decodeHexString(c, "7cf75b960dcd0a0a9d2a4e7e8d5e47d3"),
		personalization:       decodeHexString(c, "25d6dfee3e74d3b6a9f459094203fc76e0e589fa879cc445008c80e3736fc0a9"),
		entropyInputReseed:    decodeHexString(c, "d222df563773906b875d55dc1aef90337ff59fc3ca5ed0af5e46d306d630c7e3"),
		additionalInputReseed: decodeHexString(c, "07a576624662253737789e543734d7c35ded8d74a3b53919b1c28c21a2b5ebc5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2561c8591281f0682d3811387d0cdc16c137edfcc9527134212701f73550c572"),
			decodeHexString(c, "870441d9435f2cbf16f1168f50e32d9b8811be7adc10a5070c5eb993372c5732"),
		},
		expected: decodeHexString(c, "9107af002a8bc3e0f0394eb0db3a801ca73844db0600873d1d576ccfbdd88dfc3eaa101e52e4c4ad9958d9d0e5f1eb555cd0d93ad2745a1302dfead60c42ef28e7211740b1dc694fdf72dd066d1d66a58aceeb9a8c6a9c67a75326f97b742b85e7abdc853b01bd799bb9f3e8e6b5f2a41919543b17c0da4e4e25f04e1c2859a56466689ab85c46cb9f593abff0f058f7d26f2c09e379e5e0b6e123f24fb9bcfba9a468dcb38a9577d63251d20f09b8d2b4dad74fb52e1e8dbdde6e0436563d66"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ea942580c38fe2a61e9c6c2197c3795878a0bd253c9037dff668e001740ad0e1"),
		nonce:                 decodeHexString(c, "2de5f7a4e10b884c0a65479dcb73b7e9"),
		personalization:       decodeHexString(c, "30d76c95d36b272e97b548e26ba3372aaa82fd0fca1bb3bc6cbdab99c4633f0e"),
		entropyInputReseed:    decodeHexString(c, "47a372af41f6e48f322b43b25059542bf2bf0ed0c0f718715f83a4efc7ba2fae"),
		additionalInputReseed: decodeHexString(c, "95dc648083f1523081e52cd6c4e22a388e618ba8fed3f7a6e28aca763949adc2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "96833fc4e2eb83ab50a21aff86c8d6581cb4796ffa7b8b85281f7cf4db74afa6"),
			decodeHexString(c, "52a4425acccb43e74d33cf23e3458c1216192ac20b3843053a3005c18a4b90ae"),
		},
		expected: decodeHexString(c, "611bd6aba0192a028253934e864c2cd14adfe80bcec9e2b0e56448e65f4e691c4133e7dad7ab3cf3d2e295d69e142a95aeaf4d6d5875916374870ad5123ea364e960d93dfe512e28fefdfa2ed5097947d9d154211aa8a4ca89c6eaae9eab4dbe9ba8b8d7ca37b9b56ccc8e8efda6aeeb64acdd73166c7a8b4e7157a53236a77620e8c96bb220bbede276a4e3414f2d6d96f2f875e10b6209815e20d8e252c6fe982092cb7078d3b539c3fa31b06dba7902137fd80bfa55f21d79695da6167370"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c18bc7a1f600be34357dbaa4f5a57d196b3a1896df9e6a5d23afaa54e75a0d6c"),
		nonce:                 decodeHexString(c, "25cae1e3b58826f2a5676a1e48b7ae54"),
		personalization:       decodeHexString(c, "80570ac85d1ccbca7030302ace052e0d864a062c15c27ed564c0d28554a42d79"),
		entropyInputReseed:    decodeHexString(c, "38212d0e84d21ed1d17095595a666a6bfa7d973ba2e4470d8b15d44441855acc"),
		additionalInputReseed: decodeHexString(c, "16682c713133be4ed01118ae586d739fd4c5d586050376683c5fd5b9c26b40d2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "061867fda15bb1fc56ec674c36ae06dbf1f50d7cc71cbf6f9be50c05622b8a4c"),
			decodeHexString(c, "41b63c48a6fc90a3b3ea2494527afdc23a39a674b91a5feeaaad0505a394d305"),
		},
		expected: decodeHexString(c, "732e4f9053227b80589e2cd0a0d47714d64e5e4e1357c392538c0a8c2ce37cf2a8c15d228615075b661d55ad65de34ef58d2582d5f339efe740fabf47d0c7caeb69220623842b815f8a30d34a36197d8c3264624162a2e704b367fa31df1469060baf5eeb2126c1272d20385df4fa40b22842237877ef3d7b2f09c0c462e247e38a7839c56b6bf79191267ab7efe6b46e37592c537b439ea27c6279dd31a8e44cd6a7468e061194a20db796f8098aac7969ab85506d61f6e1531e5dfd9602211"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8f3f31bc61ccb4f15bfb50833ff301e1528d9b97208e2111d59f3ad389579434"),
		nonce:                 decodeHexString(c, "c171f219c534a8ce6d52f6b56f3ed65b"),
		personalization:       decodeHexString(c, "3da1986ee350a9861bd224917db38127127cc978f8f9e7bc11b98dc7e4191c00"),
		entropyInputReseed:    decodeHexString(c, "33f6579b41ef8ece5b059c70ebc32c8b623a6c0d0c2d67bba0be8a57d8399594"),
		additionalInputReseed: decodeHexString(c, "7a74c99c7c7c25af30311a8729bc295e1f37aadb62ee87f180ccf11862110703"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b1b6059c1949d0e7fb5665494c2e596f74ff897c741de64a2512460621b92658"),
			decodeHexString(c, "209202ee2ff620d1c5e2f7f408b26a03a59c5c8dfb2d6856ef1f48a579656a7b"),
		},
		expected: decodeHexString(c, "6f0f852a406eb79c91413a81d7c442ea4316f4b48ffcb07c3079460e24b70b8cf0e6d60e924cc2f4480a1531548a82d841bd93c918295cb814779296fe50e1a9a0095d8cf5942c149af2a2eb39927792509871e9954caa815d76856f607bd6c20775a272c8bd70bb9e453875bd98ae2890f0e443b1609bd496433fa755a9e97e78bb6bc6d237a4d08d14d15ade4966d55191cb983b1c56e1ac96e225bdc4f385cfb4b97ce71a37c255f309210da20e45bbe05f154969b5ee1a7192d88e6aba72"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "636a5f0e244d80b8818de735904bf53f7e7a410d5c0e2161b23811596c28c765"),
		nonce:                 decodeHexString(c, "b4a9f5494458feb1dedd8513506d6f4a"),
		personalization:       decodeHexString(c, "002cca42f8d06266ee4a203c3ce9b8ed3ffb8db975c1377eb3708e9bf711596f"),
		entropyInputReseed:    decodeHexString(c, "94a8276f1d5ea640c08a3326b01339712b9377774f10a948d7927c2b27d40f1d"),
		additionalInputReseed: decodeHexString(c, "cf338301794bd25f3c391e2ab1f14573dcd3bb097470a85e0ae306a3d0317922"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2f876c54c16dd8084bec2729fcd3145daba987a53ceda798bfbb3e0e328cafd"),
			decodeHexString(c, "238c2f3edad223d774b7f7aacd2cecdcd3de43510e3710911e85a7224d32060c"),
		},
		expected: decodeHexString(c, "280ea2e313f3cebfd236c7a8710624b3c3c11b00c34774dba12cb41a4e9168852c97d0095942caf9b2b2441e2ed7892f09566836f89ea46b9bab85b9f3fafeeb512a8771be2c6957072cc4e3705a64da1d14d32e6c44c5446bb7603f5e364dd74bb6d157ccbc191621f249357619588041120e907f8711a1d1aba88a0865baf4f889f4fbe979553ff40add189a5c1027deca80e0cf0951594f4fadd3161745c414b6b6701fe7b66db578b79917f7c67de4d576bc1344d9627c2e3ea9019ed214"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7aa9dfca122793236de2ebd9c4fe8b85657e5c0ba151cd6954cc88ea8b65ca61"),
		nonce:                 decodeHexString(c, "47778b87de8ef52fc961d1635766b5fb"),
		personalization:       decodeHexString(c, "ba6a8366e7cd2cfb9bfa7a50f1a0752d53bc818ba62377c93072f195bf7c14e4"),
		entropyInputReseed:    decodeHexString(c, "be5a4b2ebca0037a9bc2287c53b955a676f6152a2a8abb6e7d351746e963a714"),
		additionalInputReseed: decodeHexString(c, "3f5eb0375d877f56bf4a200b6638328a30e3e05faace75a87d50823e439f2f3e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ae87e2d5a11f1439e5e722ddedc2f0ab86097e80b5a4fb5400c7ed16b4457c6"),
			decodeHexString(c, "bac5bbcfcc22d2d14c7243e93319ae32bcee15cc6f0beb9a8a39e08f39706d01"),
		},
		expected: decodeHexString(c, "1fba482f9c1bd3f37b715adb2e3a720a39b97d3c27417fcde755ecdd5c3b48a93ecdf3058d4b8bb84c10182e65c98716658a91ba89e63c9101450e33e9a3386336906abc701618d73d53870f8a837cd60adc07b8be756d835eee15ea1c6e2a6fe7f05887def4b20d8ff368e0cc83f474a4d329cdea4ddfe79a2ccdceb12719092e1d6d397c362f18e49cbeba07f21d48a7f28ddcb7517140d98222e876f7a4b4b9325605742b1e05e4ae147b1012c0a282b2c21608df2bc006f9ff7f77f0ddc6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6dc70275e5a73d509acb50879af5c88db891b1004696b026f6a44e5bb3e538d7"),
		nonce:                 decodeHexString(c, "252b56149b90f7cce8f1a2755e09f455"),
		personalization:       decodeHexString(c, "6afad10734867d6cb603ac577d3d0b1edb9c320ffac1356cfc6d96e3b0fa5a69"),
		entropyInputReseed:    decodeHexString(c, "94c1f0a7c439f05da20e687e2625c895a65bccc21efb338c06346cb891b1a50a"),
		additionalInputReseed: decodeHexString(c, "7a27f7c3a99ba1d19f95c13a285b7d1b5464b42aa3ad4634764061c2210009d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ee85551ace764ae0ac9396b8c90a0faafe16ec5c74241f09e64498c42c5625f0"),
			decodeHexString(c, "7506d40f191048a9b4a6eb9bb1f9875863c98e82ba80f05dfc858bdec83c6fb3"),
		},
		expected: decodeHexString(c, "76cd185d1dee33972c1828bb1d76f15e24d31b2f8469da442556bcb7959827ed6c85c3983c297d410b24498f1dcf13c57347563c9972efadb90c4e0f58b0693b9f06de3bf01c0fdf11c8f300667f9dfb284bd88cdfbd450a12724f82b967fe6b10024efa3b04b9779e74e31e73eb07f5bdeb0d276f4089b5c806821f1c71e40d293ebfa5ad2b34dc76c4a24ac814a07da34a369cbce7cc70c6f1b9186969021fe6ee80052bc8abb93b206a310e3716cbb5e2bf4fbd63a133fbadbb1a878c9ca1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "9f563b473448b1e5771fcc68598659d2ac71acad29df9f279e3a273181724fb5"),
		nonce:                 decodeHexString(c, "82de7f15432712213784842d8e148e8a"),
		personalization:       decodeHexString(c, "d5992b094cca8b39c13d1e9d7e2c71106d003f85c7571ec665260d5471e600da"),
		entropyInputReseed:    decodeHexString(c, "def8924a3c2a7e171ccddbe83c6b3662a281106ae0805dcabf2a07b200e80415"),
		additionalInputReseed: decodeHexString(c, "ce22dc0d50181523da1439a87967c7fcf2408ee066bcf40c31293ec90fe437ce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3ca6a107cfc8bd305059109842324e4c36a1abacc857363636f398e72cf867c"),
			decodeHexString(c, "e5acc4d7e1dba248c00ee62f4cab534d917502799f4a5ac2af18941288390661"),
		},
		expected: decodeHexString(c, "12c8a5056fb966db1d9321803fa6fc7cd9a708ddf6678e11a6bc9900156277e028878bdd5fb8745e5cb74b7de3751bb55233dc39ebb220154a745597cc22304c202bb8dee622e2674676d78f119e5b299656fb60608bd75187003ef479bf06c5e6af0168b1c8767090328978e1b1e438ddea7bce8e2f859dc38f62cd7df9f42dbfd9502ef4a5a94406189ed4d35446a7d1c7ba23f6c941a518bf2bcd4debaef1335d96e9ee69840ec5bd8560ab530ccfa509c1f9b26beef3be2ec8f646adc810"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b3ca92d2bf64048e96490e01b7485c24790d83e812dc8a5d727c6dab21b3d95f"),
		nonce:                 decodeHexString(c, "7b4ac14730ee185bf33ed90d1315e144"),
		personalization:       decodeHexString(c, "051d6bdd4f4527c4cf375efd9892f986a3936164cc81fe7dcf87775a458f5936"),
		entropyInputReseed:    decodeHexString(c, "49f6beec788732a762f1803917c969404ee153ee5db81289499f93b1b3708f4c"),
		additionalInputReseed: decodeHexString(c, "59a25cebf8ff95f0834cd9009ee3b20d431195bf2298fec826b6ff0fdb700d7b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "10f62a2749ee8fc2e4d7b067f390cbf969b05a8be5de0f866c6d7f90e99545df"),
			decodeHexString(c, "decceb212452be23deb5c96ce6476a0ccf2bfb942967bc287aa51424c130514c"),
		},
		expected: decodeHexString(c, "358c48ebaa7434a20880e014a793009c291cd2a5f570eba2f7eb3be44dd983a49046aa59945b7c04d3d37f312d329471887ea7eac33db9c72daa493c53939109c41189b93e63c29294dc65cd83cbbdf6adfc3eeaa748938560603bcc31f8c8d7a582a7d14fd2b2a98e7e34c4e82dab2fee9e5e17b84145e1fec785be261993146f8f03bd277d6c6646e2eed0ab7c6a9fedb3fe39781a42668bb397055c45f7258564295c280ca7df89971b1d67063d3251e1a75c2844b359ae85f8ca849ae3c7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f6501e8634912c63a8b44b1bc3f629a6de0ae37c900831f36be820842d091275"),
		nonce:                 decodeHexString(c, "90b402554f678b52f17457bd9721fd56"),
		personalization:       decodeHexString(c, "da44c8ae746c1bdbae05b024ddaa3789756c4e40635949764c5e8e5223c7d863"),
		entropyInputReseed:    decodeHexString(c, "05d46bfc1cd4e85f684604064da460ec821a20dfe1105f334608297056cddb12"),
		additionalInputReseed: decodeHexString(c, "ee9319baa9fb8cf7e19a65798e057776f9e6f105a5fa55f5cc6a3623698d36e0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b0a091115e9ab0ccadd3a80243ad901edde4ddd364489b09375d999466ffac78"),
			decodeHexString(c, "fbdb656e0a92648d4cdc6840124c20eaa0070878721e51c4e9a7e3d5e4de4e37"),
		},
		expected: decodeHexString(c, "ee3a6aae9f7ada18e9b4ae6b93b9724718774fa7cdb4954d555204bee96ac2105757ea71f431dd90b5c2e8a7b7dfc97b7422a350fcafcdfa33a8f2201921bda45a5e171ff5e1f6f55c0b3f2e1aa16224294728e71734da883727d9f4dd127c3df4fc465daf4267fec242f677644798d38ea007f41bf4cde6d0d43821657a0e8483645ef4b96e27db684f5658ce8918b80bb5d691984ac5695e0aafd5d3fbd087c621d7ff368a073abb0c9fcbe49de47bdf721bdf6d636f03d9a0d3bca98c42f7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b91a02907a7f03bff31ecc80e375296186b6ffbb13c13e1713668348ce260620"),
		nonce:                 decodeHexString(c, "42c94945dbbaa518d2a77f458ac9204a"),
		personalization:       decodeHexString(c, "624b2009276d7e7c3fc6e68892467d4dba3b4b6ba33698422beec8f9c316a23b"),
		entropyInputReseed:    decodeHexString(c, "6ad28ca4143a5ad24e95137c7f2afcb36d46ad47268946ac7d1d56c23b06168a"),
		additionalInputReseed: decodeHexString(c, "095ea77f31e52db2cef7043bdf1107534c5d89d1bfcbdd475666f6327affe6ef"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a6e55f8365da6b7d6292e488c3031174ff91d563f3d9cf9ac52b70d0c05cccdd"),
			decodeHexString(c, "ded47b5440a0b6378ca94c85c795dd57a3cd3829fa0d7b5e5950dd93a2589498"),
		},
		expected: decodeHexString(c, "c7a42e4ae2bae922995408b2c9e9646cfc9da05122b49cba1319606fec2918cfcad2c76b70525634f7642492ba2f1aed418e2aabb2c17cbb7506b9a30385afbf95bb499903d6118aa12be7e67ff8301feae259b0529463b1c891c290d14c5324cc379f79bb1f5b1034079b4dd7cbabd696c1969f2b1a437d52107e14209e312e3925b2c5aaa8377735dc573fc460f502670d47cda77549d08725920f36d4d10e95a30729b0bc3471b0b26319a55b5c86009d87576146e6296b51775beec55547"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "232e1bf5545c13fd207f37153117b66d4bfc5425d9d2b1b291b9c94fbf4f40ab"),
		nonce:                 decodeHexString(c, "dba71b8ef0a942bf2c1616029572c7bf"),
		personalization:       decodeHexString(c, "11e0ec7e96d22d4db760d99f03671816e04ef8001d7873de8e8351be8e7bc39c"),
		entropyInputReseed:    decodeHexString(c, "663fc6663d5281fdee1c6a643b28c1c87e9c2911da3cbfd17b687dc0615478e7"),
		additionalInputReseed: decodeHexString(c, "ff2d0789bf9b8d76317678a48fc2311843106aa1e6dd39387cb65dd895483926"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d27bcb5825e67ac560486a70ccde5a2e3b20d117781a425d25f992084deb313d"),
			decodeHexString(c, "be41025fd274a40c41bffa56a9df2ef72b0063a10993d56284a86f8e8e9f3c91"),
		},
		expected: decodeHexString(c, "fb9a465c99ddd6c3e1162ec7539b2662096397bd6274c1fb2fae9d24ddbe0d28d94b0d54dd9fdb8645cf3d3ad106f854fe7469672f467d518be172e80df0ac65b7c5c1150c04d25df762d243f7a60786ed817756cf58620dea09d89e726b37df7569f474d4a79ab56c82c6e6fc6ab1f3bc5468c7f30ebb7f133211e4ca9cc01de4285494e01fa4b8e925b59ea56f97f412603f6f07a102cbfe75e04ae8ad1d03ce49366912badb069266cc467b8f6805cb24ae185111282c6af24438a6f0714f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "045c359307e388fb7f046ef9286e5b03f019ba0c3aabc416f5bed4b76e711795"),
		nonce:                 decodeHexString(c, "d41af5836f28fe922f73271694e57fd5"),
		personalization:       decodeHexString(c, "1b5ec47e5f4e30ae087afb0409508729ade418825e6ced6a5c90f88ff29c40e0"),
		entropyInputReseed:    decodeHexString(c, "afc0071e4ccfe6c3039b9258d9eed5bd98b3e0a7a7d0f4c60e64b255716750f9"),
		additionalInputReseed: decodeHexString(c, "c814475f77336df248f20ab7e1b5540293d645d478dacf1c64676de2187c9731"),
		additionalInput: [2][]byte{
			decodeHexString(c, "139e20e8e383cea63669bf2cca6b43d76f1133df8fef9821a5e402d3fc3b8a66"),
			decodeHexString(c, "8abdb9c0f1df932c7c28786727c4a263a3676d1865f3ea61dd68bcffa46aaa24"),
		},
		expected: decodeHexString(c, "1ecf3495285807b58d4f7baf59c184766ef65cbe6825c5749f45cf05db9b2ef0a712a85542f5e8bcc08a29d114ff65a59ff91816b361d1f5a982192f59a47451bb5b5bddca565f3ca924ec4178bf0dc9ce78de1f3f3e421ca7a70b5aca971135635649f3b757e3c20177ca7eca6ca3d09ff079c953ee09693a9a9ce3a9a3822477b0d13d78f031ee67b385d8d6be07df713da8ed5b8c4cf164146899f71d16d32bcd2227f9c7883f9e45d1396da0ec77b31853b215d0a04047ced0599ca9c071"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a1be78509676117f73f1a8100c34efa25fe01acafb39bcdb2cf3b9733d33c9cd"),
		nonce:                 decodeHexString(c, "8a1e2cb0ebb5131b950f6cb789401924"),
		personalization:       decodeHexString(c, "626e3c96e0ab4424ec95e71141db524b4f762a11cd0f4a6625a23f7caf1a478b"),
		entropyInputReseed:    decodeHexString(c, "70946a0b37b368c2218769c5d43786c56f7c7055dd846f6c29b6c31e7547200a"),
		additionalInputReseed: decodeHexString(c, "b2c97a8161ea655851d050dba3e9f8bc3cfa55446f2e758f9cf3b34ce8f31e2d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "748c53acb9bae2bdd10ebddcfb41be9fabc08098efe1f10e2e7da5c9dbc5a6aa"),
			decodeHexString(c, "10165552d8d7220aa8b7db1f761f9d8b4be43643b5c8161b4a87c6a9d9981f5b"),
		},
		expected: decodeHexString(c, "aa81ef460fcc273f6eed4756982783dad0f4fdba573ece6ece48bc0120a4c088af8e15e35cf045ed01381a8a95de2fc3fce99fee85b7076274a8779828fa3ae34033a3e5be39021dce764c4eb2637e50b975fadd542830515bba34cbcaef07414a7b1ae2ede1e879ab3903fef13e9102f3fbee728fa56d885656b930572bb43f5082c24d9f65d3ddbbf664fdfe6596e11540208eac913259b7723a112f531aa0c734643489c88cf0903459537b36541ee82c3dc003d35de6bdb45b0cc03143bc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed51_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed51_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b610de6f6e1502bb57738697f1a6927d456c28272a203b20bbf82d833f6e02af"),
		nonce:                 decodeHexString(c, "a9c303a9753df483874c32e2cbbe3417"),
		personalization:       decodeHexString(c, "3a207dbef6daa52526b6f2f3a069ab99e3f1c0abd500b1103d3b0d5b1083c774"),
		entropyInputReseed:    decodeHexString(c, "c35db3a67e03cd4c489eb8fd075a2089bc76d7182591c781f981fdc5ca466be9"),
		additionalInputReseed: decodeHexString(c, "18bb96858a10ce7bbb824b5d84ecc6776d3e458db18e8e3fcef429b3373abf96"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b06dea5af511b49e30d0bebc49c0015083e574519d28b8fa91ddf80e592a3c61"),
			decodeHexString(c, "9452d807777239ee41a7b72845eecced4c4d40468f51a9d3a17e346c9f87c55a"),
		},
		expected: decodeHexString(c, "2bcc2f47b559e87f703204e0cf612bddb45cdab51b3b0e0c40d7cabd499a0d07ccbba89c4c0ef3d32bc0da03fb2a78fa13f6f98994c59291f152b72a2df5822333bb7efbc152280f817a8106efabc59aa5a1b2b9df1e90b5aa2c9bdbf63fc84b121223c45cb53296699c30eea48b7ddbdb81ea758d8ec1b7fcfaeb912c73cbe388a1b5a758b37d29b74a11468b04ce9b1ca11268baa27a26d809df3988383d9923390bfe414e29dfc3c0c63da3608905de0428a55d5f939af2e98ea379562881"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed53_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "dd47600892f43c5d7c246af1eef90d061b65648f9686b473ba41ef6f0a019e94"),
		nonce:                 decodeHexString(c, "ed7e3450263d088a1a0d5d157734d8c4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "626683607f1d8b8d81cc04670ad9f6d8bf13f017b04028ed007a37008449d9e4"),
		additionalInputReseed: decodeHexString(c, "3dbed34bd97a16ab7cff173c58c3f8a814d8f49e9cbb41974941b54d95e05463"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6bcf937bdfc2fe9ffc8c8f26fa143596fcec1647b5ed0a8132eed2cc1f62a99a"),
			decodeHexString(c, "49b425582e89270751bc83818f95c7603a1f8baa7f150e7ba0779049ebb469ba"),
		},
		expected: decodeHexString(c, "a2f093a2b87041a90afb00ce7e7c42ba84c763f517c7775890ee5da68ffb93b734f06479a094f8a266174b13b348367e80c73959d3c213fe06a75c6ff47519c2898377dbd10bb4cb9b3cbd65e134e6e58f793f8701d27634eff1ec3b9e50027460533b8f2f8065b3ea313b2afd5301c814f2d0d0ad747e78d60f7c3115d76afe807d7f77108c127756771c6120322709ede9fb24c6326972b60447b10631bad73caeaaa25ee83fcf0e0505568721cc71dc02d641e2642b145197fc6009a369a6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5f53f31ca427fdd246649e0ae659df13f3216a00b080f9df5a2b6753bb323d9c"),
		nonce:                 decodeHexString(c, "92d7925fd87bda0c08668d51f8bd5a7d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "190cae2a40f8fde9c852c1aea6d7b4e08d07a3a6d6cfe71628d02343f9ea0bc9"),
		additionalInputReseed: decodeHexString(c, "835368636221d379c0c2e2e31849ded8c89f26c33a0f4f1bd04bc28963318c1c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bce29e3741fe0e5bb3fa2cdf48afe8066cfa3eb70f158337cb9389e215e7d194"),
			decodeHexString(c, "b25c5a9a4c6b773013ab01ea1d48fa3a33654380f9cab47701743fc2e99fd7ec"),
		},
		expected: decodeHexString(c, "7b9fa3e3b2bafc82e0488d0a811094f628c50cbcb8561b09af8e0db9b50f92b8d494a7aa134a09d2037f3efe4dd459b77c75b9f5a0fa1707668dd172c6b39282482ae4816122055617d7ebe4de4767b3a2cf1c120867b9ffeb93ee44ba04ba19ee897b4834b52014abd7bf316141b3806a642e24971123a7d87b6cadf111b833007f6aebbf66f98649e9e9682182e3a501034c9024fc233aff49c3a761f250051239e2afa4c859d4ee658d5cdbed93c5118bd9f054209cba3f7c7218c45d1262"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "946bd773976ed17356739a28cd17572117a521d3cf24f599759c8c88e36d11cc"),
		nonce:                 decodeHexString(c, "190077a05ff5e22cab229f6ade17fd56"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "34aff07b69351793e8aeca3f5a88fcaa417f546ff64380ddc74951758d484f8a"),
		additionalInputReseed: decodeHexString(c, "694e176aeb0b81c953253e7ca2a4cc63bba0744949c5f1109270c39e904841b6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "74780ab6fbc6be835325a81b424e49ef90864cfc003a8a921671affd07200358"),
			decodeHexString(c, "b247156a24e90bb198c39ecfff45f0f22cf8c99306e565163a79071a79c9b1b5"),
		},
		expected: decodeHexString(c, "19ad50714a645bb3cf459178440c00ccaa0cacd95a750fd4685be554d9aa5b7908a1ec0c873159a5387340d3fdc164668490d8b21d32be42571be09624bd8c1fa78d5040a5aa4b73c4f2e992795a0226dec6ab45b9cf01a27b64ec142d8be90f8dcb7c54f83250f4bad973863339921bcaf5b3954b2676be46e56027fd815115b15181ab194def5059c151bb6c97a54e6452924f83dcdd12b5a366cfdab7301d0a710d7dd45644774407122817d191530e1c7d8431f6c47a26d46e5d6151195e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e9f184e6d81482d86ec4f5e8e1caeab14f69bc6b16baf993847a553a2b540163"),
		nonce:                 decodeHexString(c, "ac227dd1fca1e8142789d532f03578db"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1308b5b133ec640058c9b8c248c8c2acce1c4a87cdcd8a857ad1442156fefa6f"),
		additionalInputReseed: decodeHexString(c, "edd026528dfbbee3b9f106386ddeeb023327c9516d7258ae5588c5a5e0ce96e1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d29b246b3acd5ad430c92aa70a6ae0ea324279b31ccea847677c992f33330b7"),
			decodeHexString(c, "b6eac0ecb5a7664fd079c8fe22ef71ec52bb8585bf083a2a036a06b11fc57749"),
		},
		expected: decodeHexString(c, "9a8ad4ab474e9ad72cb5705fc0f5e2dd4bff8b2447b49bb5d021e97e851beb9f61180a1f892fe7515ec5636f393c712f49fd81981bc075e9186bad318a26eb8cde8f81d945aa21103d9467afe576edc1f4a7fc9b4fe36bd0bbf01623080f90e3e4a3b614d95a2e1f550acb05cddc1c29dd57d7a819f00d863c18528d1c14831ebbec13ca15c39401ad77d72290a1d3094ac86f3afeb30b955c0bd5b762952678f5c9d8ce69aa771681a313f76aaf09d3415a533760774caa4ab5ff5a635869f1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "cdced268dd6085bdbf4b5195c3eb13b68b10ae8e57de4ef81e73a304da71296f"),
		nonce:                 decodeHexString(c, "c1dba690be9d365330f42616310e9dc7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dc43ecfe89bce3209754917dcbc0dee4ccda46339c93abfea06ad07439941c8c"),
		additionalInputReseed: decodeHexString(c, "2584a60dfa835c3fb423fd2ce3988801651d9ff535d5acc6e37921d1da876880"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3fd4f63361afa7498aaf606372d6b092d5bceccc2e92f6fb0e1dd8f8687e030"),
			decodeHexString(c, "b68e78a33f63859c160f83f1107dfb54db85f979e6923691f8c2881bcdcc1ca3"),
		},
		expected: decodeHexString(c, "2fdc62a3b07b759407b2cda72bf44f3e646e5ab3559649a263b1fc2ddc8657688f6d906150f8178118768c1a27e169e23b1d2b9cb4ad3ffcddd2d2d53e4aaee12875c864347242616203d69786abd16984ef89c6b8e1d06e25b6d74e151284d1dc071054db88691fb573c1158b6ace5ff2a0ee5a2e45c197e9346b0f7db16c8f64ee76a145270216dc3b63d7ff7b163996efdb1bc3b137dcb1760874dd4111a00d2aff8e32f02eb27e87082bd97d8c3d2de018edb6fc03d7601a4c5f9a9f5f13"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7ee93bdd999cca295728a9bd3ceac69a5557465ee00ce12f92388d5509fc82d3"),
		nonce:                 decodeHexString(c, "d18f579a8d6f4d38176724bd4580c7e7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fa7ec9a57326d2235832c460e9933e422b44605201775e17e3697fe0b9ff7e73"),
		additionalInputReseed: decodeHexString(c, "f42bb78f8fa23c6c294b04c8e5bd94765e0fcac4a7441d8647ce5cb7cc8e3ab8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a322ca6dd30e26315d4758c4900a3e9b89f01286ddc7c5e08fd1f989c4ad5d1f"),
			decodeHexString(c, "d403a4657ad43492f609ce29497936459b94d5b39d7fbef9bb279a33bfb4318c"),
		},
		expected: decodeHexString(c, "74ff8c2bfbe48172f41a8fed770ee74b47f5f868b454d229142780917031abde9c75aaeabfbbebf14851883ef47a775f2d1151a8916516c8c0c76e3dd13d6ecd7c67e7adb4100a11d1b364ca14f75547cb1f67f3e53dc2f8be2352124c8e8a70a2364a8250cf1c061a3fe10f4120ca2fd52e65349232c6e447086703f09e0b93e0b256651f7341cd7f3fe3e0a5cc16be748d08ad04a4e029dcfd1de0f174e18510b1dc91472890637af58392118db8c2372cae0589db511bb08b7ba94c86d8a1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "edd786bef88030f499bce447c7af2ee35d2283a56ac2c35791722a38e8af1d13"),
		nonce:                 decodeHexString(c, "536068adcca46d6ba48dd27893745184"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8dfd6a15d09a6d344785a059d8e66b4eacf2cf4db1a9f74dc29d5e50f130c66e"),
		additionalInputReseed: decodeHexString(c, "d3471678ef008dc5c623888d5572378851aaecd16b4f6eed31724ad96f876999"),
		additionalInput: [2][]byte{
			decodeHexString(c, "422d4b0c4cc732988d579ae784f99e137fe2a326d207442efefbaa0079149d2a"),
			decodeHexString(c, "a9e42d5245760530a0e4421c926416249317a24d84edf5d43ca2f510994e6a2c"),
		},
		expected: decodeHexString(c, "09fa4b151db58b14e31e5702a4cb72a7ba9c09467e0044a099bcc1257d894ce9ab82b84618d87f2c93e2aec4b46a746d53b7b6a9d2d05abab5b1d1fe333cb615f5162fc635e4af981f455bc06b8d13ac506ae1500f2da52f5b082666e153f66c49917a2c966ccc34401d1da5bb5de04a5b823e5b69f1b3ee0d7c4378bf580e7f819f916a9582552fdf342ff9d6b90376b07eb3d9a5c69c72f4e8584c6ce1974314609498ab4e76e9e93074c2a487af31e3afbdc56006b6fd1a8fd0330adbf052"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a31df22f11c86265f8b28d0dda72ca53f8e147334ee60fc1c434e5f549870881"),
		nonce:                 decodeHexString(c, "335a7ebd35e56e240dc9d661b1365435"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7f3451b9bba6a82797e5089419173bf34cd1c6946fddc7b63ce6c747f5988992"),
		additionalInputReseed: decodeHexString(c, "3fd08f0c2259b6378bb0454af40d095fd25911e25be571f64e3c8517c7dc452d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "985fa1d3eab4892c8c1cf29f4a4ab308e13b05cc4db553614f136b3bf5dfbdc2"),
			decodeHexString(c, "18d89ceea9819e69e34c8c89e6edfc7e02f0d3708633b1454a5c0ecb11119346"),
		},
		expected: decodeHexString(c, "5259f46fb5d3230548ceb3f770eca0dd16989ac8b41144cce9ab14cc9e86b986c52d46029fba21cf08b6c73edca8adcd7f67a567cae604a0a90c95f98c23579873343e73874f7d8d6d1df246d46f356316186435e042d2fe40582e16591f9f2e4c138af329371bddb294b2ae417cbcf8daff99a9eed9dd0d762e9a42cd3345eff8d86a21d4f3f49cc42036fb28b5801a4db4bb11ce9dd890386210ce62112d5b634354bd0527bd06bba9fc9867299b707c9bf158cc6f3a560c517e094c41ea91"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6b764627d26f1df6a7d57279723539d88a3252d885e4ae07fc4a4b971b062cee"),
		nonce:                 decodeHexString(c, "f10f714e59165356cad77b44db300466"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3c0a2c25969023716f977416d553910d6b6516e0cc4ab87d503c4dfb06b27c7a"),
		additionalInputReseed: decodeHexString(c, "994de5cc4d541eebea202367588521b364dca95b9a9cb44cde0404c898c77980"),
		additionalInput: [2][]byte{
			decodeHexString(c, "03850735b6305f0327a5063fa5f4ce6d513643102861ad1896be447bfaa9beb5"),
			decodeHexString(c, "717b9eb7700c1e44902800e1c939a02bca6cde460c6e6344dc86a1735b123722"),
		},
		expected: decodeHexString(c, "c17e5254062c9fbe9400f6fcbf16193d0dae6c68c64eea64e88c95e480fcbeb1c747fca75da2f8c5bfafae5d1f0958e9d320cadb21dec5b3b6f9d3d6990e4a6333ff7416082aa4c782440ffed6124ac0f99c648db9c868a0925f475b0a285d67cb25c5638779eab11e4c526f732d3c3b8ff2de64d89099168a5801562ec34b851932398887f8e3f0ab2f4af4c07f785d82a1ed18355b247857593f446c0fbfed76e03d0dd93c7ad66a267d0f1513cb7694fc6e96d3211067ab2786d9da8f3e5f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e4c601fa7a83dd02c7801b3d6a2704645e78c490d240d63438f92c65d347231c"),
		nonce:                 decodeHexString(c, "2affb40cc1c1f6d56800415190d7d2a1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6cb913dc307665e81c52e8388351fae60155061b6a4c4e30a6f0db208225bc71"),
		additionalInputReseed: decodeHexString(c, "6efe17745392a4f0de3e0c334f2c69f6997b4427f749ce6f76d27634d5e09e90"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c8027879c1ffe64c1eb21bac28abdd76f5c75a65ccb828c927a4dbf4091aaf8"),
			decodeHexString(c, "592fb2623c2c60c099d2e116e728b4c9d6d8ccbd5be302902ef2daeb2b221949"),
		},
		expected: decodeHexString(c, "638290d238e040ef6fe4f521284833b8c7ae51920bc60ff533d8ebf81cb881c9507987699e5a35117b21695f8c89c5ed6d9971b1ac9598ca630799aee58a76ab3d1f677f59662ce58c59cc4a7e9478b0eefa636b73e0ca28453a6ef16734402512b2f1a212ce7439336392cab328aeae5dfd420f991db4f10e83e6d5055075e7d6ef03bb1324875ae7c590f277f7c36fd7a5329c721c10ec28b1b0cf38276a314f864460f5c6a34ed0b324b0246082fed9b69912c4fadcdb2eb8002333a4092b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ccf9793ad5e4dd22c8e28a85eaca4be26e4effd15b6936399c6b5d865d999a21"),
		nonce:                 decodeHexString(c, "8bc1f7a7094ea4e364684ea9cfc214a5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b0ee47ff9de873db4896e6f068cfbb98d24928e3e306633423ca136e27736bf7"),
		additionalInputReseed: decodeHexString(c, "eacb7801790790e44a559b3c9c9547a8c42c321c24c817fac369c5a571fba6a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9887f77e706d365a66d4faaad800141556408463f96764846c77772e0fd290ea"),
			decodeHexString(c, "86280790f8abd8e9d09629a63c2bbd89672cacdf67a611c6775235f6c84ec881"),
		},
		expected: decodeHexString(c, "ac301031657c3861c93d828e03bbe6bf57a81df347b40a1997e230df9eca0538a8c8fc6a0486a727a5be05263338107ac63595476cda77b1caf14a0cdb2b6b266a1981c4dcaa4a1a8a991e56b3cd6a5e76472c45db0590b8d8c496c7ae7f728636580fd35913df27ae95ec6da988f8a32ca4109d0f801842ccf963e352a946e1fb0fcb58ab75c4fba686894364f4a335a68be2d8fa110f05a2b422c57c1675361cb3960edc94017033c23add521be605021f3c164f0c4e4fdeb22021f5e737a5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "4587fc39e428653551e23f305a51f8851a559a1814ae163f3615f8ef8c50aa0e"),
		nonce:                 decodeHexString(c, "bc1a8dc17bf1316a947f4ca3d7d3420a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "77a6f8db86e2fff7dd39a6c7dd30ab5322cec5838eb7138246439dd0b028acee"),
		additionalInputReseed: decodeHexString(c, "0ee2050c86e0a21e42c37231e387b1dc06113ef78d97449474e7bcb39648676c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60acec79d7ac46a5d26434ef437d2cd1f97c737d61661f8eba3cb8d7bd824b2e"),
			decodeHexString(c, "dbc04ebca39033ca34806f885ca5620421e9f545087553d3cf442dce74c7feba"),
		},
		expected: decodeHexString(c, "63493bbfb1d705fd0937b2dbd93408622ea2acdbec219bdeca12945270094e0398fc786a3605e297b411096855f42df136bb47f3304bff2cc4c94fa8b478bb8389fdb9c1a5f032306db823d7a916701458eea198e52c05166dc29d6a0ad948cb0056dddffd1b56a5065a408c2096de0ce99864bc16347e7505fd4d0412cefeb9ff658795439eccc09e032017fcd6dada33e3af334c77a64834cebcc7bdb817709fd519b69f29170ee46540c1dad9be2dcd6a66d22e3c0d61f0e29ba60e2a2bed"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b3cebfd06129097c4851f6d5b22f778db245f3bbd70bc21979da9db78ae6d7bc"),
		nonce:                 decodeHexString(c, "0c0117b41a71cd4f457a2ced32798299"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d97dbc8818c095db334ecf2ab5b9230705706720aad17eedf37a6cd8052bed98"),
		additionalInputReseed: decodeHexString(c, "c14941d2a4cff91f13c1ba0235e7bcc157c71efd3a3cfa606b66f76d860de3a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8a7570b03ba6d08110fbda5ecc1465987a76622d2fe08b778a14d89b7401e52f"),
			decodeHexString(c, "37fe7fce6578749c0e357650ae51848c5f73aa079db4441e2a680a0cf4acccd9"),
		},
		expected: decodeHexString(c, "9a2aa2133b0d004d31fff4fc439e41aa0f68ab82933c2d6cacd2e5f7bf4b22529c1f15b99a44d5e5dc116080d4a822e677a4ea5a473cd3b86f7736286819a70a4829bd71b1e15507919012c8a3d211798fb1988ecddfd8348bcc59bddca0702ee8b6a876de6aeca0e67aca130f70bb13d30b6771fffaad0631c0bbdfc36a6a2ea738f7da677306fe1b382f7fed28dacffbf88172f53f8ebf1b5bb2cd0daf03cd2822e2e5598ce184002afcdd0d3eadfa06e956d928faa199b559ccde40353ddf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a6620276c74e4ede4b377d81bc7a2d423c5b42d104b1b8b1ac107d255bf8c0b1"),
		nonce:                 decodeHexString(c, "1b8ae0243e7a773b6feda61fc7331b2e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c26cd1629a849b9d1363c5b3c74ffbfd1df4fa3aea9e145ca3ef80fd11cdc549"),
		additionalInputReseed: decodeHexString(c, "89d02af20d8fbbf312c27bf77baa31e03a41046275a6b6e7b161580df67021db"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e9e8f4152883fb1678a94b4764954375ffc34fb8d5a8bf856315ac6d8f09690f"),
			decodeHexString(c, "e262f85f576d1b5e2e6c4a8ac6ea699265050649ee694efa3507f024776a40e4"),
		},
		expected: decodeHexString(c, "73732bbc6af29452451850ad1dbd8d902e361988f4873b427c0fd02db6e947f60d44403c8568318f817d5dc945ef4fc33e038d62628eaf62bf4274daf6d9673e53e1a7db17010bee58b713dd7ebe7632bc8abcdffe1c76875532d93dbfd241ba76f1addf24b958b11a121811473028a5b57aa4db1341c5c765e9ac5e159fa78d66748f3020ab800a2d5cd82b529452eb991b648aaa53584efa93a2f6c72767a03d9c95f2bf3f6c1d7e64bc90669361684f1de53a6784264edb899b1d76b1fba5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed53_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed53_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d62d1ea457388eec38ad2dea9c9caeb1db2b9aa91a185e1791aa9f56519480c6"),
		nonce:                 decodeHexString(c, "be7aef076616921eaab9651c22cc888f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "17147bee785c3ab3ebe976e274e0321b8484bc560cfd9aab0745d6c9aca07c6d"),
		additionalInputReseed: decodeHexString(c, "859bc1bd8d2562dbdd4dc823251ab87bdcd93c00f0511e49b8acf59952f39121"),
		additionalInput: [2][]byte{
			decodeHexString(c, "34db5184c08013fee175c439bb0463e94c1337f0b394507d482a5af00e1ed64e"),
			decodeHexString(c, "fd7dfec40c27d7502d037caa90c98e661fc9da05e7eaefa6011d100abb89c00b"),
		},
		expected: decodeHexString(c, "47c4eccd0795608d9a2049558afa728d4ab959aacecd2abe6c2f430871161daeddeedee774f3727685ecefb99f320bf008e241bbb0fc3ab1e6ea5e0b5e3e2eed7ad7101d29e9693fb59eae588755a392b635888aea09542a8f8d0d549bb92543d216d4104df0dd643a0c1a5ea2086ee6cf32ad3cf8145066e4c5a6cbdca83027dd1072980de97aed7b34cad78c23e42376aecbc6f0ff226d78373f3506f21767e59031ebd406848f2b80168ba7ad2f66d772e75d6c39d6622b30250ec71a89e0"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed55_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d590e539316f21d0201caf7712ef4fe278401a864572d046e5bb7543948c77ca"),
		nonce:                 decodeHexString(c, "fc38e14d4d9f919b317757c2c62ee82d"),
		personalization:       decodeHexString(c, "471edd514fca3d6183fa91449f13cec443f1bff44d6960745c4e35edd41a4493"),
		entropyInputReseed:    decodeHexString(c, "9c8fc6ca5bc11dd171becca66cfd449b03920171b03af3b7e97a19b77fc56187"),
		additionalInputReseed: decodeHexString(c, "eab6c07c881a00d9a129ce3b9dd1ee274bce032a056afbf282beaaa331ad86b5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95cd4131eddf94958e1f8fabf5e855f848189bfe381926c514abfc21f49a24db"),
			decodeHexString(c, "e0bb271938da954cb0bc13a5275276307d1995596461fa6764b1e69c598b7816"),
		},
		expected: decodeHexString(c, "47afbcb9725e248fc10cdea52cd4e9e18da263f46f524f9eaa5c945b7578ca62fa063586ffc6a4643b5ac4394c1e0dc880589eb7ee7f663145f78b69ab51c6c1c7c96738538d77ce83a229faf89e1f75d14e6ab94c0cecc51da931b61d42f0b67b0b66330e183980c9a66539eec33c94f41d4c3955d47b19a2546d9ed031618f3698a0915ada23bcf8812b02ea50a540af9a397f9c3b8e1302fee609745231e86bf28536c52a8c93a5b5e29964f98ca8ef83e4b94394fa6afba98e84f50efbd6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "1131d29ff15c335129364ff7e19eccfb7739d16f19bd21d774cf4ac6da190c66"),
		nonce:                 decodeHexString(c, "7de813c05fa6556a82850f33c2470b61"),
		personalization:       decodeHexString(c, "5504f7f75710d128b55842cbc34d0086f96eb55ce8d2c7b96b46f8b239451c87"),
		entropyInputReseed:    decodeHexString(c, "99adeb9fd7cb52531405a94666c7ea61d5e5d262a9e447fa80c34fdd41d985f2"),
		additionalInputReseed: decodeHexString(c, "666e2a3ab4c3e52f83698a5c4a2dc6510d9c4dac906cb6ddd40b2e89e41c2aae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "65c39a348b42085bacf7897f0fc1782e141843229fec8c54a4d9384f6fb480ba"),
			decodeHexString(c, "1cd0b974f346117b6855c83db4eda1dff8cb6023f2105498fd459fdfea5588f0"),
		},
		expected: decodeHexString(c, "f0d009ddfc4894d7a88db2d9a181f342cfac8ec4533f2699e348439464945ca9ea0e83f81d5c568ab04fdcfcbf6ada5a46d1f1db1d8aa64c0cc93169168eb4e2629bd7a3f27df8152b8e8f9c824ede23c6ffcdf455fb8c49fe77be64fcf2296dde5ced33ddd96939802d68ad8090fabaa232984c5d11a7e9de37d41d5fd5687c4f53c6004b6ee0159454e9062317da8fc3fb9ee6592567f4ff773973d19ba967c80b2098d508e44a54480398acdea6e4c3d82df25805ec3e36777b3e8fd66c85"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6001b629198863fcbcb3d638a21a89f5e44e27448d933d1ec5e995db04d7b0af"),
		nonce:                 decodeHexString(c, "6c5e879321e728c1791a7de586c1a062"),
		personalization:       decodeHexString(c, "017db479a92cd5012d84227365a1eaf7cc6a18616c9750e03fc154a29668acb1"),
		entropyInputReseed:    decodeHexString(c, "182b514bf192de0ee51492fc9e1879b357cdce0443bea968a16e482301234d2d"),
		additionalInputReseed: decodeHexString(c, "56306863d47a448e745e487e9a07700c0c9b31100ca4b7012ee345156d28b15a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "307b71f447db1360d60e93ab27d55503c8eb431ba9f93f871b5b69e1acbef597"),
			decodeHexString(c, "5f22331b308b96b95de664816cfbf247f171ed9a559b5a970a4a67921c518ebf"),
		},
		expected: decodeHexString(c, "73698cdb130daa90094291ddfd8f4f877d00c4c1caaaacdf4f47ddfa4c3a69f6b851698d5c0bc8d72d4625bdac42e5b8d51174f5f196e4285199534fb5b8d3ebf85fadde50c167092cefc9f51985fc871d6eaccb149a74da02d83b6f26f2a800b75065240b2b120504a9b18d0c7fa93b8a7278d0ac99745cd3d19106ee9eafc4100821e81c21795825f000b7fee603794b8b8591a2d45f6921362bdf1d4f36e57112c80672466aaf71bc4ce642df8ed1c63ab102ac2b142e6f1cfe6f4dbee1f7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "57a7ab6fba6188bb3ba64c237327cad97ba8e8abb3e0e5f5cb7836eac6f84220"),
		nonce:                 decodeHexString(c, "cad1dc0ae7cb76be386d84036a8ca256"),
		personalization:       decodeHexString(c, "5ce1e7e8784fcd5f9b3c408e37404dce6bfe3253fa77d724698fb03d3717c0d5"),
		entropyInputReseed:    decodeHexString(c, "cd2688318e41678edc118ac09f643816d00b9a982ab2d18d9d8834758b175152"),
		additionalInputReseed: decodeHexString(c, "72defbb8a3f9cf51dc74632fe54508177fa21ef75a2d77b08a8e4ef67da6926b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0073f4088ee65a124f92804a58fe2b17f7c9aa98e0748a16390996259c015b75"),
			decodeHexString(c, "b559bc0b29802941df1ffffa4e60f89dd6c59a42aaa03f51aec9c70817ee4d49"),
		},
		expected: decodeHexString(c, "56e78fa87827f0917af6c54f3e9cc5450ef20a293230d2dc6e44c3237f1305e92e9094302e04144e750a1816290e6015d63f0b6934143f739bf90e65e75943cf4899d5a1b9955e2a3cdd34947bc78eb17411dc204403f254c6cee5081ef20a5e4a68a7c32d2bd6ff5c2776854cab9bff863f8ac11f0f5d6d2252da573e68ce83e4559f932c74bf2c0de30a0b9b6b49f6208400db543e6434a59669990c69a782db3e9c4d7dccf266c701c4163c9599dfb0768ecb36d0b31fe9bcac295c40bcbc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e5540d64d735136d926f300adcbd6934c505839ba75b6aab1dd30d1df7b780d6"),
		nonce:                 decodeHexString(c, "14b40c845f6b12ad151ce7c99fa00081"),
		personalization:       decodeHexString(c, "4c84b273052a5b3a81b6029ee2c059b2d53f49ef9a202420dac71987e6b4239b"),
		entropyInputReseed:    decodeHexString(c, "7320328ad79d39b374c8d22d031c78efa3a36e34cd18f2656b1877802c215af7"),
		additionalInputReseed: decodeHexString(c, "8f68db40b219c931a2fabf22b9beca8ca35606e45c28c1b2a2de9e278d662c1a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dbeee1c63e04e57be7b655a44f9889ae91dd259535c06eb71ed92419b0d5a4ee"),
			decodeHexString(c, "48f65e58ea017ebd01232d725554c0d90a03beeed367dcb4b7c095d488399b8d"),
		},
		expected: decodeHexString(c, "cb463be4791b866563ead4a0776c50dc776c47f7f832e7f46b6eb2c74585b8288aaf9547e0842b8f67e99ea21e7f5e7a0931ca2f7a613303340b24394d9cb0cff47fd41722fd042948af338721412559bc4fdd03b303fb9e6ef4a7eb82a6800f049493c445a8978226ad42b4977e0956fd097a5da3f09c8c9b729a6925129c7de30974bcb7c7fc5be1950db084e22937dc8d7545cf1e799b59fe3048dc05b8082f3041ba5c68de7abe826e5958782e1e3bdec00239e54c6de794d6040728e71f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "0b890b1ee5592b57441a1da251898322309d9fec2360da39d49c1b0e39fd43a9"),
		nonce:                 decodeHexString(c, "7f49c4dd126480ccd0c686a843bfec09"),
		personalization:       decodeHexString(c, "fe003a1e1e20ae73211fd34846b0c2c00c06418d8e077122c93dbfaa81c7cccb"),
		entropyInputReseed:    decodeHexString(c, "2c696dbab103ce1f72e4d34e435ddeb5917822d3d5a0f844cab4813ce53298b0"),
		additionalInputReseed: decodeHexString(c, "7a7202af0e67020f37a19c3291bafb8728156ad8b287e0a032f7244539ef9cd9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6a53c95d57c50a71be4343f458cabd56b8e8afccc7fab6d541d32ed88e22055f"),
			decodeHexString(c, "63248b1cb483ffe2d796f289a00619fd308a5dbad18aa2e2d5126506e4537fd6"),
		},
		expected: decodeHexString(c, "db5d8293b981b1afec51e7160e157d50c3f5cb1bd7c426ec9ca04b24542b4492696da0be5998a05546d24e42df0c819a095bfed16e1db4a2732ee2e357e6863051ea9ef3ade4590a32fefa21abeed5ffa8754e7dfa657a1196944278cadb7bd04ef52410d4ecc8f2effeddb0f4bc60dbc3f1d288a8f9ca734108e92aec727fc21e97edc4180c81c6f71dd95fed31216b12a3f51b92d1cbe5b189c2a7b08e469724c7560257641811ff95681db76645b90609fa55459450878e2b1de3ad1dcce2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "ef6ed94db263c28593532d5a5b92e571ff893736dcbd92ccef249728b86c78a0"),
		nonce:                 decodeHexString(c, "98270d9c794a9198facfb8cbde48306e"),
		personalization:       decodeHexString(c, "eed7020a2a7daffc2cee39f860c6109706b6363d6ebb09ee0dabd1debe460bc0"),
		entropyInputReseed:    decodeHexString(c, "84174cffdd93796ba5b164f38d13652952ad14f3365316e78b4a23b9c608c48b"),
		additionalInputReseed: decodeHexString(c, "79dbd6631fc43e664e0ca693d6211bec458ddd4c19d9a3baa3943757709277f8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d6180a0dc8ac5525f31f17e6b0095ba87225f24a5011eb6979dc28714d3c2274"),
			decodeHexString(c, "e0cd424fbc68101ef21b75abadc32d0476718f6cb66a8f3164830337b3a76958"),
		},
		expected: decodeHexString(c, "01617a514af26f86d5700b9858bc0e3b46c22bf6813850b5f4037829a07566f4f38defc52b16a8a2cdde264ca81192d7ab9d22575654b5ffa2d1316701860a108faabebba90d28cf10f2233259b193ba1b9410cde14b8e065d2f5891608c88122a37d673ed24c09fbd4ccc71100d835711a36f4c8c0a311b76e0ca7e48ab42ce6af5783674d9573f5c17722b2bbcb7a15e838ffe2cb385d06dbb8d6e94e2d6af62b5b905cb38a9ee3dd85c9c795de9ac36f47d78524ea711f0c8a633aefc4f53"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a36f5d5b7e19aaf433f2dc98ed6a659c1c8c2af9dc801813ddae512427eaf95a"),
		nonce:                 decodeHexString(c, "1163fa40edb9ecc7e158b4c478696c8e"),
		personalization:       decodeHexString(c, "b4194c1eeec98147f07ed70cf1662671a2c5465d3c4f9b5c3306fe1297c38de6"),
		entropyInputReseed:    decodeHexString(c, "b083b96c9ac0f92846ad91ffb808072a1a69edd0883756f825a07a8386652fec"),
		additionalInputReseed: decodeHexString(c, "0fd5dbb2bd6ce3c0514b07278081d64e2ae54ded4a458000ef47c3d728f0c472"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e761d087547c073257e718a5d3f7e7eade0b39de68988df96d28df1dc9bb0cc5"),
			decodeHexString(c, "b2fdbe227272bb621346b8ebd4a556fd25b47f2a69bd317160dfc6e003da6c50"),
		},
		expected: decodeHexString(c, "56330c6b174a6c3a82165d0c9ef7a2fe3c2f5b2b67bf7ea4382a0c06b07d30d8288cf99d1f7e6e19b15cd5325e50189d2a994fd252bd80d5e0d24a1ed95ebc3db9ac4bce6b884725cebee031b5912214b9128c8ba57668806c279e1a67288b9574dcca697558531d093a2c14484919efd98241fb687f420c16f447d1ce0685f178b2379538315f590d61bbb823ab096fec182d92dc09e08de5bbbb26fbb930f14a662e31a9fdaef559462f1913868d3de76f2814affec170dcd3e5f7fd4962e4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e46873e78e1128ad856e9029e4ad18260ddf864c1cf5ca2a8ef7a7bcb78514dc"),
		nonce:                 decodeHexString(c, "42e1758d50edbd72202a22f8eed72ff6"),
		personalization:       decodeHexString(c, "c6f2d3cdb3621dcc61417cab936ce6dd6e8c25043c43f6122f5d51ae195c413d"),
		entropyInputReseed:    decodeHexString(c, "115b3535fdc439990fb1c7dc1070c5f3b4bb95a7bd385779d7a61cac69b4145b"),
		additionalInputReseed: decodeHexString(c, "a9f73dc28c743a0f521b449b7febfff28e460e2f944282f1e5cebc7f89ebcb3b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3cb9ca33f0e7b6f825d9e08fbea99f93e6347b021871024077d23b4dd0c5990d"),
			decodeHexString(c, "b2ba05db9e1d7239662d47a40a3774bfbeab3ee56d3dd74d7d3919877df9c8a4"),
		},
		expected: decodeHexString(c, "ebb190a0a25725af7d133b9a5bcab789e984a2b644d313d9d3e1a6ad357d18b551504ac455ea102dc4ba0ca89b6fffff45f8e04faab078dfb5796eead685ade17851df81b0a6f526713339582548bc124401ba0de7f6c5bbba7b45de4d44129f5ebf82c417019712afa9bc8a5644ce2de6ffecb1da2494a01f0d241f4400979722a370b030001fc09e9c24f4e8627392b6a0885717da53255bbc743e33fe224867a0315cc59ee1cf8ec080c9ddb3c38df090841b09ea6d087594ae026f4ee9ce"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "0aed7cd9e51e965a89ee628e607fcbe2fc71bb1e610ef6c17ee40c7fcbde59ec"),
		nonce:                 decodeHexString(c, "a62f30421f93edc727c43979cc17499d"),
		personalization:       decodeHexString(c, "2bce22e275abd56ae0ed54c369b36c4c4d773c32c27d70ad703f711891577460"),
		entropyInputReseed:    decodeHexString(c, "b08e340275b52c99a24b68b889d5bd14e3721e1f11ddf698b072c5829c62f55c"),
		additionalInputReseed: decodeHexString(c, "4cad97b6733aa6e2bdb9ab87af0533cfce5663d488685da85344ef19bd7848d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "313e3b97dd599085047726642c53fc7fa4bfc24f6f6fac63df0f78c4fafcbcde"),
			decodeHexString(c, "32d1ab7a47218472aaf5b7b50279162e215d803d27c5f495fafcd80a288f75d7"),
		},
		expected: decodeHexString(c, "b2578583990ded3c1e7959cba622339eaff43b8a4903d993364775db17efae5155311bb7e960ee5faacd8b19747aabfa39c9a87cb06d24b7780e5c51832ed53a32868aa1fc85c8230a34488b45a58c079a2eec313a298ea4ce6e4e403e1222c0ded49007ec69d594af35b199c30981d2cf9a38da5f1b02a47a5812bbf3f39f16d50c1696712ca95ce8fda4d5fc3c5624ab61c63fe0d27d85e5b74ac265c4802a9589aa16d861e14ec0ece99e8a636b54f05229bf31e28c85698b7296f2c2c155"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "afc89579a094ea535a393b529d48fbd8f4c8d2e13ca3cb1a875f78cb327c447d"),
		nonce:                 decodeHexString(c, "3bf2f4aa617f83052f1e127c50c66cf0"),
		personalization:       decodeHexString(c, "b0fb0a65edaeb27b7854074833cf22b0fc84da1ebc0b5bd5292826ad697f61e2"),
		entropyInputReseed:    decodeHexString(c, "ef2e9d94e59aa744308fa0295de6bca5c7c3490f74d363d17d5f87d5b63d14a8"),
		additionalInputReseed: decodeHexString(c, "4851eade07c2f8c8a24df32101766581f8f7980710590d9f797deaee2309f133"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0910ddeea8c1fdb4c6614dfb4f42381a2250494167794dfe449d8c576c7b6f23"),
			decodeHexString(c, "3e48a55b2d39800f465460636fcf91a56f0694559631161396c774fec768efe1"),
		},
		expected: decodeHexString(c, "49aa71fac676b098f2c8d30717051e5ad9a7b6f152ab86260dbc297485b79b225ac3ec5b12d54119ea16262ceb94c9c662cb7617ef10b1da8ba249eff5ee9297b8ea2487d4f2d30601bf429028f6b850f3b7b1d48d388dbaf067f6e53247d496128ec29d99a363b1b69436cf519012418da694d4f17b999df31b6ffad94a364ba57401c23eb1b308d4bbf3a4e5d636b8526d424da37fd010c18ab92ecf6551475edcd618d01dcc9c2b88c3e62b57cc58b95853cb86c242d01dd4846357f4fcf0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8b418373c6adbf3c5c6feaaa15157c93d331595f5724657f547a4c3131fae19e"),
		nonce:                 decodeHexString(c, "9236a820899dab6dc8912ed188c2f05b"),
		personalization:       decodeHexString(c, "9b204d4d18aed17a53568186314ba22195619986d19ca5a68c56ff8e59c6614a"),
		entropyInputReseed:    decodeHexString(c, "2a025cb9e6891e79dcb7ad69d055fecf6569b2bd066b34b874f6fba77354995c"),
		additionalInputReseed: decodeHexString(c, "2c0bcd37f8523bb604e1715116490cb5fd8da2d4b97385d15f67d533da435c46"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b50931cd1d18286a313e9e5f7dcd314e860e67c09b250c548a02d13bb01f0013"),
			decodeHexString(c, "e91ce46e803cc464074c22d569e0f882f1e6cf3edb8a3a3a1e4c55247803cfd3"),
		},
		expected: decodeHexString(c, "53129335883cc7d67a44870b4d2d5f3b2fd1c58c4afd426a76ac3958f7ba51be4fe4189caf6c7f3a7588cb044a9c6c30c28d4d5dce05d59fa5c24a2218ab4dc489e68f07df355ae0624ec02324fc4bda816e7f491cca67fc1e4f994433fb1ae35e6257083f1acf451c715d428705f87f69b2feff5cbb0499f583c1d2c6b908a95b41b595552ddb92c99c1360ae7e1c53d7062ea83e6c3c2ad6d0d6a2494ab2024b4ee83c5b3a9473f9ba8b636c59e4ae1a90bc097b05580cb060f47660962567"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "86c6592a1e65fa9412802252bb7449710614965c45b5c827190b5daecb9184f1"),
		nonce:                 decodeHexString(c, "6c9ec40e1cfc857f81b18aa230884ab9"),
		personalization:       decodeHexString(c, "cc87926dd68d6a268324aebb786672199fc4d0556be53a07d45c431f310b703d"),
		entropyInputReseed:    decodeHexString(c, "06d762eb36e6cf9958cb257bf439b125598ae1afa425b9211ae422da6d1e11f2"),
		additionalInputReseed: decodeHexString(c, "e7b338dfb48d52e81cdc91ad3b431e0afb8b1f8869ca5aa8582736faf9bee76a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "702c10399d92f9c780d6c7797f6cdd732adb334a38e38ccc03ad2932ddc0062d"),
			decodeHexString(c, "df0b8383940427b32a41137536ab4e9f9c9e0945f9e384ded8410c0fda707aa0"),
		},
		expected: decodeHexString(c, "1c3432d73586a23629c1cf93c91d56cc1c46208198c12bac0c234407e97f3a84b3d1e87688bdbc5f8ee54d52ceadda4df29c657a1008d018973458c552af76bf146b21cc0ee98c8b9749ffa0e55a87ab24c11d9a8099f4729b9b0ea1b3f35468db1ad23361217cdf04f4c9f044bb9481949a5a5d07bfb04d832b5313034c25f32fb30b92629db7c7fd53bbc1501bf544bc3feb4ca25b27e3bef2e284c7bbc16ee9ad97a208c2df2302559528cac8dffd191deb4f32e7f27e97594ece3f752749"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "bef2f173e73eb38e87675f4d5ab52bd3659d6be094b524cd32effb217cf15c03"),
		nonce:                 decodeHexString(c, "51438254cc16b6f7066a54fa197d17cf"),
		personalization:       decodeHexString(c, "6455367b521f0809c168e9fb47498c39733ac17bda864d0944394f1f1b3198a5"),
		entropyInputReseed:    decodeHexString(c, "7685872f96fc2188d0512d97fa467c1a6a6c4047e12e5370dec992f3969c34df"),
		additionalInputReseed: decodeHexString(c, "339611122b08b8eac442cc51b1bc6832ff07688cc3c0e1c93d258434e9095e64"),
		additionalInput: [2][]byte{
			decodeHexString(c, "473782dc8d7a65957245562ff45e9dfd0a8ac5c9c279e5e98fe1d356912edbc1"),
			decodeHexString(c, "538b09d0e458c916ef75f6f64f0b55ebc556ffa24453ec191f17cfc7ab655436"),
		},
		expected: decodeHexString(c, "95715bb172924503b6153e68c7b5656423ebd13215d3c9a6a8280636ce288031a8d4407063d4dab981c9454c7c822247be65ff9f3f4ba0c470eba79cbec0a6bfac935b99945e3824ddcc9faeab3e6ad3a914792650f28eaac0439a75f724dbb827c1c6d462ffffb56d8806c4850d258858d1f5d0a30da760fd5e7e73d026dffc20302fff67d6bb08a7912b585bb7b2d1c9633f6bcea3665ff0f9171d12d18af2c0c01652ef63038c6693459960d0decd1485e6ff837c2429838cfe18b8a5e2b0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed55_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed55_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "955f1b30c12e617e5f93020fc851c9d0b51a0583bf79d651db4afbaf63c15d75"),
		nonce:                 decodeHexString(c, "57a59f295e80b4da4d9b66ae974ead1e"),
		personalization:       decodeHexString(c, "75c7f45c26d3c22bb15d16ca7f24cba12f204a374e139a2beb071a5686a1f358"),
		entropyInputReseed:    decodeHexString(c, "b51d6e90261533092dc5df7ef9d9bfa93ba97f868918dbee524dcc7851cf3255"),
		additionalInputReseed: decodeHexString(c, "8ca7d250e025036f03061eb1d7cdac6561e21cb7a834e18424066c166eb7bed7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a74bcd4a3f67dbfe5570bcb0aaebc1381e1d978051431c65fdc492299b63904"),
			decodeHexString(c, "7f2c22c73d130f083705c2093fcc4ac19a8bc238fe66b617e1840814ad83c162"),
		},
		expected: decodeHexString(c, "56ac85f44b9c3c7dfa5b7994fe3908d39341a035df8a4d0deaaf17034248a010763c37767ecb7a5309c3a5c7588a1bb662db02e0fe9c36b7cec39693e2f3c4d8b81fe6f213117cbaf1da94d5c147001e7526a389e364428a12c5b9be1cd4c9e7ab75f8a3026e1f388eeb4d50a3c1ecd72bfbb762d12c9080cb956543b44f056f6d05e90742bab6e4611463a0e11d9f61ae378c774de3486e229c63697ffe7cd058ed6883351fa8cbac514ea433657d6d8c7161f018b6163cad00794bdddd779b"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed57_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d82aef0c80eea1cf49f892282a2f929bf3751f54e4717dfa004b08d84cf64148"),
		nonce:                 decodeHexString(c, "c9ffd92f7f54e31b39c5d58b3bea0a8b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3ed87aaad9aba5dcae35feaf6e85e7767c4838451ccb502e5610ad0495b852e6"),
		additionalInputReseed: decodeHexString(c, "eb52b5959a25ce1030cd6a6077ae675af2eb0ecdea2b710a196f1e36da40fb6a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8fbf6a38c5e050d5bc6288132050ed7eac755462ac3781fd1300f342a4566054"),
			decodeHexString(c, "5af9e2b27a5283fe3c88cd70eeea0379b007ee0e416d48fe17921ec182c22865"),
		},
		expected: decodeHexString(c, "3c998261e415d33207332fd9a076db3efaa5440bda02affbdbd5533695c10dcb77e0f05e17591ff57977dc4bd15e4d88ef741a9b4aa0b4b0fbb438f65295269f812bbe86fcecf76a9852f30bf1c829683aa5e642057df423963a7da0ab08daf516cdb04bc3e43bfe0c73610db59e6718f97433093e025352d2a0e537ef6e08d4b8c63edd0a05e9a43be07178a305f8c1f2e02431931262dc85d28dc5bec9856fe3eefb1869da8ae7f0711c3e3a157d3caaef8192a4c1879d40fb3bed8eecae4d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "09dba618de17089c6d05474847e6f84f7b412b62a3d4e84eb0b2c19195a3ac66"),
		nonce:                 decodeHexString(c, "ef0fa139712c043f2c131b7d0f0a7dc9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2ca2aadb5b700ffb4cd97a078c10dcc4367fa598f1c0740e775c1dc5917c9d3e"),
		additionalInputReseed: decodeHexString(c, "1522cb884a7bb9e35c347a01118d8c76c0e01325c92ce1e94138c337193b5680"),
		additionalInput: [2][]byte{
			decodeHexString(c, "da37236597fa4aa0aa70ba591ec2682dc9bbc65b0dfded3748952a2f4493988e"),
			decodeHexString(c, "43670ca6b4b93243db4f28d47722381f14d005e2cf5bd2f5c4e3e5d2eaea139f"),
		},
		expected: decodeHexString(c, "dd333186c5307253f9daf1451f38a0cc5d8605fa2c7df35638137ac87d9c9dbc35bcae54741bc7c139b55408123332ca2bdd949ba2791a7cbaa240ced48738e0a603bce126d7bd4e18de8e6baef114851d0aaa4af3f64b4654159f6277da0576cba1e5bf3f515d19b9baea67d287066a9c35d7cdb664de820884cde082542305295715d0217b149d1c6dab9b7bc297ad61cc4716f1a718171acc57e17a820081773ee402eb8ce57eb15bbaa8934e2d5e1ffe51972a23b85aaff9c1a607b806ca"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "c419a14544d205fe1884d07d0734cebbdc739b8fe4a4f9d894504e01f94d2029"),
		nonce:                 decodeHexString(c, "c982e021437fb30ad039c613d1e9c3c5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f856a36e9ef960e8cee03a8d09b9094b95aaafb9dcb1dbe1b7574792cc498ad9"),
		additionalInputReseed: decodeHexString(c, "83da55702e36dda245d8b50a9ff53bdd2aa4add30710261506c2451b0f27372b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9d730d4607118f85bb7c6acda94fc6f9d5287d7ef4208dded8bb687f857ccc5f"),
			decodeHexString(c, "4434c3a44f56b7ac9c840795cca2f1264e619987bec689ea384fd081232ac270"),
		},
		expected: decodeHexString(c, "791a928a1f11a26e8280b48a9c6f2b4652f4a47d9744ea3e1fc274a646c1bb7673f7039f6c041b177044e710516c6ad9de9501ad780ae9694475163737f900e67282e3b15ec898ed4a2b2ac1a07fd643021e59fd5d365f87e07838ee922afef2b8b5fbdc92dc00466d6d1e32258a02999bbc7e9ab39f7206ae6b92c325bc064e56b9ea239feb37a7d4fd091d23c5d5f8f1ebf80aba67fbfdd409c964b5f7cdb17fd1cc0742c85967a5d7e7989217723e64267d04187858828fb6ba646f450343"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "62a081a16b6c44e346cc313f85c874bd5d54fbb55c4f23a3d9610ba1e9c22543"),
		nonce:                 decodeHexString(c, "9829b90609642ba802dad8294694349a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "477f969f0bde02695b65d1d9718c81bbf582eb0ed9ecb8ce42592729cdf3ee4f"),
		additionalInputReseed: decodeHexString(c, "0b0bd6abcb2cac274ba17ff6553fadc4ec5785327025f2ab9da972d5e9c3b62d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dcd67ff441d01669254815d63fc34069515a86d316e9ac16e7ccd4089647b2dc"),
			decodeHexString(c, "442a223390f320bd85e5afae39f8e89611f2b538429439ba06189ecf47a0e86b"),
		},
		expected: decodeHexString(c, "c8f524db77d9fdde8350bf54d3836bb2d6f90af4f9bc58f7e3fe7c1d0bf5b9d957371cfc14f14e05251da1bc6549ff365d495568853976e1c4c0a72cc274470fa4187857d9c8a0d18c67328f4658abd3e185bc509ea13155bd025144d9c1e32b383015c5cd00c43e8158b7c3e2114468613942bc79819534925cbb7de45f51cfe3f02067c8da704fec8ff90214a23f5d5f215173d7ca53dde1965ce1813ea3673c59f5167df72d3d0f0916baae7b79c0b118606c18335e025cb02fda4edb5acd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a3ee987d7ee7192343e2e3a6562117476b605eb4f870fb6225c2aa6ad919294f"),
		nonce:                 decodeHexString(c, "227321cc479b6eb406c9be712fdd12ad"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cb68f2f00fca6aa667276f8ba4dc18ddf978faeb0ebccebe33b7bdbcdccf916c"),
		additionalInputReseed: decodeHexString(c, "efd522aa9e99a3e657a17fbbc8ec9a42b1fb1b60d29d6c3e183f9b61a0bc7ab2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "73d16b17adb32965f1e8930aa8c11e52eec50d78da41a457b07e1f5f9486880a"),
			decodeHexString(c, "06f42b7f335932d0a5096a78992077326c405304ef142a5d5a7008d86cdfba8d"),
		},
		expected: decodeHexString(c, "1424ec1a1d15cc8e368f711df2a92d7829743e30e0bbf76666854df4e15d72bd52d0453f370d82d438db2f458576197f4fe78b13d05339787d91c8563ec3d10701a794fb3a55556a80d8a485328bcac00dd0d4871e0d19902f09b1de9b663c02f794ef63508a15bf1cc4b485ff5df34f952da22dfed07a5602b555a74cfe6cd7462d0a9d1f83c72eab6f48b63443601df6d169424c32348580a8961f3b1a16924925b04b5440b25ccd159ee598107331ace3674ee4f953f4124b258855d76c07"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "0fc7b980de08121262a3479867fc2fc737f775cd2514046c49724277f8fb5ada"),
		nonce:                 decodeHexString(c, "223f8de6392e2c25d67ce8930d797450"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3ae78a5cb3ede31ab5d25776313be0821a4bfd7e865d2e4ea97a97528c345f9d"),
		additionalInputReseed: decodeHexString(c, "fd8ff4b35175c8ca806ddaad94aafa4414c7379452139114bc9f8e9c5c174b57"),
		additionalInput: [2][]byte{
			decodeHexString(c, "666167e7a8248c9a2e557969e65e7c81cfc0e58b90745b3ab9f4510923d514b0"),
			decodeHexString(c, "5146cb9efd5b254b345fffe25821de097b2dde651d3438c9d1a654c6c2fd9e8c"),
		},
		expected: decodeHexString(c, "bf8e2edd558fd960a27eb926f634863a2e698cfe69a07885246170ec2d3d0dca5c4b7da486ab0272672e110447594085dba6c6d526e77a66159c3bdd53d1a8eccd11ddd105908adb8e4b2e8c3f192dd190e4b6eea9d5501410674e1b7c776e86587e55cd61066966cf0191f4c183250cc09012494560bc60c1179823e75dd77eb6d498acd3b86c1717d88fb77545f11530c9784e71f3866bd28c61fe606ad9cee7c0460d5bced0b35f2e66487cd6170166d181bb0ff0ce829d3457bd4047917b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "46efe757b0d0af6d84dd5d0ada0e0fff7edc9762cae0efa4e1712a81d11d39cf"),
		nonce:                 decodeHexString(c, "38092de5985c03ce920d3fde5111f648"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9856c5928bb4909da462c0b5073e707a85c2da39feff257df76d644205473351"),
		additionalInputReseed: decodeHexString(c, "56d626c07fc9c0875d7cc52f8ed9f94c3407670c83a90574395de983d9ae6a62"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f62867a436484b5f53e311a5e5b30cc49a0826f7a9bc0c2b774a960f1d4fd6ca"),
			decodeHexString(c, "a5f3d9d91523047bfb4df62f9f63ab532c8dca8613089134dffeff53b5f95a09"),
		},
		expected: decodeHexString(c, "2a5007b7db39faf09f96993621cb222d4799f4a388098b1350f95fe5e20a27e9ccf61acdd615b8109e9fa477556e05b03aebe30ceb1863b2ae8da742dc50f87d1aca8e5a7592d4a0cbda0d9d28deaf9a2ffb7b96757a17056cbbaa953a49a1a3d6e804b430361212a242617758f87257f68dee946f0af935613ce83c441b89b4f0faa5bcbbdebf8b060947699d67b4c0dcd275599a694f9ba887edbc617962dfb5544d465fb73b47fb0d8d13d23e0f7b13fe16e03c621116324ae5fef72daf9d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "79769700e563592dddf3eb61178353560170c8ad7c3b60bfccfd71279665c619"),
		nonce:                 decodeHexString(c, "f4e3ad04c5c450797f6a9fee9624bc33"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e0fa8b7b93c17bdfdcbded4e45276688bf9aeb228a16c25598d22f9af368c749"),
		additionalInputReseed: decodeHexString(c, "db066fad926c6eaa72c548136701d88a73bd3ff6da466760b6f6e8ae8831ddb7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "963d46d4a6024eacceaa04b93d7133dac7b26c0d5a53d11ad42d4e086cfbbda9"),
			decodeHexString(c, "e771d2f66a2f6cb07dde980334d0628b4a0e65e31f0a3cf725cbb07e5638170d"),
		},
		expected: decodeHexString(c, "5fc3ef5f9456920fb1cabf755f6ef8a06229de7c4005ddb75191c6f7c8bdc3ee55fdfba96364fa7e75754f349a4bbbee4c77f2a76c53d64170d50b6555b682e467784e1b2b2cc603a4359e83c7d7bcdbe19b24989d3b1afaa3240900f7e7939752bbec1255af4845f56c3feca34341c9ba4b702f821acf4c843136ca7b139bbe080b4cf92467c785f2c6b2e2f770474da0b0c650113c72c5a9ff18cdf642d3d1f16d049828762d028e016dde517a7d17b7ec18f3294cc6abaa426998257d2586"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "fa59d3175f75ed97f0ab3d29edebe84866f272a0bd374e4c2791a7b3416f4371"),
		nonce:                 decodeHexString(c, "f75f45d4ac6e0f09b8e666b595e4e3c2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "eb832de6a86fac10b7c98221cb3988fd9845cef10d2ce6ce164c89cfcdf6a0e9"),
		additionalInputReseed: decodeHexString(c, "555f44cf176c3bbf31ceb096f679893952c7243183fe3a5807cc4c4162dd4ac7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f1ef466b039d97ec3234d5ad92a2b858eb648f5d515a098efb2516b00765c349"),
			decodeHexString(c, "d4e3b7f9e521e6bf383ae661438d9e8dd288651c3f7ee2b5c19e21d81c9b1ac3"),
		},
		expected: decodeHexString(c, "e75567e98121de724b5f94d03389e16bbb912b17abaa69500348175b841fb7e3da40f8f971e636f29b91928f28fd3e7d99f894d0329597afca4eb3250910ffa8461a9830b75b7791fe4cd08f7fee8811c12f184f7a397a007338b10ee1350f621497a9a7a842ef3ffd4d07c7970f1a279b9bf6c9fc9fa2de78f3685e1ae72aef68435326da9d2c62d61bd2c0aba6f6d3a30a071b9eb750d22694cbc19ec099016abe9af19a9dab0c6b507a03348eb37a77cd00c4f60734b868fda7e04f09128d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8d003eb399263a3afd3e3f532de76af4690e63df468ff456bb594ab29d6ac7aa"),
		nonce:                 decodeHexString(c, "e0f0e1dac5031890ef273b90b4a30359"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "12b5084d4fd06202d01137f6ffb3a6e06372159c4df8bc89aadb8466817acb51"),
		additionalInputReseed: decodeHexString(c, "3ed7e847787915405f8d1d6e6b168c1a47f81f5aed95f85f47d217dad04e964a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eab443d9f2d5cadbf3a04dea4653ee2677fb3c052c7f373de8b746531d1e092e"),
			decodeHexString(c, "0515c6afe81fa70d595842fd27615cce9b063536ef28d89b53c8c750fefea69f"),
		},
		expected: decodeHexString(c, "1ac6e6408f63ad402821abbf68d6e5580ad76f153ca960675e582b3f570baa5e282505955f37ad9e8ebc2afc8e191f963860043879e89c43624f598055413494763ae03a95d4d49156ba58a8064cbc9e2a45db632a784904585a2aaacb4a3cf405f268bb68331835c7a110963723286e60cef0257c60600a159336cbc81c6200d18f7f2e6bb5b7cf2fde953da659f578efc8d264aee02d4a1dc75c02b423f851adb8bb9deb2a306ef1d722d8856c4e3d57201b101e05b041a0e41ffcb5ec6fc6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b3e29ab6ae8a0668c100dc774b3e2c2186845cc6e66180b6ca78888b63d0bd55"),
		nonce:                 decodeHexString(c, "bdee9ff5fdb1e07473e57285503148a4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ad21d2de5f190d95bab2a09a043315e208131876e35b40b0e64eac1322183c72"),
		additionalInputReseed: decodeHexString(c, "27afd8405fc560696fbf8f83a58479f148d3cdfc914918266dc4269c49a39d75"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c13331da766445f57ff04b8a0ace56204798e4047c9ab9372c1a59fbb51889dd"),
			decodeHexString(c, "4ff41805b9417b2e5c64f1b08c184a656b9045f3b0f0dd2e9b883b2c436e644f"),
		},
		expected: decodeHexString(c, "35bae27ea2e4417f764ac9901821492646c43bc963f0c181cccc9f6b6aa31f0f3e3f21826d65285474a4a31175275bd0d02a5e4c50bb5d1ee2b0f6200e30d06ce4f8302febf65b006281073dfb5c2e236e50999b85ea38cc559c956ba187dfdb5bf1498c70c4827380fb68d111ee448ccb715021073e24e9605815dc523f6f9b2a8e062a58844fbc06661d94c39179277a10da4f27e4212df438d5f0ddf6e3e8f7f5161ba9ed438b0b40b870fb225ccb2a9f89cb073d554f1b62f8e6e9e00e93"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f7a9c3ecc68061f23afe785be51e561ab734139fe02b3217cd0792679eae4247"),
		nonce:                 decodeHexString(c, "91249ea5e1240bc90db6e3840feb6331"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0613bf7e1466c1f31389476b1d1d2ea74a79172fea00fedb3001fb43ac700380"),
		additionalInputReseed: decodeHexString(c, "e69429bab405e19d685758c271f3ec461f465c0f6915f9c8e502eb988eb31398"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e92042096e0ca8088605777ecbe17064000e25a1f038f87b70d1b6e50919c347"),
			decodeHexString(c, "8a1c9bd62b1d1665cc446a0279f674a0908b2e592a6b1ea5cf5fe8e653994d4e"),
		},
		expected: decodeHexString(c, "1f7e25ebe35eb64f3395c3df5b9e4d8d2ecbee1ab64358fffc5499fd0c9af0d2bfc95266e8d56d1e36a42922f92ef5e3938c0b24acf91d261df0de370d041ea04005339cc590ac223547f082283da74a2b171294bf4eff1430a783587ed85407dcc163a91eee0f60b5111f7a3c2ffc33ee95d97ba0c7b99df475dfa0c2ff370ae1febc191b4cad5be2b146a2d48b1813baeea3a3290b769184ea43852c291cdb6767e1abb1b2d27b909b045c66ad546701c1b3d9e50af0651dc471fa9ee75e2a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7516e1fad74a630743d995df29d1f2d235f26d3a3a209b5a2a6e037877863c0e"),
		nonce:                 decodeHexString(c, "1782ede4a80a49f378acb94e9b665957"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d72e6648f7ab95102a27be6eff2d29c7329d704f45432aaec031c1b7f53d94bc"),
		additionalInputReseed: decodeHexString(c, "ab142823960dd00ccdb69e21fa8fef5cf84c5073eca16604de67fc2a980b9e2b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d2398c306a5151d07dbc669965d42f1ac0134a48a1555714f8e2e30892c519d0"),
			decodeHexString(c, "d71ba73af2863ee35d7f3dbeb0f762892cd18dd72c18a1ce272d891d95df53a0"),
		},
		expected: decodeHexString(c, "a33c22efd401bc468b309ddd325236dcfb53d4f38fbfa10f0452f74ddf8fa259599fce07ce8e3ead675083dd1f66ace52f76fbed51b1d41e30245a0501fd3c971bb5cf9c5b8e0c16443d93d757ad7e52f8e7e4c1189d997e391664f87a59c157e72faba1886d8261963893b646f7144fee968f3413f0ee866c4af23933213e9281b7df32fd772e5117db5c98efcae229b2500118048cc894b88d8a3c18e588ff5b8cabc47fb80d7e040c3a26d1b4aa6a45b3890ad91b97ba9cc5f257162e2a44"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "bb3c27ddbe58ece2969b78693a344137f00db4b6e6ae08f89223c098cabb0aab"),
		nonce:                 decodeHexString(c, "5f4c9dd8ad3dd61756b8dc9653947231"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a676bbbd85362ca39f25ee14111164bfa6829567bd431e2e791758eb3473c3b8"),
		additionalInputReseed: decodeHexString(c, "be8dcb2cec1847edb93d2a5c831997f80726c5835d82779029ec99cf87f0c3e0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a3072e2b8629ae36c9a19fb621cdb0808bae9563e5973092dfa9016feb81f55"),
			decodeHexString(c, "bdb025782014dacf7598c9d68037906ec7fff15a58d41ef73c8154a09f4ac539"),
		},
		expected: decodeHexString(c, "4ed999577aa6ac7af993cbce49463a535155a1c41f6356687b0e807ae928577e83a5f29fe4643f4014e1303c87b328ed7f3d8fc51f8e38c2027e70f55618270a5e6bd2d8ca4e6dcaec7141d10fbb886aa7dd3b27336b0cb544b24c102faa49724c4e30bb0dcce51cae78102003050d7fbf8b8e0b697a8f35d36b3513ffc96a21c6f9c08812eb934256970c6642aa107aa89189eb81895eefbc5e53f3f097e52d74007a02fc3d633b4556241badaf2f4208cd55f194d4464b328fffaec6964e65"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed57_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed57_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "eb7a944fe0208186d8c573a134aa287d0afe8aba8b80c89a81aa6184024e8b6f"),
		nonce:                 decodeHexString(c, "49fdd380667f79bbe46ee4d22839465a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9286a2f8df4de98c385c58432d3769a7ec17d16bb7d2e07b169b3e45fc09319e"),
		additionalInputReseed: decodeHexString(c, "d4051a5a566462aa092d1491e3ec0e9bbfa1929b4d477037946fee62fde34027"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a27c7e302d863e294d7a1310e3eb68267f6b7f576b62876a5f6f5943340118e1"),
			decodeHexString(c, "06efb41aaeb68011fd0445cc3bf026d8e13a2e3ffb9446ff49600d94ef275b22"),
		},
		expected: decodeHexString(c, "74da7d098b3f39a9aea683ba85f5973bd0923fd9d89d53679bc223723ee454a6dd2f70b59d9455b247b492e424c263c5f2b1c4a11ec197ae6e53e162ba66c2b2f06f7df358fce1a28c821bc1eb866360ced8b5d6f92227c1bbf371938048413ea39576864044db82dcbbb596125e94b548f41195b45767481c2d1b5787d51e9470902ce1a6be33b2f5e735805fab30e0c61f07c4d3375e6047ce080a952470fd2b5e31de03b02986e855502d4bc113f3dd1d674efaea293a9e47e77200c92371"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed59_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b9ee2488c47e5f50008547dd51a65125ed769c84ba92bf081651e514b9a26e44"),
		nonce:                 decodeHexString(c, "a3694ca961dbc6755194033fc6ea3bf3"),
		personalization:       decodeHexString(c, "2f56bb821333c4d41d8ed19cf424fa99ed590a21695832f6966e5a612f4b0830"),
		entropyInputReseed:    decodeHexString(c, "7985ddb1532c9efcda423c4cb8f8d5e6686446b6af5230e7150246ff8af7d91e"),
		additionalInputReseed: decodeHexString(c, "2e133688852acbcf3a1a06a7fab4feddc787579827997d329cc61f24f2f71794"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b73d3b74b4d6932683113cc571a72a6188fb96dd0f46a0544d27a03498cb5352"),
			decodeHexString(c, "3d4ee87dee5ffd3553914f68ecab44f661bd53f3762f706ad7e7dbcf5375b051"),
		},
		expected: decodeHexString(c, "3fbc26fdaf4bb82b6e4fea0c558fe8012045e976020127b0ed76d01d551efc258a6472c2d7c941fffcd884d4f481ed06f1f7cb32783dbc77239f5c4efb4bf1506d131678c6d1104d19df775470c77d4e58f58c834c4f49a67b362aca1c2e4b997c55a40549cad89dcddeca3580d2951bc4f5a205d7eda5990b97a0829db6c99d98b5a98f1de2c458c1cfa98fc136fad2af87e96d5dd7551299c29cc717d26db4ab7429094787e5c51b3a8705a6a21d0b7acf488706fbe7bfa50879e1c85df295"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d69fcf00509002021c68732937fa730d6001434a672a315b62d2c88c9f6b6de9"),
		nonce:                 decodeHexString(c, "5c9b2716b5081eaed677f99ab729f39c"),
		personalization:       decodeHexString(c, "ee0e90712f60af953295e4f86237e6b704a1a06e4bb822813f2681a73bc1b366"),
		entropyInputReseed:    decodeHexString(c, "834e8361c9b785366cd24f3cef3932d6894125858e6f99034a2996ac34aecba0"),
		additionalInputReseed: decodeHexString(c, "d209ed3ac4bcb6e2614d1297b06c157b97ed7a1798a491cac98208063d467bff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1f272f83b43b46f3f07ae34e926cf5734bfeb5a07e214471009138f23a00e20b"),
			decodeHexString(c, "e4b479796c7679412b52b602b8d1fea6acfba4321e4d7a42a01968a7d536f5be"),
		},
		expected: decodeHexString(c, "7bc7765ba5f63031004bb9fbaf97e851dd691d999e1ae21675abc698fb8a2adf59e1a323f0a82119323c053d2a1929e57087bfa4b6eb705bd14f909add808c9369a6df8abf4b9bb281328539701ca42e99144009dd9ce9e02992887e35066ac48234ce767128d52d0d025ae1b656b69ce75b7b6447727799540b159ee47924caf5a7eaecf2b2bc93698b1b9d63130caa1c51cfa2762c88b35b80ed1156ee67ca277511dddaacb06643e0d119185ed7097e13f80947cbfa29be69781b4c9b23a5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7b8d015a9d668630b9e79845b93f0ff4b50d60f6149d4e94296c3267f450a698"),
		nonce:                 decodeHexString(c, "7f354382d434e2c3e96c928117ec5c1d"),
		personalization:       decodeHexString(c, "89e931c192d21229ee6af6e75c577445d8b253cfe57577604501668df46532e5"),
		entropyInputReseed:    decodeHexString(c, "a9859240095e556a591b43627f49d476bc58183b348e959cdfe0edcef34273e6"),
		additionalInputReseed: decodeHexString(c, "be2e8b57567698b11ee369dc2077e5cd8c8e3e4eacf88ecb630a37fb0b8c222a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "049f414c3c348ab69b50f27aa7413434a8bc58476ec918a0370f7e10450a3c23"),
			decodeHexString(c, "6e7228b61f2d69e4e7cdfe5f47b279a057575db0637f6831a73ee297a27d604e"),
		},
		expected: decodeHexString(c, "f05664a8504307e89576efdaa68d2cca13ab0ffeeeba28caaa40399ce4bab1481ffaf699a56e5daa661008b4e7ad80ac27e4c3b70fb34642231e5b1eb6b2a9db814929421941c239e5fcbf1b07d777a1a2103f41529e117df0fd72c4aaf4ae3cbe07dbfdb3448b243f85fdc9142e889dcd15df0de666e2308cd6899dc2f2997648afed69c0767f9ce8552dc00cac746e50303ae6fd4d50f2103e1e90ac23e041dc80794e30341d9fd74ccc5837336f9350dcf4527161d9b8380e35eff5178a3c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "3c412aa1bd31bc812de9452f6e77ec34a07f03f4ade63de31d9ec6d415b45c82"),
		nonce:                 decodeHexString(c, "5b8fb10ae9b0aefbfb8d9c458c6ea924"),
		personalization:       decodeHexString(c, "3ca16aae236c6d65c817e42d1f8349467179bb758958fa262e432afdea07eee6"),
		entropyInputReseed:    decodeHexString(c, "953133de56bb94e6144e71e4a806ea8a789ed148040a45b94ccfd79f503bfc82"),
		additionalInputReseed: decodeHexString(c, "c52f89aae6b8b20d206aadf54ba996476ac281f89266d29de57534bf2c46c384"),
		additionalInput: [2][]byte{
			decodeHexString(c, "300bc7e5abd2a64070f083150069085b7aebcce45a3bf3989c7ff7212c3c0c53"),
			decodeHexString(c, "594ddc84ab01dc4bffb0135e9ccf0b3ecd152cded3adb18b9087f33dce58fb7d"),
		},
		expected: decodeHexString(c, "c64461f0d873bf5d2756e30be21ec3f32ca5275e5c25aec41734441f72d8a64009aabcda36b1b509c9a5051f93b51d32fba8eae9b4bae279c2933a08850e265aecb338326ab176c8f512e4425c9ef1e9df6a2cc9e3e676042c49998123d2db91b9e6c547c0cfceb2ce018cfc34bff43e183d742acb84814fb7bb9f1235b87a51e607146efd3eb8b1ca4a280d05c7a3ee351d35549516883adc3298704bd6ad9e934b0e6b21a1bd4c312ea3aad6d80d78775bca882a51d43f9789736013884016"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5eb55daf4b82918dbd9169db0c68c58c0bb60c9526f9f7d3d719742e186676f7"),
		nonce:                 decodeHexString(c, "9a56b9f1846fa834056d2027072df0d1"),
		personalization:       decodeHexString(c, "98269bd1229b402387000b0862d6631af5eba774c4965cb4c747a7712c8d1c40"),
		entropyInputReseed:    decodeHexString(c, "0316a31a0443a4f0ad67e8546ffd5099f29ef6fdc1e3074ca38c17941f2b28a3"),
		additionalInputReseed: decodeHexString(c, "e4c96e773a96c09e4ce9f09fc82e8a0a866efa2f08cd59f0fd03f169546748eb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f8c3ab18c753521eec745095c28fa53b7a55fad8b8c0ef0a8b8972863b24856f"),
			decodeHexString(c, "74aa6d95643d43d6cc376f5da3ca6529ddd8e5fb2d4933fc57da093f2b0f9b4f"),
		},
		expected: decodeHexString(c, "b8bf8cd978a45827d9a0f426d4dd3bf1453bb107b4a5bf80b23202356ff55a1f7fda87851092a008ed946b8fb7ba251900beb78c862ac24ec8f2f4d8c949ce60fa8300a316c49deb1c650f1643999c5ed0e1c90f4594365a4846e20e5082e49f6f2864e378637619641b27c536c94142204c282b115178e69b7eebc42c365307fff4d5d6e7e09febccca309cfae047710e2674e43d32bc8e08e111516c8b092a385652c4777ad7922ca670a06d4ff8f71bc2de0ce1362b866cbea471fc799c56"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "11e749777387b9977f10df2fe41396117137abcef9e5f002cb0d7ec20f35918c"),
		nonce:                 decodeHexString(c, "ed74eae237dbfda6748c4cccd3bbfefe"),
		personalization:       decodeHexString(c, "5f506a12673a3b858ec12458bebb9aee83642cc672c57feb1c2ce21e23e309ca"),
		entropyInputReseed:    decodeHexString(c, "77c74fe2c19a3eee159a090bf51fb53dd9f4cbdcbbb0d6572c54ea73669efa48"),
		additionalInputReseed: decodeHexString(c, "76da7286edefa3791bf175d1f622747cf5bddc62c5e03ce25c7f9c403446a667"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1c205e04a553c9f737dea8d9cf64433637c213ecc48c1f01c87e89e29d14c619"),
			decodeHexString(c, "2286e7e53cb859f9f7f745f50bbc8f8ffb97d26043ee9669a9657fbceafd44ae"),
		},
		expected: decodeHexString(c, "1bd7fcdbe41625490eabf5408889445010257b21d69bd44c088dd035c51334b28229392777168253bb5e739c57cf23e10526cba45aff10ce05d1d06692372a9ad0c27a1f7cdeb8c0c1be32174d53af3738789d23279310de24ca2e19853e9d4860347db8502b694ede979c57535c64905fa38a111925a53b11facb2178ad7aa05e7d1889dd032d765534a51e4d57c218f83236bfb8a2905c2a5353ce4d37fceed8e981c1f1f44f297d56b1ad4c6f14615982ced23fbdb4bce4e0e2bcfb744b58"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f45b2447c0a9c0eb76d9e9df68770eb7599ab6aa6561703edc4970a008e2874e"),
		nonce:                 decodeHexString(c, "29e0186f72ec51df704135e9636d731a"),
		personalization:       decodeHexString(c, "6a65a4f07cdaeb93c2fc2fe2698b4135fce6a1e167d1f40ec81427987fc571da"),
		entropyInputReseed:    decodeHexString(c, "07b53f0491d177e8ec6857e61fefb384cc09697295776c2e4f7423bd94d0c17f"),
		additionalInputReseed: decodeHexString(c, "03bde7373e2fdee8b4a7f02493a62018d4e726b227a212ac4e23b4effa8a023b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a4b4650db43fe11fa092c8cbbe6af6036bd7f36e006f19ba6a7b40f262fd866"),
			decodeHexString(c, "36eef0101a9a7a91f280d3f108166bde2938ebaea3c967a28d9d5882287bdb2e"),
		},
		expected: decodeHexString(c, "12907fe4380f4d1332f5f9472fb8eeeb7200f8a04a360b746c9cf2a33d395cb8f33d2a2d3b9e98e1f8b180e2131bc92352e5d25ca57806c76770add956bcb843853b027315e87bb9cbc2522a49cd1dea49605180f331b641a28e2311314b0395534a9a73c1632a925b47c304bbd549ddd02e1717fd09057462fa3e78644c3df7dbfa28acc3ffe03f5ac79e81339f05423cc525f1e541b4f320163fb61a284c0d4c24c148d36fb892457f3537b9c835d0e61a0b2a8861f02b8bd55f25b0296fce"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "4d5a9c31c59e4e7d371ac7b26e0a23035c87ba01fe6d739170039f3787d29e6d"),
		nonce:                 decodeHexString(c, "666c3c837198c40508654f10aed7c62f"),
		personalization:       decodeHexString(c, "a78dbce2974a8c529221630289921653c257753010c95d70c3a64953bc8ffc06"),
		entropyInputReseed:    decodeHexString(c, "2295d141032eda1475f0ce5c741f7b13d61141817bad8d702b072e3927609cde"),
		additionalInputReseed: decodeHexString(c, "c0151683b918d2d06f940455fafd506b0f29549963ce11af96f683bb47c14577"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b4c3f2227bcd4c403963d703b0d34bc061b0b736822114faa304ede0649c028"),
			decodeHexString(c, "20783f0860100f1d9ebfda92b494978ce2d5fb83688edce52882496bbcf36bc3"),
		},
		expected: decodeHexString(c, "d0c491c6cd80e1d521a470d1431ce45b760dceaecc2f4731d4d49506e5394267f893bd9f2e3667fb17cf4aaedc44b9e9d7dc11280133a70da7090573ced1aa3cacfedf9a668048be2fe348750c2b2b209234eacb56866d3ec5f2e83318388ca5f79a7474490b30ded17be335200dac2c686afeeced611c748b541003db9f53721e1538edc1c02773e3aed8e283dd23595a606973291a6895d30db8868cfa882898a443d70abd372ad54b47654f8966f926eb9c2c00f09b9958536b1cb561adea"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "39855f44ea3b66b88ebdde9c1ae8dc9e0ed34213669781856be8a51446b90ad0"),
		nonce:                 decodeHexString(c, "e75bb1d7a41b2fdb7bed4d9f795ab2b2"),
		personalization:       decodeHexString(c, "a196062c2f86e89ce7dcf5cf14f0f770464284629440b9738a2fa8f6f1556513"),
		entropyInputReseed:    decodeHexString(c, "b4d8eae968e044cf12330d4f12a0003944b7a7597feb78dcd039867877fb8e35"),
		additionalInputReseed: decodeHexString(c, "a740f14731f9fd6daf9938f32b601148d73e80b2ad43e86c4568011df39eaeed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6d8554af65629f79b0520179cf4f48cdc1232f547c7be3bdb25d22f65498a1e"),
			decodeHexString(c, "c925e1317b64b1b64838a711307baf62b1fd574b6d5ea7810f635a313eeaa3a8"),
		},
		expected: decodeHexString(c, "48445eaf1d608b11975c9aff1455cf30b7cfe8fc834a6a65c77faf77d41216b3ce7efa41125dac64620e893fb45aeb59de152a908136a333913c5fbe182b5e3e06babbc3a64f8efe96e1346c32b883cb09eac794162d4e7c7f3e8a67b5adf6c08b38ab6aeca1528cf3a719a131207c35de1be891116aae10102dfad0c4189302a30568e15a535ed1401aa428cd0f3f99c1ec3ca1a8712dd9ad87719df92d0e281baf90643e362b688a679720340263e0df0c0d10acb3fd352f1eba78391bd3df"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "bcac662c65a444940e97332b0ceef0f17800d6daf9d511cfc5cc354dc571cb12"),
		nonce:                 decodeHexString(c, "efdfbe0f79e488977fd396993e7c6f56"),
		personalization:       decodeHexString(c, "3bc91131cf3246e55a03a7616ca140da51c1b520b4cb006dece74e16267df865"),
		entropyInputReseed:    decodeHexString(c, "6ae81e99cf4e59b06dd4000aa2c07b6a3aa0c51a9a5cf629dc4bd5b81706413a"),
		additionalInputReseed: decodeHexString(c, "a5b525c09e121aaeefc41ec4e19a518edfd5755f16d80710a333aaa52b0ad20e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a1e853098329a7b53470152fe1b5c11c60f8b0c0683970599eb90d63f6f3d88"),
			decodeHexString(c, "07420543a4938f9e5b3ad6ba70c99aef9e575aefeff3e39fcaa8343f56dc62a5"),
		},
		expected: decodeHexString(c, "764c27b34f50e5d3950895fa8f36c12f3c4be8b2f1718b85bc50b08c98e7d46fb5279ed3cc73b7688b4682e25c35b0ebe0306a8384da405903e7871cbc97ee65614a2259bc1ca092d0bdefdfb24470a98712ee30cb7e95751ef547d8080b76f83d25614d4f5094070d70e13400ca7b67c7a18db18cae2295d6f1dd9bce1073151f7b02a331b37b855e1693ff5bd6dfca451e04f11e94209b817f595f5da32b5f8b861ca8111d3fcee3ae3fe4c9d643b0b302a3dc17176756525174c4691ca91e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "046194afd40e1c6bb44022175e22617193f749c43fb05f031520f74f9e386e7d"),
		nonce:                 decodeHexString(c, "055f55252c2f04bdfd950cf829cf1f08"),
		personalization:       decodeHexString(c, "b2d329914633ece09d0d38e37483d4d31fbfeb581849c69f95d3e7d8fbcd0ae2"),
		entropyInputReseed:    decodeHexString(c, "7516e7cf38a134d210cdb868772788cad6277a052a3ef8282e693509a9f2d585"),
		additionalInputReseed: decodeHexString(c, "8c258848821ff10bb44bdaa7dad48772d294da2805f55020867bfe3773c27060"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db7d5d853dc680644add62cb35a9bf763874633e4d48e52110c3f580c3d3216e"),
			decodeHexString(c, "6192a40e5f1f59c8299140fd1fa4f1d33cd88b8f04f8c0486862c944c737ea10"),
		},
		expected: decodeHexString(c, "b49a50335bf288d899fe255f07074e677aa814a0a5f129a6aed29bec947114c99e0772d35cd271c0a591536d1e1dadaf104acbc34ec744b3c6d77da809d0a3b88788c958bc54ac8f42548fd11b2722651e8188ea4300bef613a323c71bac55ae0570fba7eed2ec6488c8fce629923842ae285dd2762468555acc01e2e16f47c3b2df092707633db6e55d7ef02ca8e7f30e063c0bed3fefd70f5cefb7f55d471538a320c33a7e0618f3f80cbc95f83eff26573ca79ce4eb74fd153a013b3fb771"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "04b066c5b6427298762341a83dc69d8713a7b06459f50bbef8a0682fac963b2a"),
		nonce:                 decodeHexString(c, "3c7088ec7714929303c467683c13052c"),
		personalization:       decodeHexString(c, "16e884f11d41a5cf0750f94928ca79fd90ca3f5a7601e525c1f7cf331177a69b"),
		entropyInputReseed:    decodeHexString(c, "eb19b9e7f82e11963fbeb2d478931a487e61d9487ec9caff7ec3a360971fe751"),
		additionalInputReseed: decodeHexString(c, "af7e2eb000f51bf6fa321f0491f84f753c20e8e23831b1a7c52efb05a37a0222"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1574e2c2ed2d1a5ab5a19ee7527d79b19f9efd80da5734752c22cf37d0d1577c"),
			decodeHexString(c, "a7545fe8f32d4036c164783fbc327f36eafbcc24afc88b176c99406777da0f53"),
		},
		expected: decodeHexString(c, "f00b2c09f9ef0253c08f84e07776a35fb88bede970b96529b2a269e4e88d094f78a09382f5bff5c928e48937d6b78a379c687ec32e5a3d6fc272f698b124296ad0d113aa133aacc70e4c83244d28d4ea2815b55de1b71010faaae6dee76d449afce4b7f85d540287c635639db50e9fdd141114eca7fc76d57eda87977b91f3aaf7e1e94ca0544304875277f932adf2dc562d17cce5f12d438fb8a747639124a80f2a0ec0794d780cbea81124705b294677a76adbfecf3d2264b9990915d2e9a7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "5dfff808bc0c2af0a7ba25423dbe7cf10db531b9de357829b75bd1365d1a48da"),
		nonce:                 decodeHexString(c, "815f9caeae95aec8bfca1592ef97eff5"),
		personalization:       decodeHexString(c, "a5933e51ce9fb2342aa5a3a41a55401beb5c8cf19f2f94556c4a17a3f5043a3d"),
		entropyInputReseed:    decodeHexString(c, "bfc4e61b92146cd6dcdb42dfd80c289e55f3599093ad4961d13c09fda6e55e5c"),
		additionalInputReseed: decodeHexString(c, "1bd3231114f11415ff34d071159a0423535f69ee5b895a77d178bbffddac774c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fc09612f7cb6244f3245bc996e6c96ff7493694b30a7cfc5b0f669c95e7a6b5b"),
			decodeHexString(c, "e21bbf0ea30d095b23fbfb32e465c1682b538a69215156f8ac02a9ad49f00714"),
		},
		expected: decodeHexString(c, "5d00f24a6dd8b3259127aa2f1650d71abe16d416738a36a8d47576f9cbfb435f3702733378073bfd9369a4de8870e06c79dcefcacb2074e56b8c4a16f950e3b00b4e66ff73f7736378e64b6447084dbb9fe75c6f19170a45bf46c73e8e96b1cf9ab0da5d894c190fb22e48b2d3e884fa7ba30b523be30ecda834688af4278ceaeb1cbe1c6ac97eb6bfccddd4982d59bea01c593d8621615a11a48edc60abf9a2861fcda9d42633de2688bb19886931bd1bf21fe74f32ffe35c32706a9ba4ea41"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "2ec77f6835193b0c29d939384ebf391bd9361c5558a1ff404e405d78511f0b6d"),
		nonce:                 decodeHexString(c, "f98a6edfe416ad234731b436a213ddf9"),
		personalization:       decodeHexString(c, "dc88e59fd38ebe8e17fff0469e8e177c7219ba25cefea84b85f33cb15883afa9"),
		entropyInputReseed:    decodeHexString(c, "be5951ef10deed5aed79d820de681402e7e312eb0bf89824de3a52d521f7570d"),
		additionalInputReseed: decodeHexString(c, "33cd5272d507f9e54c940892b35f37df968a884f9998e911427a1ee08c540447"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c66536f21cb947bd7e635272df666bf02c9df4b9fab504d36551c914f8d055a8"),
			decodeHexString(c, "a27df065f08268be514b2eda2b0236baa257583d9e4bda9059c9072e6b0e4b14"),
		},
		expected: decodeHexString(c, "3fd9d3090102762ad3151cf65318773dd845ebd15370811224bb6c66e719e90b4380f9014272216c1b1be645c921839da8554088aadf852327d4604cb229fa85d95b6bed604a4dd2620c25223cfac3feab74513fa1b78758500dbc137b88e509b185dab88c7e966c2023b2b9f550d4efde5863b88ef1d03c5db33d18870129584ebd16781ea8c0006b8909a953499b37b861d6addaad93510ca4ddfee94e038770752992c749e4cd8c6acd4e33aab1ff6aa5371a427c98e8a365506910a1b82b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed59_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed59_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "eb16eaef9616d415fea6d6947fa53992c8e1133f9f88d4ea59a0a860a2757bf9"),
		nonce:                 decodeHexString(c, "8f4784b738e1294a4c3e5c9ef6924f31"),
		personalization:       decodeHexString(c, "25a429083b7f8f5d74999ac0fdf0e79c7f8a1351d49b8204205c6804b4f424c6"),
		entropyInputReseed:    decodeHexString(c, "655fc827c32a2c407df183e2873a423df0bfee96807136122dc7afe4281c66b4"),
		additionalInputReseed: decodeHexString(c, "120d95c112c58347649b02946f38ad9ab60e3897d779f90c6066ca9e1268b7dd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "748f6d38a6f6e9bf1ad80d3b67e977a08dfa02762c2fbbaf66e2ff84d3681a36"),
			decodeHexString(c, "8bddb28f4a17a712ca93a3ffdb32cf58ddf5e57267d6977f62ad613e57397077"),
		},
		expected: decodeHexString(c, "ab5bc292b30130a37ba979749276261a58d2fdf26f357419904c4457e4f97fb261de3f239ff5289d30bb0d0ea2ff45f00a612970ae27956d4b74b0438caec70c97edba27405663cdc6e82c08d912792889d3ba584862af212620bd4f254a1e09bf458f84e7230ab5ff0bcb271edfff3dab7cbdcd8b362c33a8db9bec9c8fc674923e23f839fb6f4a790544f81527cc71a7f8327c2a0b0b400c7c064d64b9c7a300d708fb82c7c0ae6da27f093fb1261802c0b6761a0ed6b6d3cdb90878e54b1f"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed61_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d46e1171a01593075d3b13f1428f21ce5d64eecc530f6d21da3a9a575ad230c6"),
		nonce:                 decodeHexString(c, "924b6d369df497e2ccbe09fe2e2e4362"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9d59ea5540d2436cdbeec2338dc24819fb0d5892b25806f4bc28c056219b346a"),
		additionalInputReseed: decodeHexString(c, "e7ae80f150516a861603d890257b50ef8adedd985fd12d00eed389de57d37166"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0b53875ef5da4b477fadaa34409c2a4ba5dc6cfbcd9ef0416b24b634b7f520f2"),
			decodeHexString(c, "4ac192aea56f44343579fe2d4791ca2403af43022d5c6f8d5f3833adeb61dae6"),
		},
		expected: decodeHexString(c, "1fad71a8584099a41f0c78a19b7c42e3fe8317d7db0edb6eefc80a1c8b6de7ef85c411a413a62f4bead905e8c7e3b8857f7230dd78f1b5b20679807f5c94de6630996069fc3488fb22ac462b010942d5b3c79ba8a69e318ea9c6b3564bd92dfa5387cea8a17cc8a802471cd385a73dbf49a5e2e7dc930c0b1ca4b246a25f1f1ffcc252c631fd856f8a76df5664a47e7f767302af90385c9ea28b395f6736f0c9e0342add5a92e4b970ecc63b4206bbffd281b9039fefc0c041eff9a7fc229dc8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "b10b3e8fc0dee3361d14ede5e745d04f8430abe7403e50149e05384e57c11afc"),
		nonce:                 decodeHexString(c, "a0d524195d9d71d2a9daa50ce225cfce"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9dcc34854fd85a158d4316be97497993d622d6b83746f2a9b1764cfff85be3d4"),
		additionalInputReseed: decodeHexString(c, "2bbd20152d2b28982315715a30cd8fc575b8f74784cf3d943313eac7a553f545"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8071917930ec1b9247dbe5783228b0c4c9694b1be3745011760ba2a934cdbbc"),
			decodeHexString(c, "3a9fc5323f24fe28172afed4402576d47d10aa748a630ce0933ce5501a133737"),
		},
		expected: decodeHexString(c, "c252b5f699aa578299b1f967c9edcb1e7dd21915b8119236229c7cc72bc2ca5c5c4de123c3110d11d6afa0c65bc425bfb584a6e3ee63b6b1e16fc3c84d96cff51c15e097360a10817144924fa0af094696d7934e6f31fe5c699841c803216e020bb41430abe045d6225c16eee5a4dbb50da8f609329f19fba2d65afd7a68d7f7a51aa2c12c8a11d652f929affabfafa7c14f55b5d4856de4adeb885e9a59068db9ccb441d5b1d4415f649be15e736f76eaf6bf7854675eb7f5e09539c1644429"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "4852a7715a4a97f7afa91a683a127caf2cab4c450572316ea7a809daae403415"),
		nonce:                 decodeHexString(c, "a0c9565d12d2bd6628f1d1b92670ffe8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "891ad9c623c3bcf7db3ff006bd466a8fb68d2e560c2ffca41f9b5ca4a94d860b"),
		additionalInputReseed: decodeHexString(c, "60435c5259ca985e02a9370e67c5c9f951b70255db9f53987c181d39b6df0e33"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0965ce9c6c98d877068e8e962818f303787a3be192781f54060fb419b7cbe9d"),
			decodeHexString(c, "20ebd9491fce77dd4002bb0cf3ca065e36297bbc47d7be29b4ba83d635e91a39"),
		},
		expected: decodeHexString(c, "598d4feeddbafd462913e7ab458a0ffa9690fcf1d76a87490f6262e9919cadbfed332f23765028648a73e448f7d7e8ae8604def08db628e0379e09ae121768ebbc0f8818af5906e41f37391c4f542a5079a3673c7c3f7c961f04ab07e0c4bdf6577b36a55e169511fc89e9c3aff4d1a8d2de4e8956d8cb13e458802683f75f8320ca0131659b8bc2cafbaaae496c3946c2c494e56dcb9ee0efbc9c0d84c8d06c09768dc40b8c4f33dcf7b87c8d12ffc8b22ae99bba342db51d7210eeba459ae1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "3d54f286282a5474c36d8e8e2535183040c569e49245b5da22f7f7f2e2c7f337"),
		nonce:                 decodeHexString(c, "3f42b3b80886707684a0304ecfab593b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2e2031bf6e85e4a8f48c3608400f0e830e9333db4fdff063270d4fc858f22378"),
		additionalInputReseed: decodeHexString(c, "f882d2a77e20ea79f7aba773f7c86d5fcefffe1208d18eb64668386ecbbfc80c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "332d2975fdefc31e4e7b381242819129624e7b270e84450b6d6633b7a64fa9ba"),
			decodeHexString(c, "952aabc00ded6dcb92c4175842f3259fb17301cdc9bbd85d8b033dc84276056e"),
		},
		expected: decodeHexString(c, "361e82acb072a0e25eff093a37be474194e5c0846a1c3983bd7dfef247c372a3bde3fede4a9736116ec61069462f41640bcd706d6c556779f4dcca9730f46a9fc79321e242f40f8aa8cc4ed9d318ffc761602ff6a7be6cb120682b594c224dc675451c4546c5c748558ee1791e3db49f4da0a374ba8b926bc08ee906fe42d3f62c2956729a6d4a214568be5c68d148179401d490a6dd07cb7f514c12a311e6690b6e8b5e5bd3613791495d24f248f7641c4d9a79b7d411de4c2287473ef0d375"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6ac3771326903d8fe7732d1c59b5a6bd73246e359aa49bd5b00e820c283afcde"),
		nonce:                 decodeHexString(c, "a64549cd40b57fc84af61e09897b7b0c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "22a2f332f18d587575fbff14a26ca8ab945fef3f763c79edce33019a1e53275d"),
		additionalInputReseed: decodeHexString(c, "2d3fff5e1e2f582f40e0906200445c8d6ccb268aa770d5a2fac7541f76947ce3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8b001e27a0d6c2acedb8bf32af60d7a682db1b52139df9c3f229e4a07f30fe33"),
			decodeHexString(c, "ce15f804329c1f41b090707c24731c33609b7d98af1ef54d0abebc86f58e6438"),
		},
		expected: decodeHexString(c, "bb347b7558f92b7fdfafcc984b054e8f3974e6194135574944054b2bb26122e73e992a2467f816a3afa40f78796c47151f027958918b339c275c39478f30b7ad3273ce6783d47900d18423b798b132fc55fd2cc104cf21a3853fa6d324e41125649b5f77f62f7b52ef02bffe9d868f2885e2190e050a2799493f30ebdb517ca02bc62723efd15b4e8ca78ffd2465e132f15206dc11cb787fba9ff6c425c3787a46cfedd4a3a31448e3d5f85f8b7e1b89f1fc881c00f3c29e90361745f993932b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "60873ccd3395fb795a721d7a958e7cff104b955c43d5485cba92d1021cf8ed7e"),
		nonce:                 decodeHexString(c, "5d93345c2170fc5d2b118e7bae202f8a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "115c106ce887de783927f50a5df78da17f21dcfee95730326bbc1694ef4320aa"),
		additionalInputReseed: decodeHexString(c, "c0401764b29e72461ac86a2534d6d7c542d0e47e88216cb784612742da53d427"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6f022e177f8b5e03c119ed58aa8dd0cab6cbe1385fb7acbf9b87ce2a185e7b0b"),
			decodeHexString(c, "8c48813fe34cd6b6311c0601a979215dcdf29dfdfdd10473edde2efbbf9f49b9"),
		},
		expected: decodeHexString(c, "00c5549966a84eb083b5e2c4d3399b7a739c9a7b088a0efda777021f49524102ac1eb47d614449a183165ccf839835ffc73bc4cf5720ed1cd81b84fed33af8cdf564a600c6cd3ee06a58f7718b97f463ab3c9dd295f500b6d80e5b6a1b39f11d7430e7c18f1bfcb62f6ef19b39c655bdb737919b96cdcfae71d113719cacc13941cc9823237aef323d77035a6fb3382f1de0b2d131e61431ec637d0e9b80cd0bcc3927bdc5f477788535063ee8bb000623a8faedd2bcffa57c73b04924dd3bcc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "3fdc4aaa9fe0371df0ac1e8241d3f058cd4370f167cc1f7c83fcc3d6806f46f9"),
		nonce:                 decodeHexString(c, "fecea93ab58a60dbde0ddcb95ec4fec1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e7ee3fb9df215e576df97f1adbd08c1e671ff77a48d83cb3eaed127753b04282"),
		additionalInputReseed: decodeHexString(c, "7766768cdbb60aa386809272703e312a5b0bcd455a4b8bc4a8286b5c5116e3c9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3948972e8eb2ddc433be774f2b70b508a582563054dada9c4160082cdc6b855"),
			decodeHexString(c, "d29b80b66edb9faeed77631fe33b719be1b2fe0c657f7c9303d416d6db098539"),
		},
		expected: decodeHexString(c, "7713ba9b4430ecfde6f3797e963b504c448c0bf65faeace69096fd39f2ce8ae5bb8cdc911b5b30af02eea7600f4fd4f7f8cbda952b30f943d382bcd0f5adbddb31fc3d2e97b1719a63195ade72733b889115a996eb4582a71815f9d7204566dad0aed6a1673dd81bd5cee842e6552f17b6ab9556c7a494744d55cd7e97904a7c7fd4bea6d267233837360f926468105615a7890c53611e051f78d721a1c4a59f784e2c6027d2dd9b8c338c08cf0b3aa69823456b7b357d4f3817d7b93f1d9102"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "9dffaca2b0ddcffbfb945bbdebc328f8369006b82700b8669436c106449b41e1"),
		nonce:                 decodeHexString(c, "570bc574366e1b8656422fa0d5a9ea2b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1528746cfa4e9867c574cf1b7bddffbbfcca8e978c0719d055522164b4a372f8"),
		additionalInputReseed: decodeHexString(c, "13bd8303220d9beaba8c523ea0139773b5a980c8e47ea82ca80585622a9e3006"),
		additionalInput: [2][]byte{
			decodeHexString(c, "50f0977b1b02b0c54d83c4c948870ed86c08969b870cd7b934840271599e4f1c"),
			decodeHexString(c, "ae217360d7efa796b05737c80f1f43a96d20bd8b0dd1bf9e68c47f9d7416f9fc"),
		},
		expected: decodeHexString(c, "544167af857462c3f21c4408b87647d8c26fefe554e4535df0a27254cb904a1bdae2d290c48c11ced17984e6f42ba7b19c0499eeb816d51d143a0050bd0bc1c13f23d5649a7477c402c936ece1bc9223f87eb7f7c8f85a9c6e3761aab0eff143765c8e22152a1da9267d6ad6c723bf63ef1bd314c5a39eb78f0b094f4aaa841582e51bbf294251320b2097cc4727ad053c881fde6d11862e73041ecd336fc6d904e1db54c820571560c22c9da3f99b23aa367da2ca7bb4d43c4d8f62ba191412"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "38ff55a01ef58775a5c512a587b673f7968f4b13ce574472a7f60f4fb3e08702"),
		nonce:                 decodeHexString(c, "a9254ff56600dee6eb2c88ed847dd77e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a88de1b449037b6b4ccac685b43e8d3b916b389a8806767d1798d929c85c1ea2"),
		additionalInputReseed: decodeHexString(c, "89c7b49228c9ff951e4e1e355491c4c0bccfb933e06c187951584cf4bb4a66be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2348859bf8e790e9dcf38414d18b0481ee3aca9befd3070585fd705d7df05fb"),
			decodeHexString(c, "6498d8e10af09f258dd027e51ebb1a91bd2726bad38abda4a7eb229a65532079"),
		},
		expected: decodeHexString(c, "d53b091a7463ecc60a876bdfe97e91ad6d8be0900349288c2c2b28388b78cde372d975a819c9911ee39ee2792f1c85ec700fd00d76a9c714c21a21a51d8ae0acf00ea36099e12e77335e0ee9ac4816890e0c44a265f90e15585b0af2032c7427835f0aa024bd919abc379c45902d2fcb0543f74f39bf1e975fae7340f080614f38b1f8a9fdcc417d8e566cb8203f88d381e2afe199ded8b98c29fbdce5d731bd19dc9ee54e9ddf3f82215320314213b859b01f6cf39e8ce322108c18a3d3366d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "10ab036947123ad2294282c92823d7af2535bc20acdde030eaa5528ef9800383"),
		nonce:                 decodeHexString(c, "5d8786f28c108f087721ea5608546b13"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ee30b27d2beb23bf1dd9d7db25619df130fe941929921444bcb1f3a229c2ab05"),
		additionalInputReseed: decodeHexString(c, "784adeb67e2fbc6ee5ffc8682fccd16ad2dc7c78ab9044afe001d65c05b8df00"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2c4e20ce0cf6aad11fd325d87ff30607966e1de8c7f0f49d4b0979694a6d2416"),
			decodeHexString(c, "b393089c9d476f7d8963468f722f83f935a3af0689cf48d1791fd764654b946b"),
		},
		expected: decodeHexString(c, "23e57072ffcadf35e36946bdfe6f5a998531f6eab3d921f2026f07eca3952cecf15fb60a88593867a2e848916761e9889ab22a8f028abcfca573c8fe6028cf4d139f19b28d821a191be3af42783501a515cf909599f1be6f3748c341307f94a5d5f2aa7efbad403f710a0b2851bb8a01fae0a79741d4dbd9c60fd40e12905175c0ac1b5e1361e686ba98e8d0fcf4a09389857371d8ac80d2638178814dd57edcd8ab28ccb51dd8f9818214a825efe9acbf68d5d528fab9dbcbdacc43bfb55497"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a0b144bcc5c40ac6d01b0cbfc49e1ac6850d6fecd23b3ee0e941346a9eb175c2"),
		nonce:                 decodeHexString(c, "d4cb1517c9da196fd83301acdaa86909"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "be419af9bd237ec370784c44dcc8be24721906c57b7bc66fdee5692fcda56154"),
		additionalInputReseed: decodeHexString(c, "7cc6e6ba858579c9dd95295d1d156be32b2b5fb82f3dc000e033dd9ef6669512"),
		additionalInput: [2][]byte{
			decodeHexString(c, "26ef0855f6deef3a10018c730f06f7db30b4df4816a2f903b5cf6b640ce7c1c8"),
			decodeHexString(c, "bea765b83bf590e643e1dbf74f686b042fda2c58cfd1f162fc924df43b8fb160"),
		},
		expected: decodeHexString(c, "31a0d9cbca285ffc88f2047cb67a39516a58d505203bfbf6dfebb555830179ddf7dc1f0332873ab8cfd2b5079987f073e24bbb680f0a174e29cb679486d1a0916c992edf351b425f1270da6f02909b2cd9d5845dda494413f75ef400983458e850007dfa49f69dd5c9b32f9cf8171f984baf052ed57455084c9ac1de59bae9b3eaf00130f8f3cdb986e77390b6aa14e6800034c3021be048a5ae06b4a72e79ada78c36471a63baf014d1d938a9f1dacc600114774a4cfaad377e0c2859c63163"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "6e74db63664c435632349b8dfca8a26d0e631a763273f49765d79d78f4e21c42"),
		nonce:                 decodeHexString(c, "5880e1e7532243c903e464ca5eb52d2a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7d109c0ce36f55a07ef5d0c88559b009f488013dfc48ce81d3e9e3324caca19c"),
		additionalInputReseed: decodeHexString(c, "96580eeede224ce67ee3115c41eeb820368e91f50348724335bbe5cfe25427aa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5432dd04eae8b887b2f1e6f0218e5602f39d6a39b5d90bf2bd9c36c88f91b7e1"),
			decodeHexString(c, "2f98ca8772b51cb630d8917b02e8beb8577b1ab8e2c94d269f425c1134faa106"),
		},
		expected: decodeHexString(c, "94e934e0eff60831ae5ff14ec5d7a0724d680a856c986a1036468ce364971f422c32f6b491e69570ec7e1509f25d181293b6856e8fd6b52e07aa316820dc914722fccce702c5ba9007e57e7b70a477d4511c4367339ff4796ffdb3903342b9f929400abb032a182c0af235c78f12c6c6cc960641cd35b979e3d58dfe50dff7f62586634b645067870ef0a094ca357f4e3265220c3203d15fe311136b6d215efea887f78d4ccfdc86ddbd0bce0af3739d1809d68b496b05314b5ca8bcab24cda3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "374d915a32eea4020a68a6eaefca3261a6970840a4c16a419c815ca62d07c3a0"),
		nonce:                 decodeHexString(c, "cb9f0a0ddcc5f993165f8a6c00134f81"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0d1da108fe7cc4ab328dbca7b33b4d431c4d9c9544fa32606770895fe5a791ec"),
		additionalInputReseed: decodeHexString(c, "fc9008abdd6699a81e04e44f29a16b563e933bebd878acd61328cc2b2d515f88"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a6787d0e3500264ff8ff11956787903eda8c12c4baa501d15d5dc59e30d05ef5"),
			decodeHexString(c, "11daac9f46dec0433d89f2a0581d1e3b0c17e785f17993f5542a70f9fd19dc4f"),
		},
		expected: decodeHexString(c, "a4f05683429d4ca4e2215399b047c4c19ce2e224ff23af8290ffeb919e654cd675be95de361983b23fb1951df65e499fa35d51200ae9ecc3f66ef9cbbfa6e7fd985d6b44ec22b067cb820546517a598ba571bbecbb942cf121193def39ed9decc1f73971ee67d421baa552ccffb6183fb74a9494adb1fb0858c808b2019125cf3430c302d6f349cd421996c8478afc169a7cdb9d42e9c53c80f14f54fd5187ce03b59fb6b977733150367b0a9812e9b2edfe06623a08bfde0a78a5cdc3c2f801"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e7ac99c8ad460a4236b6fef2f628903d6e33e728a61c67c011a18f3de150e004"),
		nonce:                 decodeHexString(c, "9f6eca444a1996daa6dc8a5253eaef1e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d46106b78499e2cb05ea88ddeae5746f6fb35ea064d2b981efac7b4724508639"),
		additionalInputReseed: decodeHexString(c, "8d08675af6a0ca49ed1de31e5f1984416901ead33c5f87625499115f315ccca1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9c787c7b6482704587b1618462b0f4fa46b5a9009b6eea9c33c1e97db295aa2d"),
			decodeHexString(c, "58e9bbc08ac09cf9ccd61235a3923d8de15853ad220410170a07828b494dc530"),
		},
		expected: decodeHexString(c, "aaa8cb4260c3a7c259a1f041b4820d3aec9fbf902a075caa4d93016aec01901e8cc6ad344dead6d8de558c4be813a7611f4b3ab52dbe8aa21e3888e2c93130d3143c9bdfbc45a7c5df5768ae7aab83e9dffcd7aacf1b95ab500c0296ba824d0dc8c951b983082dd804199e2c681ba5f09d519671f2042215f199ba35819efa83775ec3b23b010e94fb418ae28ae6527f3863f53187eee4f2945f1325c5d9317da977934d185ff7c02166ff004bed070239ce2e7da5fa46346d0347c49208a785"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed61_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed61_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "58c9ab9847cea6c8419ee5f387b5712f7d97b829dedb4ae20f1c3a24bb02d052"),
		nonce:                 decodeHexString(c, "f7963fa46dc8ec0d00260d5c2773d89f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b770d4b87c6b867a9278a01329514601148a3f3cd92303526b435e5363a053fc"),
		additionalInputReseed: decodeHexString(c, "c669c32fcc2593d5dafb3009ae1a443780e4213e22be6eb398509e24295397e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b7768cc6e21863f1d112fc71ab46c754cd2acee54c2bd0b32ba1e659a7c6c6d9"),
			decodeHexString(c, "610d7d1a4f28c74031be673ba7c1a8fbce20316eb3a45d8866849818e8a4d785"),
		},
		expected: decodeHexString(c, "38e8823928228da2c9cb675da8f9ac0da596bec15088e9608e23c125d77246325c8ecc44e18fbabb632fdf788e6fa46f89fce033bd9e00197ddb6923e55a41bc893ca12b85e7697325845b19b747dc128e8d8f87acaa75446654e6a8eb6393d0a5a8a828b896a708206d9207b00a6b613d812d26fd44c8503ffb91698ba1f7c0a9222e88688e4f0737d2dad468f4180c50dff8d55aa3bdbae12a6f1bc3f2a13ef95c5d6f76d811fa519894329d115ec20769fb91e065e081e35e1014134ebe9e"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed63_SHA384(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA384, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_0(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "07237be288c2884b35bdbfdad69aff2fbbbe19309c252dd5667e515323a5fb0b"),
		nonce:                 decodeHexString(c, "f4749e723a50981f295a8285d3af4637"),
		personalization:       decodeHexString(c, "e39c5ed918966ad81716b36ae9d01f978d950c90e25cd90771fbbe0eed4b739f"),
		entropyInputReseed:    decodeHexString(c, "62dc3c93d06f8e7a31047d668e7313a616cf66dc61dae5bb460bc05d61970381"),
		additionalInputReseed: decodeHexString(c, "46560e7316495f0ea259825a4492c827a85691da822df25f9ac746a854c75bab"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9670ebad8432f09d4c9d842e1a3c5a933e356f1ce245e6687c300b0b453b7d4d"),
			decodeHexString(c, "febc84bf83d83d8a0c5c253135b37756df4bdc3dbe8c142c4a9e243036cb0eda"),
		},
		expected: decodeHexString(c, "e2ba7727aaf71c3bebf4a657afb948036dce7aa4e7fdc8ac8df3651a50e422ec77d6ff7bc9d0e5ef02e9a630f3e6f45d04311f0a07ee3421c6c4beb56df848a5126f8d21163f23f9ddb5d7530e36f500e316da53b83b326573e2904d511db6d6dcb72d3a1e4b2aef3966dfbae57fa7fe62395d24812b1e3248895cbb3b8b574e6b708598601dbd8597e0ca229be3e65bcf9eea7a8e0d007acddb465293562ef5414f0f86e9473bcbe1037233be5bcc2efb7b4c1a7a9d117d1a2116999883f45c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_1(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "90419bf5722b072e0a502d4f594a25050dd90737edd932e439f2abafbc3116a8"),
		nonce:                 decodeHexString(c, "b9c0c9d4946bcea2a3296c0fb737f9f4"),
		personalization:       decodeHexString(c, "8a213199c0c64cb5874015e918e411d556b8e5bd68075e423367b5492fa97754"),
		entropyInputReseed:    decodeHexString(c, "403ef4307243b8748995badea0f965b43361d513d63d7e944ea43876b9cb2055"),
		additionalInputReseed: decodeHexString(c, "aaf93948a3225d9e1369d8bed330953fcad50554b71f31bbda44f5f447a99b15"),
		additionalInput: [2][]byte{
			decodeHexString(c, "70ec163e9c9fe1e6678ebd6688b358d5dda5ee703549ac91bb6db3222ad3420a"),
			decodeHexString(c, "58fbb0de7872b26ebcaeeeb29c8d1a7b53a7fb437da20863eb9d789a8d35675b"),
		},
		expected: decodeHexString(c, "f534b72f59e0fef2620eadc299459c4e612a15a51b7d341668ab7a90a5740a8a49701627de6cff6346234bd1f94bac0c958523dd8356157d60ecc3a575aebaa2929e9eda9c6323544baba39d03d8c110f80bd63b4d84c59637b48d3a6319ace80a72fa05c444556332d0d032cf8d39316eff4a8f24aaafb21fa0e6ddb8446e4afb6fe801905223b9c96cf18d054b3d8f6cfee552ab249bc44567f24d9549ae24c0cdc52c34f166ac24305aad4d4e92f782bb4edd3746a93aae1ebd0da14e8298"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_2(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "a1f805342d5f5f64018ddda543b5a8bc521d02beb4dc846b912065220d20a246"),
		nonce:                 decodeHexString(c, "3b453a4594d703684d8da87e7365e944"),
		personalization:       decodeHexString(c, "66e893a00e05c28049e648a5455068cc309a6e65408d8f0fba91a6c9a7fb81b1"),
		entropyInputReseed:    decodeHexString(c, "15313606c73db025c86406febeeb3bc27fd207cb5d942ab316170bcb6768d398"),
		additionalInputReseed: decodeHexString(c, "76c1742f131d28095ddb52c09452ea9b9ed2b90ea90fcb9b481d9d620705dd7f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2e87e4d60a502cbad7160050ab3d79d5ba519382f881839c4d7185f009d66ea"),
			decodeHexString(c, "73a824541ab0f0ba6e315160e8dbd7bbaf97da06cb18e35e83016d850422d5ab"),
		},
		expected: decodeHexString(c, "a56e36ffdf09512e5f56133ee5facc80bb161d20052cff00fa0b2e44dae512c027003de4edc6c70edf306c85590095a83c9d324c811b3e7ac91178ab6d94bb6cf95dc20d8773fe2590f65717438f3be2881d4e4b80a749227f396af45b4a5b1a1fe1c9c78de4023f8a9b805ca7064e07bf159a346a15c6dccf8f91043acd7f105687b01a020859fd5e7db11a0578b716362b2e6e1834cfb32f495f101a82f5d3d4075e3abc2ffdb1fb9bb1b3b2d350ee90a0c6cf5af56ab2af426d83150f3c4d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_3(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "bbeb712ef99039f4d2b609053ebf2434a37eeb78339f034a49bb3d37d44272a1"),
		nonce:                 decodeHexString(c, "2fb44d7fd2e071e8afe4fc3730b69fa2"),
		personalization:       decodeHexString(c, "7309e597df52d096755fe5415da69d5f6d42441dccdcac16981a690dd4b1eeb4"),
		entropyInputReseed:    decodeHexString(c, "0b117d54afe156df451528d407b29434d7befd7596e9f3c03daffb5b30cc6f30"),
		additionalInputReseed: decodeHexString(c, "aa024e2f08f9576fcfd7518bfa459ca7d1d5878382137d969ae6e7270edc8dbd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "581f23920fb2dfc603d462b5defab97e2c2c937e431b43f51f98945c0b919844"),
			decodeHexString(c, "979498986ddbd981ff136933e5f64cfb0e19d69b2dc75eebfb5233331d1eeb92"),
		},
		expected: decodeHexString(c, "7995bff96ab45f52701033d0da9dcdcb9261a4ad818c31878218f1997a354e896303940eb62f9cc46c62d39ad2941a24d076e884ed9e7a1316f7184abf34aafe96dd5bba23aea6ebbb993425294430327762b7d3fea652ef68306d525c94cce3b58bddc897a4f2b4044c753338707a86f789ea412c3e19cac5580baf30b5e7067658cbd04df84c822c81e178465a94f5cf72545b5446c35d9a3dabd8ea4f8f850298ea49ab086f7cea04bbe5c803e9b641d0a1bdb0924e8be7254dfeb5c6ca90"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_4(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e6101a6f75f2b24d489642bb96f86792bab52a495dd19992b21e440bdbe83e68"),
		nonce:                 decodeHexString(c, "8206c12195af12b694d06de95b30abab"),
		personalization:       decodeHexString(c, "147c89530cda1ab847d312fcffa5bcc77e1e24a421986ca6565538f99699ef08"),
		entropyInputReseed:    decodeHexString(c, "07aebd88f5db59d11adaa295ea05626d453235d615078b742fe0e68a316f3944"),
		additionalInputReseed: decodeHexString(c, "292b4a4af32c41c94882dfabfa915100279642a0545a477eb80ee8cff660f4c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "67c180324b132d15d72c87b41cbd41c9d81d211950b56bf3453b53492c7a78c5"),
			decodeHexString(c, "63a2fcf9017f742a8552e834cde6fe1d186ee8a97753fa31cc7922c652be0109"),
		},
		expected: decodeHexString(c, "f9e285f919171fab163f21efb7f9329e213253751bec86b0cc51e20c2d5d16d4569f90601dcc8cdd21a81dafab331531ff3720e72d4e847af004c50c29f053fffd7d3325a7d0abdfedbea4570400549a87ef4485cacf8161d18524d9897e5c88852ead9747dd1373581553b1f0443c385179f1f24054522d6054851829348829988447a6e621d06dfc8052b3b02d6d36e19c7f60d9dbe723b9e5f2a57d7f260f19d6335c366036b33cff5d4829c57a18f8c1a397e34fe8ce32ad3359e586facf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_5(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "01d415cde6308dd619d4bf8f36108e3ce39ff3890e34f19f277844817a174b4f"),
		nonce:                 decodeHexString(c, "9cec55965bd0a7fd007a32bf1094d2be"),
		personalization:       decodeHexString(c, "faabe5d2be77e14b777d55a36ed71f7bc52c7dee5688104daef6d7461ba9be30"),
		entropyInputReseed:    decodeHexString(c, "0bd7e0e7bbee97d90458d1a43461660264f4a4ecb8fc74a52df60368e8c29e49"),
		additionalInputReseed: decodeHexString(c, "9df6efef751a483e1e4e60fbdb4ba366e6c077917bfaea48f7c7b90d5f8e70a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "79a2f420a9526a21c0db3cf407dcbe3b77df908936ed95f7f0be558e17fae349"),
			decodeHexString(c, "88429b1546ed91298328ab25f74b2e980688a88420187647722d073fc2a4701a"),
		},
		expected: decodeHexString(c, "066188b3b173827cd482de572d3cba9bba2304c64a3c1fbdb4d245f3a3815fcf76d4f2af1ce494ec9fef447b745eebef32fe7dbfdbd401a6d1246ceedf50c04cb8a811cae9b84b8071cb021d65073538d1d8234a8c77d965e8656d9aec3f15800472cb783fb101a065a030b1afc1c9dd601e71089fe9541f31057b36454c537df579e7e41fc95f7e730ac95e9b40c02aad4d45abcf4a109a567f554af98fc67887ed03fbd2d48e96de86e218d156b0c41802c53b713c1fa2b2cb114cd3f55aa4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_6(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "d768c4dec9ff9b5f0f711692a01f8f6a57667e21375f75ac57d0400defe87d0a"),
		nonce:                 decodeHexString(c, "b7372fd3c55f605f2e8f3da25ec2ca7a"),
		personalization:       decodeHexString(c, "bc5eb0e36c7e5d4c79ad2f115864ad06a76d3998e4b81759ba42902b13bd9089"),
		entropyInputReseed:    decodeHexString(c, "7b5cbca72b56a5fa9d27e73d3d037f48a902da26048f0c8c36c9014c8f79eac7"),
		additionalInputReseed: decodeHexString(c, "473419eb5fd7094290202382d20ba7de9d774508897777bf9a2073ce305fa523"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5a06b905ed83f294506a0e2a96aac7623926e94f84e001987308c75f864b78a0"),
			decodeHexString(c, "96a705e6dfe50a41d056abcc14c6411812496fa409c9ca7bb8f42e1d42b87353"),
		},
		expected: decodeHexString(c, "ab93a90ae36626bc3a1669acd71adfb9aad4fb5a6169f64e2d599d42fe48ff3ed26463ea95787c9b27e9de52b72c5ff6b994014cff2de06b576aeee6f0a1ca3fa9e5ff05296797702f55534a6a5c0e9281ca4e5860bed63d8c671b46a0cdc183e20e33756a9a2bdb01df5ee57e05d18ec0ce3fdb0d4431522aa8af3845b957343f2f88077e0b61c5263e1bc0600cd1d3bf5650d0030c88e74ea778764b363ff21ba0555946984dd6be7d122318543bc47f66d88e38f06f9b06f22cc4ac578df8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_7(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "18743950dacbfce338136c60757c3e06b73852c941b76fbf5982a3bb67e1e351"),
		nonce:                 decodeHexString(c, "c850477cab129b08d0eb63b9efdaebc5"),
		personalization:       decodeHexString(c, "b6525d8b77d91a6da9be5f5f1d88bef8e84e972d2a38fd161f6957a968b607bf"),
		entropyInputReseed:    decodeHexString(c, "cef52e2d4845b9c5a0d1cfeafedef89305d8b39c00e744eea1381a03cbf15f76"),
		additionalInputReseed: decodeHexString(c, "26e7585ffca8af799f8487a2d5de505c519e4b69d3f42c49686244280a772eea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4d30f0c893291a423293399052bc7c01209d52efcef185c74f1ba37d5e93fa48"),
			decodeHexString(c, "d139ca9cdb3bce9dd4f5c10118daed4a2dd28d2d3cbc43be0faa756bdfa61494"),
		},
		expected: decodeHexString(c, "41cba5d2948bcd6e1d843df96bd993bc88767b7cee40f65c5c02290283f30703af6000d01b29bb1bc195058002e270fcfdec607538e673f9064458ba5fee0849abb92e8d49e2354196ced6e3945821f5fbf7fb11987f2baee4b0d6c3aaf5e9a7e30a0e63d77b1c77f1d96bcad881ab4e22d6574d065e2f2c28d2de515d9553d1c6dd2efe00d8da11946f886f2ce7c013889f7c3593ac136a8bab9247295a91e6ea5279cae48d4bf3762822c65637cb3044862050caea9b6db526281d1275758e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_8(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "fa42e1e2035f38f876e687e066a2944f67090ee8c1f3084675cfe178e7db48c5"),
		nonce:                 decodeHexString(c, "9ec4c2f7db6d84b9c9ce8f93a0919fa7"),
		personalization:       decodeHexString(c, "50d68eea52bdd393540269f2dcc551bee8c0063f4a2eb5b39a8e53676c704018"),
		entropyInputReseed:    decodeHexString(c, "869c93cfaa888ca82df735387b1b5ee6a1c7b3e712c0db451955dcb5a6a1f29e"),
		additionalInputReseed: decodeHexString(c, "112b0e5d3f8ec0a0727ff75dc363f7cb275a5e66640c886b4bab474b720e1ea6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7996f22b1e45bc96f8f349f242ec444e450b142f492c41925f1ffa18c6da169f"),
			decodeHexString(c, "6a4c5396027ad9d2628ae77b7102a2921c773266eea01aa070c94046a67fe18a"),
		},
		expected: decodeHexString(c, "6715c385b2a1b488e12aaf24585df619bf1b704b71ef16cf0caa23f888f9eb67c72aaa997621a841495d9c56c780479a01721c1a4fbf865876ec635f8c37a35919387fb7a0cb6a6af3be16982c3df87baafa4dd59dc85d822acf814ed23110f4d9392d42251ebbaf51da9cbdf909d9acfe340a90b110c2eec4257b5439f3f70d78bdbbf58cd59667ffc184a60e90e7832e72a2ccab570ffca0e91c1b41fe7eabf4fbcd0ec38f6e35094b9a69e7ea4719c7cba34905520f268f5bee8cd6f66a6a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_9(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "7831d9eca3e2e4daac8e8a6fc15220a4cf38328102e55c9e04139bc08111e5a3"),
		nonce:                 decodeHexString(c, "a6086ff9fdce4dc27a55aa9eb125c6c9"),
		personalization:       decodeHexString(c, "aea34da702814b9be80e3ac17c40e7b51b4ab2689f32a871261f9e75b9b0eeaf"),
		entropyInputReseed:    decodeHexString(c, "7f3f8711f2e2c0430ac385f5c7bc15023555357bdc4be69757a2eed6dc48cca2"),
		additionalInputReseed: decodeHexString(c, "c513c4f1a67ae0175b9eddbfc838a7f8a589958ceced7c6782921c0d60af511f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b90a5b02a75e8604a86fe809adabb181262187bbc9b5ce807153da3f5e50a5c"),
			decodeHexString(c, "1e6c83a34af04c905bbd9fc9509d78b19b47d2eb6533377877099f77a87397cc"),
		},
		expected: decodeHexString(c, "946010fba612b7faf2a7dee171763aec6743e3967868469f051b150155281f917ac38065d3bde57fb393dd72f43d6d05739cdd32d1cad0ed69a93b695d5ec3b15d03db5593dfde629083eef7c46ab7d2cced0a0cd9fc201ca3f2cd000d32ee7b4d0c9ac0e36cd63af3422227a644ffee8f5049de5d4da8ec79060865f60a40b206521d8ef07c465253110e86e5000b37fcbc1a06b28a6462e3c42213cc767008e017ecdf8c42606d7d9b43c169a0b09e9e93ac7266b0454f1323c4890064a37a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_10(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "560d5fd68c5a82178dab25b9fffd802d699e832f5be11987ac2122dd8b3e31b3"),
		nonce:                 decodeHexString(c, "6881e35b73981565e12f42fc4805c487"),
		personalization:       decodeHexString(c, "2bb7ade3e505d1a907647e92006bbe3710a499980e27fb61f715b15ef1ec5da5"),
		entropyInputReseed:    decodeHexString(c, "e15d0d77cd358097ce9190724e315a792d9ede40b0c537e4b40238de7dd6d402"),
		additionalInputReseed: decodeHexString(c, "a38ff3589b09da0cabd08722532761cfe58d0f084360fb3e3cba0c87e4d0712c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f7e1b2ca5b1d9e57918a97de0fc3cd080b55cd98b1b9bb68d61f0da0f4e6fe69"),
			decodeHexString(c, "e14b0bd911335f38d621006b057f9cc3bf6079785402de5d113a5945d995691b"),
		},
		expected: decodeHexString(c, "acfcf2c1ae8044808e3655aa90b39601837cea6a62d1e8a497a887b7b0bc286ea508e312b8abb89eec650efa53e0a4e256422090f987f90a6e3d74692b18f1fbd9760adf36909040d2c9cf7348c724982bcb427ff4796ddc9097239ee7f98b37a5caedb6aefa54c572978df5965895a5533a04e7e0acb6c6178ecf005189ca6f89a7364f76933e1b63347e2d9174a96beacd3dc45a072a6c2ba5b6bf684a4279000642535997d48530bb5f6f0f95024922bba653c91081a306321aae9cc0da0d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_11(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "f9ef6b04a0d271c160d1009bf3e28c70aaf76ad30fe25b2de21235593b1bf64a"),
		nonce:                 decodeHexString(c, "81b194a6476101fc5a3e657344d16a31"),
		personalization:       decodeHexString(c, "faa1cdbde64d49a634d67d4156290632a152f61ffc93040ddae1b2fa907c9649"),
		entropyInputReseed:    decodeHexString(c, "94003ae96fc3df1124e77852c33cc57ac8f67b029da9dd73a29f3c09b278155a"),
		additionalInputReseed: decodeHexString(c, "edf4a16229d6e4ce9cccc6cf834673052355efbe43ffed9bf4aa4a4d455086dc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "782ad5d7a29cd4222bd060f98e78093b15ad0c82ee357ec7db6f30880e631b27"),
			decodeHexString(c, "bb203205243bba438c0570e1be779f667e774177e7de5099493147005e333867"),
		},
		expected: decodeHexString(c, "fab72cadf754dfd0554f095c44d9c1d835eb072bc134cd941311ecf15a55fa67e801005eca75004dd67bb0edb24adf21e07bce88464199016102b486394a025011c54054a3eb278596f833dfd841deeb84bec5a6b8d7d28de3caca8acdae10870062f5d4b43f96b1fe637589bb0d98435225b58e56555e4fea8eb982bf9efc91ceb357d0fcf4ad42dc69ea7f0769832daa40a40500f1942d7a2f1f477a016e18b4bf7b53a5ed5c3b8d243f8c1c7ca71b3060c37ae189e2da0ecb68ee59ac0636"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_12(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "479397d4a986c949204d45526b25eded9829a78174023e7be2af1b2a051b90ff"),
		nonce:                 decodeHexString(c, "8abb910827edd40d64e3f9d12f0c1c9d"),
		personalization:       decodeHexString(c, "fc3c8eeb0c1fc37deda3fff0ae51154d24b1609a95260541ee4f993cf7ac2e57"),
		entropyInputReseed:    decodeHexString(c, "8aaabe4050a5b019fd4846ecd180b36cd3e93f8f9b33e35c08c5dbb9352169f8"),
		additionalInputReseed: decodeHexString(c, "7789d72740caccbbc9a4752492a4f3617af3410cbebcc3d8abb3eaf0557fb20d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "784f27212bae4a9be92eb5eab381cf4c20ba5e6e25c45caf5fb1f8cd39545264"),
			decodeHexString(c, "69472a1007482c8d4b310269ea9cdd503dce74e83c86945b4c6fe62a6b074fae"),
		},
		expected: decodeHexString(c, "5298cb9d3189060022f267ac769d432823a503261404fb64cd6b1550aa65d3ad8e9abe54e3fc2c56bf04f39192fbe97b89656af0b0f3767b01a56f726021ff1128ee6e90caa0e39a0049e59b04cb188439e4405f852aa37a5a920d29db2a289c652633a9cd6cb9fadf6167d985ba202dddcc0673e483de7d30e40cfbe1e6257d961a1a0815c58bb40cc15d7068fce645ec5dfaff3ead0f5a4594faf05734815312be51c04e20aa6c91c1f9321d9dda02ac1bfd010d341959cd072b012479cbdd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_13(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "e6d8ea405652ab0d9d1e64baffebd9e190d24679cb53e62e4eea0dfaac20c794"),
		nonce:                 decodeHexString(c, "10e0a6bce3cbe8003b566d6b6ac0ea27"),
		personalization:       decodeHexString(c, "7a2f0b7c967f6cfb1b076467b43bf35a5d143d78c5faaeea627dc1ecdac50eeb"),
		entropyInputReseed:    decodeHexString(c, "a56f441145d8f022d8172994fd9f467098e2e09e9c8403f60a208e28002c9e2e"),
		additionalInputReseed: decodeHexString(c, "340d73136d601f943c8b1e33b1e157060177c5d517587b366715265087faf240"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c84f3cc10af82168392e6f9b6a81d61f41bf21cf3db4a03794a51e49854a19e4"),
			decodeHexString(c, "471fd827f2767f4256e822c4c588ac4ac9fe97fdce239ebf71d11f80483f7cb4"),
		},
		expected: decodeHexString(c, "68263a02c5676f40c01634b234f1665bab4c4d48c0bbf7c7cb229a6935cd19cd1b1c55f8c0775f01a7a7ff6d366b73de6e011d0918afa61b85ce6014e5b9011c8831b343cbc1421cfdbcf85bcbed1050e85ec3fbc7e7f056fc5b7e67c0f15ca0df7ce8346357fd30b060940beed9dda19c01fef363721d18dd7246f583516c3fedb8cf23653516dc95042807de8533b452d643a8db4510abf933c1bbfbf1ac6efa3e43127f0eea8bfbe095806a54188c3015c9811cebce9db9152d16a6596ac6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed63_SHA384_14(c *C) {
	s.testHashGenerateAfterReseed63_SHA384(c, &testData{
		entropyInput:          decodeHexString(c, "8c7a290338afc55babc6ba537df4434d8ec5bb3c12f1e14701148a8f1a8c7e7f"),
		nonce:                 decodeHexString(c, "20a8b2be4a7227868ba88405493b99c1"),
		personalization:       decodeHexString(c, "0d99021d0971cdb3958e9cef60bcd1589362e35089a16ddda006e47775b8d460"),
		entropyInputReseed:    decodeHexString(c, "ce4fdf89d4537a64a58116c4c42098e8e097995e35dcd04d0352505732930f05"),
		additionalInputReseed: decodeHexString(c, "44c70b3409f1eac6df3b855a97a1af6407b974e84d4c3e28f039fb103592b53e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed7bc140313caf349271327287a307947cdab6d9aad72e63b69e48c6a40807b0"),
			decodeHexString(c, "acd2fcb552f38b00a37c512c24c279b27fb7abebcc2b5a2e93b965922b3ac878"),
		},
		expected: decodeHexString(c, "933a3da029af2dc9a8804162c2f88b311043c996f2bd87bed59b0a5cc885a794029b7dd0ee80ed25a241de4e2ac2e7a46e46b7f72d7e315105e28cf5ab6cd5bd416379122c6d22204fc5304a6bbc7eb4f6e916e1aab7b669dd6a1464b19b684985106cf411aea9ded8f38c0a48f0f7f09aa9d00f5676f09b2dbbe35f31d42d505beeb5fcc4059e05f4bd1951f923cd6f9eae5212ee2bf325327b41cd5e9ac3dcaca73d03c4c2126e162c2a562fa55a84e9019f6460ddbb275862476eae680978"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed65_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c73a7820f0f53e8bbfc3b7b71d994143cf6e98642e9ea6d8df5dccbc43db8720"),
		nonce:                 decodeHexString(c, "20cc9834b588adcb1bbde64f0d2a34cb"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "12dd2aca8879046d23165c60f8aedc20415783e156d42a94346826aaeb02eacf"),
		additionalInputReseed: decodeHexString(c, "9b59ff78a34eabe0060c2792ca9b49e9781e6b802badf7dbde27caaed3343706"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dc74a9e480a6ff6f6bce53ab9c7bdde4b13d70fb5196cdd5e3a0555ccf06fe91"),
			decodeHexString(c, "8f3f229011209b2f399096afb054bccca6bc46aaee98845838fb1fb78b66f3bd"),
		},
		expected: decodeHexString(c, "e6c96442582811ec90e587525f36c555e2fd6361a0c5b0284917a4fa6f6e8ace83f11a1fb26cea6692b225ae7c5be286dd27471f323d7a2e4431722bb337b1ba0e648ea2e9f0918b50e9111f2377636ba69b0e1cb5295078d76c549c8656940eb15ca5aded7adc46e6fa4b86948f212fea3f3befdeece8b20e420ca84c760196ddf0b074df0a9f097a5db8f6125800f5fe746a62df1208042f1255b524465a17efcf6a537612968430e2adcff30f7407a51ed7305334384e512e003642cca175636819f021c76a2f44e89e6fe39cf164477910379cd314f735c357f9379de22495276b401c98ffb09a6dc03e484b355a9464511401eeaa05b4556e73b55227f8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "254b5c33e030039d1f4efd2700e7bc679f403de18b872fe50a97a3c328463a6e"),
		nonce:                 decodeHexString(c, "96ba5ea50d9ba95c854212d2e3f8b93c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7025c735741f9348220156076f60cf4acd20d264c45a0961ad80186ddecc2bb0"),
		additionalInputReseed: decodeHexString(c, "611f69f111563c9756013f069e4bdec2b59b5d1367607f7d750ad697bbba13fa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d037dd1198944999bd9f62186c4860b80b791780608d074652490b9e3165063d"),
			decodeHexString(c, "b8c710b0a60bc077d5cb875ddd4004ac8dd1d80bac948b64d0b24397e543cf4f"),
		},
		expected: decodeHexString(c, "a098ff412d68725266e84cd604057aec01bc683c0f867dcd42a5a0836ebc5b3fd3700d52179a5a69728a66181fdee061c70bdacb4aad3fc814977758dcd8a79bef5cc05ca89a64c5c1633ff98e09e5b9bf5e9cdacdac90f9a934219153d8b57e24c1ecac130521157e4b4957d5d88f609e5165142e47dd4e6c6be7ad276dfb5f6df855e2a683dbd5525ef84ebfa17381e2e1ee07843882e8ae2ee5dfe670d67695ed2a43611115fb784eac2b2d8f1dacde6de9ac5257bcd6c48862cf10dde0b0e6b316e410204fe72ce2caa364dae5e2407107f40d68000dab207e029d78152d5384a85cee5fccc21852abab5056a7551aca56f6e5596d4f3907a6bd1adfff20"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "efd5a06b8abcdbe0f586b9055a9d2edea114227b0701ba38287628de399211c6"),
		nonce:                 decodeHexString(c, "aa66e3dca83c0fe6ebfb793880d0ad2b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bd238175d4b1a9502d2d92437e2710e8882c390036ee6193d72ce7d25f583de3"),
		additionalInputReseed: decodeHexString(c, "f290a625f42747dc8110c7b5550da78814e507279a47bbd7b27dabd32c0e23c7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1e365fd3cd0dd02a303dc99314c6d06f904e11acebc7cbfb9ee47a0a02420876"),
			decodeHexString(c, "94c5376cac81d7a33ff2e20b34fda52f1bd5805cd04a492cdb7f60328d393348"),
		},
		expected: decodeHexString(c, "2f4bda3d8aac032504450ae69a1e763add160ca35756de8aa122747d2df7e5671f026b9bac78c2857a83ef52d18c11cfcd435e7b85548e92c0b8fee84b5b1907424908039ecbb0275dacce2706637af47d5f2ac3ebd258a838651be6d56a9b7a4f86013e79a2605ac4530085a05ad981a77de2bd08a362ce602aa817f74913e0cb0f239f0e56dadf8ca46d03fa4f8b10f23c1e04d0c7c11b73d23f39a87c608a44e8fe259320289fee39253cf1051f643918211edfdf757f4bfff4ef8b33492ecc565b7e0c9a7ddfdf533a445942c6c39ac29da8e2f1cfd228a2beaa52b8097b82ce652ccb7abafaf85851b11681d179e21e57ead30ec661192b671397252628"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "be855512e110e1efb210cd9b5ace0dd11b7bd0b61f99115029807075be98ab91"),
		nonce:                 decodeHexString(c, "edba45c5b1220ddb68265c89218f78dc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "50f854e8ef0342e32cf80f5178c163550c0aaeff955e8baa5fd5a532495d4353"),
		additionalInputReseed: decodeHexString(c, "f2753fa879e576ae5923cbc95f7f4c15cdba520f262b9db47e3b2eb3ce4e0d7a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c438c9ae95e297377253deb742d20d9dec95380894e4170405102f80530a0b6"),
			decodeHexString(c, "7ac5848b7b51e3ac7e13351a3c6c5bf52d6e80154c297adcd9d4f79865b46565"),
		},
		expected: decodeHexString(c, "292c265071d54ccd59c94369a71c77aac7546b637f53bba20eb1db8cf78c6f4c3e834e3dc655013d43167172f36194ced864cc202faf0c4dc2a1596ec44a7e0333d2ce63016aef4b88a5286eab3d4748d651ccb5c18da540df16bc2472679cb1e27001b91ba50d92369e69267d5caf1e147dc263ca88942a9e1cad56fd3e145d6f99d715e5e153a4c69328875fee80fbda2392003abd659154814f8bea608b6a27b02663395c669f832d6c9ea4f6196baf29ddbc10eb894290011138668a8d0063a273a86af06729e928bbdeae6d596a294221916647744d95e72b26d14a035b3325a001389fd335211ddf5603cc28b5be27018bd99f315dbeecc118e6875d38"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "32ef1ac338229527ee446e5e1bfe8e26b85e73e0620383a5fe8cc0cd272b1d10"),
		nonce:                 decodeHexString(c, "233ffdf1fefd2f49243ca9aaf7d59b2c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c29899bad134030e43ee136af28f327abacf4664e1683d293a7b19c8e27656f1"),
		additionalInputReseed: decodeHexString(c, "8ddd0569c18a458028eccef3658d3d3a2adf922e4f75375e85d56038419ed240"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc18b1940cd5f1b5646dd0058c61ba3e60e678d8ba5b7b07352327423541247a"),
			decodeHexString(c, "0767c48a3a1f5a028096704a7c68499cb493ffd91489e4dad7dc4c3a82a5e764"),
		},
		expected: decodeHexString(c, "f4fe26a03a9bfaa0275526e866d5339a0aeebe9c73484d806bf8e971e11c337b3028467234ede58157385ac30f2944621c75eaf5c03914706b6a8239007926b92c6c821fec1042aac05baabfb37501a736e4e34b283b725d63b8b7e9c789a454b06ffc7c55c8f5870e9072996e25b9f1e3de78cff9fab856f9f5941f39c065c5ce49669fb228ace3e8e6456862233039aa76aca530da29608f335907b68b1952c44d33be1bc53a7d0379d0c94d52c9b17cb1c6c4872c5ac6753cc7c38dcda3ec8e7a2fbcc1cc277bb0cdd06ed1c35a0103558424b10f93546e0ca8041265d58b7ec81b72962658013b42f9da2f177c43a062273f02939600b12ed4bc36998538"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "be5de8edc3427d7886859283558dd499b245761de4f60de3ff777245754aa785"),
		nonce:                 decodeHexString(c, "5a779894edfeb83d1795f19a475ebd41"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "675f850031727f6f699bdd0c5cfdc51158308a06579f44dc71e35616ba9670cd"),
		additionalInputReseed: decodeHexString(c, "1edec79a02f8b7fdf7005a574ea2b2487ba726f3babe40b8cdf531ad30c46f8f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5510613cb4d5dc5a4aac9c0744c6bd6d65c8f5dff38180cb68165eebe4d01921"),
			decodeHexString(c, "3be6b670b192d4016f62b543a2966a3c83531d876c3a905ff9cc7dff0d9b33d9"),
		},
		expected: decodeHexString(c, "6310c96f0d63eeb481cd0bed115f70aca647781996dfcc8ab7aadeec92591e09e78d62c9bd9c37ca0a26358ccbe6281625115981b9caff522f521bb4e7770e8d5c38ac347309beb35dc6007ffca3057f3508e2f9fcc2fd2b6c2b09bda1b1d5a70d21a407fda5d26aad7465fa9cd54b5cf16d9f3f1a5dd9ed7b0d7557229a4022a3841999e746263271a978671ca827d1cd53db2e60247840224cd60e4cc453ccb6bfecb76c2ede754bbae210520c248ecfa74383c7f473b8cdbf1e2324f7fc01027e7f43506826b4d8b1a4853e15f7f52f623af2c06ad857de5f9618447ee3d2baf6b00d01931c69941a898cf5bbdb075d89739c44752098841c9876b5ffaae1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f562ef7a3696f637c3838566ff6fe6b3125c982c0f8cbc3e5845e8bd68a0492c"),
		nonce:                 decodeHexString(c, "0e9644beedd33ff7386d9f41c8e348b4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "75c727aea1b7809e06c63a7b68161d717b969e2be4b36569394a388f3da511e3"),
		additionalInputReseed: decodeHexString(c, "9096bb6fbd56bc5385c8b9ebc74b62f315018b0922fc62484d48702583b58271"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0be90391ea94af1dae91b09b4c7ae866d91556763beeeeffc5225dd1f4d968bd"),
			decodeHexString(c, "006e3f57dd81f86dce657b5a82ba639ecfe631501eba869b8e55259dfc5ea392"),
		},
		expected: decodeHexString(c, "fe13a475232962878091dda1995e89e36f5adc4f1ba23986c7381ae849729951249290c66d07c4ab0a6107fe808da48f263e72a0b8c179a4028fa6fb11a8a7fe3692d11ee1af1b92a06dac13d3d7023ecfa43293d016d319c7056e6d384cdd771b675145b61c9bf393c91e83814dea2c71c1cb3c4087edf51d2b6d2205edd427eb3efe305bbee220cd42db8e17355f3496c4d4c57afbae869908cea30d02a69b06729149f00b211dd400e93bae01aee36e6240a78a8368920ed90607890992909614349ab4491cf7ec083b48db91c87d840341eb41cea9156ac87cc8a5bc5fae9faad91b5ecb30f13f7554a4e67d55c8ea96a9bc9c425c7a6cb7e57036a07035"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "91c8168fefc159c96b96aff859764e86f62849cb8447c85d6af9b9582d85e7c8"),
		nonce:                 decodeHexString(c, "eda45eeded36a7c0a80b0ea24306bb05"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d89ae1b4677976427accfaf9eafe15d93365f8895a99ff4a69554fec3a7d773d"),
		additionalInputReseed: decodeHexString(c, "0dd07745e9e9acf0984d59044596f0689874f5ccf7620c64ef7d5cf42691b9d6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dfe8801d8bfa7ac4ea8fe53e16f38bc2989143f848a7b0be5894fdb0dc223662"),
			decodeHexString(c, "489a0fc0bf9d7b662492ad88319055f0b0f605c1bd6989d19df279ccd7b5cad6"),
		},
		expected: decodeHexString(c, "a7cab900db1bdc1291518afaffd754042d022cedc26fec73bfb9d5b3cb60e7afa7fb55442c3ccf48fb01df4718e1c171b5d190ba4e4f4d29456ccd7955c4137f2b1ccf9387d83f96db993b67cac42699dba6dead461e297b54f77645b145c1398bc3634998ed2a1d97ba77aaa7c61bb7ae8ca2fdfd6e4e8aaa8af79f582a255679abbb314bd6d3a45d685b8a783b3d2182ebf3882488dfdc009c6a8930b70a4fc0fcc7972fbdef5bb6d318b3a004626c033357f78a105b8a5be4de1c3301b45ef1f74e433bb068658588f931a8aa3d91aa6476034365e56c96b45a2d88d79704729a1ae33a16ffa40a61ab8bb411d16e881b3e74842e878b450371f4b86bdf25"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d891dea0ad11bc0d345f9988080432979a54cd8d51e5585c1d6a87ba0bfe74ec"),
		nonce:                 decodeHexString(c, "b885c87aacd7e4defba6412415d3e533"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "eb4109b0289b21bc704d76e5d23acc01aaae684ef9a26f15ef656229998c03f6"),
		additionalInputReseed: decodeHexString(c, "a17a2b676ebc1ab993fdd0588173714ce86459a0fad7d98f39d8ff5558bdd385"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6fa0cec75941698452146862fd36c74cef702ab3420a4303f44694f71e29772e"),
			decodeHexString(c, "b149979239eb5be0a017f664d0a53b639c691b8a32073184b18e3e0999587581"),
		},
		expected: decodeHexString(c, "0f181f0002ffd58e477b3e04dc78e8014f50745bb32cbbcdba2c43d34a15f92b78fbc29c3bd76b34fe012edcef1322dba751f01955e09c95cdf5fb62dbc996e1279a42bf0cc941a74014cee03525c593f06520d4d04d6b4934a68f3a6b2aae2fb5c691b3ced690d0f847dd63c9628cf581f83c567907111e937e2f5a37706c919d946c56dd4e6d123dc1bc606b5b307a5dfed38cb3f5e4b9014feedee4171802dcd5d1403feb4f0254db4e7cd4b325bd6876fa8b8128145eafdcaa776181cb5e3d968e3726ffb05994331f9c7b7473bedc69bd2895108aa33ba8ccd87fe6ccfb1517084f5634f7e80d26462a08470e08ed603b27bf0b8d0a508fba386a934648"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d3945888fb533882a5a6b5b7e708f086ef1c8bca23cc57632074d3a70caf66b5"),
		nonce:                 decodeHexString(c, "65c1740a5be41dd5e1cd181af286ecee"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d2f4c12761c1612cf939cd8f8a7c22a93c2528b931aed742db7f3c44a4ffff81"),
		additionalInputReseed: decodeHexString(c, "560ee5f225c187ed1981690f9773c4278cdf0f9eaed663845881e6fe6257058d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "400d7158635a9feb73c884e3ef2fda8f7497e3a3098d9151875cd17ac5ba1b02"),
			decodeHexString(c, "13afce5ef8aa04519ef802c899b6416542c681a7d1d96a6c31a90b1a8c8933f5"),
		},
		expected: decodeHexString(c, "be08acdc3a958443a8b30393f3be248319199618dad1244237edc8c10a6996fa65f8488a3f5899c63522bbd694cc2ad87f0a7b08a7e7306b3c7c40999d76b09e2067121e4a6baf6865713b2a8c8723a525b35590769c6c59a034428dc6064f96c056fa8d3fdfe8c9790fb351102009b3a75c19f23a40e82ac8d997e312975ed678e54994231a1d581c1dd24e00ca8f50005342ba5c7df0a284a462ec7a4a4d8f35b60e42abe987f1516d874dc93629e374713b5b9167b5c526f7ff5877f456e8546f7e60f70486c5a5fdbee4077cf889e9411fc06965ee4b4abc159d1ffceebb2e570f4ccf5e77224b00fa066134e8e02bfcb744481869fc95fb219d7a949251"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "33f914e4797790cefc1c8bc879d60973f1ee089cd56c7accadd12cb066962932"),
		nonce:                 decodeHexString(c, "3d1387bdf56f26d6db346bb291fc4074"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1e375c03789ab6d582a1adc45284e8eb4e5392d7eae9f7737f594bb5a124a0d5"),
		additionalInputReseed: decodeHexString(c, "14738d54493323a3cad83692b203f3df94d3e591fd46d89e4c8e6a65528d2f57"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d309e3b427c86d24daee6eef4f175d1ced839ef3d9350fd74d39ad4dc8c5ff76"),
			decodeHexString(c, "da2fc4c03d1287ce7dcaac0bb12d5799710cc006ae566d57da9ba2fb0710062f"),
		},
		expected: decodeHexString(c, "c5c9368e97d2bbacf71a57dda9baefa42cd369f4fd154f9830821a4fb102d9d8185a107582976147b2f5043bf9dd1b928778e30830416fb9312ddcaf5752eee14dc8093d687b5b56ad83a89051f50e8125d98b354b7791a7026b96c49da9ba85c7c889a66d680271fada193e67d63832fdc5f3ad258cec22e06f6604a849d8339dc8335b293737be19a46a06766514faddad06affab6f3f42dd76471fb8cd7e26515798b2d6c3c4fff75afe7cdab3f9b585c896b26cf899438a8911eed8e894e7d6e77fdd98903038de74f98c9fa30565f41ade57329533d0c5abd426693832126919a49af4a178bde09a14764dfa994bfd13fa5a289f414eb89be6bc50e6b11"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0524395cfa40a37be591fbb087aa5900027c8911d9d09139a36e631320d7e9fd"),
		nonce:                 decodeHexString(c, "435f1a471a07465b6ccb15fba065d1c0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f347b1ced1abbff44c197baf6db8aa813c30176fbfe5111bf848b1642d43ebe4"),
		additionalInputReseed: decodeHexString(c, "131ed808f7f7f1fe856fe0fd542e24bfe470239c9b344a6069b4df45c03c9e57"),
		additionalInput: [2][]byte{
			decodeHexString(c, "19910e8fd5934a9542d29fc5a6618a38e66b542aa1f7d44cd205e0e6c8ea2524"),
			decodeHexString(c, "7809caf3a7fbbbaea93da68e598d787e3437fedf0f607e7304a796644b50d57d"),
		},
		expected: decodeHexString(c, "74410341d55b4c258574d0b5a32a99ae1e125f2b21ee9a39d1559b9636ac2af9feccd14f03b8088ddc4a242ebc0be29806842546222bdbae15cd12b0f621e979510e3a28a0ac37a17820825844b83a72f48952739b7ce107ca4fdde875395684bcd112b4bfe54f4cc26ac6bc8ec2da5e58f120b2e44974f9685c0b733a3ec54518b7aa67e5343cafca630315100b53302a90cbc77445792687c93250b42419c5ab6344390dfdfced9bdb4d7a6c5a07dc11288b68d567eb03ef073d486afe6146274ec37e25b6ca1f950c21515d645e68ce09ef295fba6215549bb1afe21aadc8da9925c39a8047ecbe9d8820d2f37a7fb685c3a46c91a16d7da78c7eab2d246d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5caf6a10fc6109e22515f245c4ee4a18861171e5fb7fbf803fc59fc41e3cdf3b"),
		nonce:                 decodeHexString(c, "d26b7b1b0b45b27a143d8f24eb66667c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ab806696da642d299181e474d1622eb14cb5044316bac67a1cdfde91e42a547d"),
		additionalInputReseed: decodeHexString(c, "79b6af92ee9a18c64016a86e810ad1049c7145feeee01e46a700b81770591c85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c56409ed85509ac9084398f23ed6983e8eaa3e0b90f77cf0b5006fd8d3d620cb"),
			decodeHexString(c, "61250b889bcd054b6e9465ced35d48309385a29c311f4eaf5c2dfa3c236ceec6"),
		},
		expected: decodeHexString(c, "6e0301ae0947edc81aa38676b1b6f6f7cc8688e0adcf631cc0b05a9f02f659c751055ffea71a8114ab2db74efd02149927934e6b5a77b574f25d847579ed63614351cdba6fb299cf3ae2a4ca2ec35e521cebde9e647d338e8a68913f0010b09cec9eb60df8a15ca1a5832614c8367fdea317a2b4fb0aff9732395399f151f1fab518c7ba839023ad1e94ca8bc6f2a3c7f336bedeca28982438c27de56b91909de929ba17dbb34cf9cf9396a84de13f5cdef6c923cedf424c98ac5ac3ef735bc55019edc8471e193a73be7fb367e80eefde7b251a92ac5c811f5d3e204ec6b120e6acc5a2451bda9611889a4d65c3c82b215f92d6241632bb668108a885793466"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7efad918f6ce90dcb7b372e8558fee3afdc945b149da1fb44a5f7015b6c8a5a7"),
		nonce:                 decodeHexString(c, "05ed6a89fc8a5a5ea6deb4c651478a73"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ca252a5100e4ba47f90d68176dcdc91f2bfad93d9f2d6d87b26f836ffed644dc"),
		additionalInputReseed: decodeHexString(c, "9122c8dad6bf1e2dd29b670b88f56b994c818d80ce2a5addc5b6029f96cf40fe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dca741d0a3dbe9110ac1c9b46efee45411b9002e53b0c5395dece5d04a3709d8"),
			decodeHexString(c, "2a48e41db06722fe522efc09b98288ea5f108e455f7c50815f3560ef18a0b7be"),
		},
		expected: decodeHexString(c, "14526ada3848e4d2367a8335c2e745b83773ce87b29e1a0314b3169020a8f9a64711b1ae6cd3da3107f8746923927dfc2993948a3063437398cfc119be37cca340c998bc29f7aa6551169c358028f09da858688081c9e1f3e9d45333b67df6deb7faed2ee7e9a5f8cb85fd3c378eb50fedcaa36ba55db0f9e8e8d8f9946654267f647eb86206e2a358f3ff15b5e75af043f040690fa41ba1062c12ad83163ef00f4c3469348d798c21c76ed62834c8234c9d29971af11e8d8fc2adb6a3ca436766badcd82358e6147177763cd3c1b26c9d96dd1df88518fe54121371aa4a39d68dc733551496c6902b07323176eec4f448d5cd38860f177b87663fe33e40d456"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed65_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed65_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3be72137297b6803534e9d35ae81dccb799a7a37440b4ce9d2d1d3118a04e78b"),
		nonce:                 decodeHexString(c, "1a9f04273fa0d40d3e0c048699485182"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "796cb7fdf239e0318a1944e7ad1cf9ee7788ee7872f8f6b85fd857c94f361655"),
		additionalInputReseed: decodeHexString(c, "54120d9bf28e719d68574fd5e7c3fa3d4393c5843899fc5118f95c7961af76a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "637e8d603b8dc6e7771f56abb5afbb8ec55ab776fd74245bd1e8e10ee5ba2460"),
			decodeHexString(c, "92fbc0c0c3a5b1e71946df5ab25c2e111d8d28f3d9abfa12f646bfd4ff81e081"),
		},
		expected: decodeHexString(c, "41f4f3aea0b9616f3b6e3c18e5fa88a47484448f074d0f96e7cf51f518f1aef3c0eb7dc5bb095dd9f4a79139a1e708adfaf33325a00942d9793b354ae31423aeb156e58ad8e82cc769626b543fa31e431553dea6d6fd161f9b4f5b7bf9e31ec2b4778c4170368ac00acbd69622c6834efe8e9326192e6899333f98fac9b5afea8ad1e09a064eb760aa90167cdb0b01f025eee73b0d33e959cb04fc1a986dc4b02086c96c72c35d88e0253a3bf35c54ba003ee44c849b2d26daf52aabae087fd6e443e70895a1fb22b09cd7fcb48aa6c202ec6b4a33001cdd712e246fc2b1a228bcf4eee74bfeedc880cfedb0a97473dfa48f259fda5e6c61cd07f09708137f84"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed67_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "4b23595b0a3640cfabb0ec34df6a613308b0448488a5d9ff99da4278e072eb34"),
		nonce:                 decodeHexString(c, "8e696bffd9ca3a71d2e2f05e600c8364"),
		personalization:       decodeHexString(c, "010ba93ea68a3d4a200e5145859e299c5b5349b7645fb5bbcad687aba7d67313"),
		entropyInputReseed:    decodeHexString(c, "04de4babdbe143bde99aa4452f9aa43b0a164eb927555c0496aa0fc9328a521c"),
		additionalInputReseed: decodeHexString(c, "2b0c7c3efb36b71b917a44086d168313675b426b17c5ab3d0eb6af753f6040e0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d0b7d1d12ab15d3bba8f4eba07fee0974838962b247be480683b8e3d4a91033a"),
			decodeHexString(c, "66c78ca12e45bdca003b49cb6440b977dd85b167e7c803890ed1a73666eaa869"),
		},
		expected: decodeHexString(c, "4008cbd8281dc82fd6c368f650ef2609bb771e80c63d478a77fa938248dcbb8b79e54ead0265f6ff1ebfafe4e387c6e27df9f03e4a5225e86a4436e56ebf03b3be2cfbcb49c89c92ec1dfa5ee445dd4f6f64e02a2423a0b18ebd02eec52f5cc21bc3565e796b3ded6552f1b5a574a201c3b11018222806f9618d23d77fd02db879cf87fe24ed7ba11b3b108b559633db1f95c5121b28011aa4dd20399bd4978e1f8b8880c333a47ff1750679bf28d329347b26d347aae90ee562ae8029579cbe0336e066d6b8ba5e0169fec804c30189a4434c1bf8a5b0a249951d3d89554da38ff0751b8b1fef9ae18a0aa2bc477736d199a06f61d400039a4cc03869bb10ca"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3094636e4e46170e876a4aa9f9117abbd555908800c00a41416f1c352a4619dd"),
		nonce:                 decodeHexString(c, "254f5523f570de4a5f7bf0e1d936f311"),
		personalization:       decodeHexString(c, "fb566830159428620ba10710047d0bdb5a14b3e253b75db8a8960984c53ac2e6"),
		entropyInputReseed:    decodeHexString(c, "652a47ed38f2a7b4d0648c86bbe0c210c31b673635739bce954b565f95fe7f20"),
		additionalInputReseed: decodeHexString(c, "9c970b82363cd8bd09561cdad2354e9edb62aefe00c35caabd239c2b60224c7e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "47fc3d52bc6f947eb513b7cb83a81efe28d0a8e90c9ac80dccd7e35a285ac0a6"),
			decodeHexString(c, "706dfd451416e86fe77081c0c920b952e10c1d50c77b90690a9ccc6390dc9d83"),
		},
		expected: decodeHexString(c, "70c84aa12d96bad015c19fdf6ce09bc235d6d84e8a3f180860c903cb5971a4332d2125465812c63414f40690674ea14c5a0d3abe943e47f6fd91ca17b9a38dd990168d86bfe2bee5be88b95d3537e3e3f08aa503e3d2616e4acd380fe1ced1cc5a992d734dc4aae7cea5cf0cc194367fee086e91c0d1f8f196ebcacd467227e1c5b1c88b98b3544ef08b90131fb6255f5620850e4f8a54096bf765284b9441ce2e0d72c562ef6e6a6866d3f91e8b11b08135386c2648a48dcd4354cd42607002c78e5d007cb2971bee64299f996021ecdb012c4db2f67fd0886dac89274b6fd051707ce8d5789014ee6b6f63b0e5e2813631ab71215ce7af4e9e6793cf0c1a33"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3004580efb356c34bbfbc4dfd084443f7d1ae08b26a9f4f92e579f231977afb1"),
		nonce:                 decodeHexString(c, "b49da206bd0fe00c08650d3368e22f52"),
		personalization:       decodeHexString(c, "06c8cabbc543ea6b984cc6ab506feaab4f5091e27d9809c2bee73b592e94735d"),
		entropyInputReseed:    decodeHexString(c, "6386ea3d07e52e72e50d4895b25077f116b244a6e9a335a9bb118cb76f42aa8b"),
		additionalInputReseed: decodeHexString(c, "e589d2c45c4110b45ace4b309eebf3a7acf8e9bdb27cf5bf0f9c0af60ecd5acb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d9dc02809ad14b86af07395a53f5c703c1db33e91a73938bbdedd7a9b1dd598c"),
			decodeHexString(c, "cf414a664965e1b1a4491d7e5415fcbef5ceabaf51a680c8bd7cbd218647b6a9"),
		},
		expected: decodeHexString(c, "b2cbf4c81ea6968336dde8ab38d74c4f97f0954e2dd5371a0d86a131ac741799777fec35413871b0a260c24d743a71f57d54da2c68bdfd1d8dbbd54870b61ba318d1c35397550777ee8f827dea4b18ddcd1b69d8b8e9b922cbe5d210a7ff76ae99547fee8e71f484117622ac7dda35e551eb3aceb5d5a014bfc1bdb6ea8f9dddf95405a78df60f9bfb84c2e4c42be678fd00e7592bdeaadbf0b506e171855729a22ad760788c58d898f51f3e853907308482537fe728ff7cd965a446a408937b5a1119c39480184c3c3af39905f8b0991184d663817d55b12da888ac9187857793435c6d12241d6c84096caf2f9e98f9a7d8ada5442c60e03d2a206f7c93758e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "72b1128a214af7f52513701cea405065df24abc7016a2952eeef396c1754d1e9"),
		nonce:                 decodeHexString(c, "95c70475f4e216e1706b6a315d81f5f1"),
		personalization:       decodeHexString(c, "7eedfb6a0058c687a438bb97ff76a5df9e52e9b964592acae28141507fde1f50"),
		entropyInputReseed:    decodeHexString(c, "689232093a273e6bd3132d72cc54b688e5ad735675aaa0aea9a8963ae2e41db9"),
		additionalInputReseed: decodeHexString(c, "ffb226551299a0ea05af7be9d08280da57031b693c241ac29b1e1fb899f17f99"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5e016b61013dcb5427e675602d49cd2da91c3b27ad427e64bbbca9b9ce04ca8c"),
			decodeHexString(c, "ef940e1f43dc8f5c055eeb9eedcba66f599736d58d4ebb9228481eb1a75ccaef"),
		},
		expected: decodeHexString(c, "0f57f15ab361a5dbb80a20a7607a4ff1ca907a58534fb421071162b2a722565c7189cb44f38fc49a98c2ad9bf73b566b38c89b2582dc47ae50039e263373ded9d4045019b22fb04497eb9ed2beef48cbed4ff4df423b57d40d30339d196fb4136b69e60c2800de72ec353caf91e0984711b9e8e8f19d9f86913e122b54a999b4fdcd5db98f9fe61ce849ba28c9d3947828b39f2bdbae555f6d063b31953f15d348b13e16af78c2c4473676ff5d703ec951753a35c9bf7c715cac5f5ce78a6f5f03dedda19f506a8d83dd7a603d87c405b94a2006093adfd32641f86a14eb8a51695d9b2faecf25d640925b2716572a60e469308695bdcdc7ee2fcf9b845bd243"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "4c2a0fcb62ebd773133ee58b4a941742698d18302c4e703b52a106d573e04840"),
		nonce:                 decodeHexString(c, "2cc32d0d5fc5d3862de2ed7de104bd5b"),
		personalization:       decodeHexString(c, "55f2cf13391195ec493b092e121548b69ea8b614126d588cd19e2b5eff2e08ed"),
		entropyInputReseed:    decodeHexString(c, "3761df52de5f0fd0b87a0416c3fcec10888e6bf030b8926cdd0a34a16c9c1c7f"),
		additionalInputReseed: decodeHexString(c, "21323e9f7265f8c73087229c4d607bc67fb6cee24e1e56db6170de973f9440a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "957384d2e2501d2af4ed3c50a55b0cdee08be1d85f04e33fd6198edb216193f2"),
			decodeHexString(c, "7297acd35cd4acca23ed027b95e261cd1a73d5d5a4e56f8d2e704ab83ba5e8ce"),
		},
		expected: decodeHexString(c, "b310e411a5d0e457518a96941805a1959e88a15fcc09f5c0e43895b54083abc30adf730a10fcbc3c14450c0d6de50cc08e94ee3df36753aabaff564cbfd26fc1470b53cbaa3f31a45d269e2485863ae8cd978ec3c033fabb02ed9996e90a9a2854ed5127f2b2281ae6038453922cd03b9a186bb10019cb012520d12db72f72f70e44808068e3083126e2d2215f301e1a0083fdb416621043786243e07174c7d0aa5417d92b48f113315d5564b6f4375824dab1b7931110f0f7b52a75cd11bb98402d8d3ebd9c337f725d90fac4d8962ed18627204a1b08cb2d7ac53926e1db6138603666bc143c351166d5ba48c0757d980dd5d254dd24b7670e4562ff76af27"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "9d56678235c0d2a609bfebfa1b1209672d42cb792b9d4fd4dc1292af6cfc3105"),
		nonce:                 decodeHexString(c, "3c9c1d182c31b5cb5b4c55657b50ae3a"),
		personalization:       decodeHexString(c, "5784dc35d43d6c9e6c181b0c51042dad73cef82453f3e92bc50158d130274601"),
		entropyInputReseed:    decodeHexString(c, "bccac8ff5b17d588fcedce6b892ef8dc9ace523d11089af99a4006532f2a98cc"),
		additionalInputReseed: decodeHexString(c, "40ed1c59ba3118fc28ab6fc2af4dfe3b30f716ce184f50bfbcf73817161d8f07"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f96724fe14dfdd475aa8079364360871108a34abf2e4ea4025a6e1fbe752510"),
			decodeHexString(c, "e18d86308d601c83f15dd6fcbb93f0b14ab8a1ab2d1bddcbb44f6d28bcae4e5d"),
		},
		expected: decodeHexString(c, "a74d19cb67348e6676629316b800bd799ad20a70f0ef7758c921048f239c651e6991b9722642a7ca08493913954fa7b698640a86ac125f1a2105f6ab00a218d72b1a6ca60fd28e3d083bf4bf64c42058c906d0a010f3366921f4e26a1ea3308ed555795ebf60e8e131f84d46a4c802769f8f0cc2a7d9588112aebd583de2cf6a6321828541e6fa806c8d9a6db9e51e38a7aa1271154615e0e42ac34484e3e00a6b96683da5f54796090e7169eacc2e74178651017eb77eaa233d5c280b59fa6aea2419f1ab9d97f19636d6077bf4937d9651d1132c2112b14a68d3e9d366a04638a7aaacd32cf31aaf5d17edda9f3cd46060599269977d13d60171be0033c1a4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d62b907e32df9221212d70f4f735a18e2255bff0640be43555e9036d5592f70a"),
		nonce:                 decodeHexString(c, "f68ebda4742e500468c231299b1d40b1"),
		personalization:       decodeHexString(c, "b8c56fa1e2948585b93180572fef4626c350e209d95fb59c7b9f1860657a2ccf"),
		entropyInputReseed:    decodeHexString(c, "0e13c11a181eda94a49f2c17c92a1b23b47536bafed2218e2b3caf9d6ab41419"),
		additionalInputReseed: decodeHexString(c, "b952de59000375b4dba9f455a641b83f1db977301a089bdc0128946a5443912d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36f14008a40509576ce7dd6eec39c42050aede77252c1f844a229ab331cd23f9"),
			decodeHexString(c, "8cbbe5135e47c8a84d3308ba390962b97d940a1eb369ba826ce2a976602988cb"),
		},
		expected: decodeHexString(c, "c305835fddc34b1eb7b34fce6b6d038cc98cd1afde36c3f077bf0b5811c03f379fbafc61c322c276da17f84ea22d838ee81f0cdc67a7ce661249c814df6c8539ec3f2484f96db76726c5fa92c11df104a359ec285421e617d7779a75b071464f6e485c417a07f2238e4c82cb95481c01146662bacc1c1d114718e95c08d1a4fff366eadd29c0f253087edc810bd7443563dee520120f6b37728e0dbcb31118cab7678954b7939eceb2a640bf5e46cfee45683daa916aac3f2c1df1042df7b276ac9ab9178da17f8f926a139439356a717f6523b0106f6759823e8d0c81f73cc88afef310d61b4b354dd417fe3e10bb53c821177705b76e001e40ab7c895a6fd4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c080557db018d5fb4589975cb2dedde19a070393cc291fef224e1599b07e1ca4"),
		nonce:                 decodeHexString(c, "e3a2362c0b9a05b457a48b1983ad2e1a"),
		personalization:       decodeHexString(c, "0780805cd1acb58ce199c76fd66bfa5496ec257a0cc7555589b8a0731a1e21a7"),
		entropyInputReseed:    decodeHexString(c, "cc89879f5b345e865ff415e9c5b29455230b4652544a0df58ddbc3dc46e348b4"),
		additionalInputReseed: decodeHexString(c, "c8fedd87aa61716694334fd513b7ad9291666e95841f4d62ff491d5ac2b030df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "34a3b0d935886b7e9275f202ccc5590d20cfde2d0e6309c41630273414a6b3ec"),
			decodeHexString(c, "874306fb7787c7a8ea12eada0c6559cf2971209d4dbcf6cba42f95404b54e3e1"),
		},
		expected: decodeHexString(c, "30682a9f8570ca91c25896f5f8904407774abac708571e3bf4cc7b5c1a43285ef795ea099095eba79892ba3fffe3f2b7dc7600abad7e16774a9f2c0c730fc96f4c8180da13031d9c2ff8faf2b95ab82c5f515fc5bdcb84538d164e7225ac6b177e5edb4e8c956baa0e5bf54e76292d7e98fe2e34cc78de83f3f5ba71fea7b313b3f812ede6c888d464b896a714264425cea8944422206bbfc3f488f53095fe41976c1a69965cb8552ab38f8cfbad9c3d778436e0010f9a150f56470387fed34bde5f6adc78699d7922438b79d16d5b319499444cc0f7ad579e8e07998acdaaed043958d4da0e6a9949cdc5a7af0035b14510a091f8583bebee9700fd4312cd2f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "be766e2b2ec3d4edad27a5cd7442a3a5fb96b533067f37e11cb9e3ad7273362a"),
		nonce:                 decodeHexString(c, "4fa36cd236494589885f2aecd0329f26"),
		personalization:       decodeHexString(c, "cc4d4f2a296c659e2c7b715cc6d86ac5407b52d06a8994cf5634d3f58d6bd1c3"),
		entropyInputReseed:    decodeHexString(c, "8027a6cd744cc6170e854199b0f5a4a223a0dae8ad11123eda03a8d5cd458698"),
		additionalInputReseed: decodeHexString(c, "ffaed9904a19184860a1f763842152b34943a0c28e30709d7016b87a23ad1fe4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5394f70733de42f0b91556ea5a772f160eaac67f58762227512be364bd5b575c"),
			decodeHexString(c, "8e3ec6c2c0297930514d9c65728458abb4578ec551af6a92e416072685647cd6"),
		},
		expected: decodeHexString(c, "b9a4098e4cafd5fe6515389705304ad7d2b8f18fc1baa4713eea89e322e687756657f18944b06ff433b2f9fd5ff831d7dba20a97f39c1cee849049bc3bde1402d68026540d7aabb4bcb772a1842913d66e77bc2c0968d0e6f50bbd2a21835e163b8569fdc684fd8091d9dada3b138bb067b7ffe9f6ae0f371192bd6e6aeb230cc4cf37321265bdd405226bfec310832e6957ed69c928b923e5943834f39f2c291f8243be582fcd3cd052bbfe00dd2a045f6c1dbfaa06b10fe435255441604587eb3c1b05c94c19a2716293fbd2169d1f3d5001c26f834db48cbbf6b53a9f34ebca5b3d3fb2fa981ec4f28d1131831cf839cc0abf4234c8ef811acd3dc5abaee8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "dab50134d86975b4996dcaccef9f12bc7efbb0b814ac603a98b154456314384b"),
		nonce:                 decodeHexString(c, "2e46f043c7b27b388f597613435a7ecf"),
		personalization:       decodeHexString(c, "efb9aae41310049ea1048e4a6032cc8fa009287cd93d30d3a73f51ba52ac154b"),
		entropyInputReseed:    decodeHexString(c, "04cba3a941dfb34282abae26bc9ed840934187afd1e058e8022c62a2a7880793"),
		additionalInputReseed: decodeHexString(c, "63c37a839f24f39ea00b3f4c3a7c78399782448e44f28f51119cfbf68b74f65b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc594344157c1d1a4d4c065bd81347551ad7ba5df9449e86a2b773752c05867e"),
			decodeHexString(c, "c33293a302b9e806f57df8d2985f2459ff752ac3c15adb4d09c51ee848041a5b"),
		},
		expected: decodeHexString(c, "92c5df73b793aee7ee8a2c24fbacd817bbc6374f9b87e64e47298a2f0871d39dc32a1ee9c02ebb14d5db6673d8a71c9fd3ae773c86b068aad646cfbfb5aef3168f5f225136ceeac797399b5d6caf34ee3e340b768528568bdbb30a8139ad6dc017103140f06367958fcebed1c4da06ac0b10ab06acf815982468fde26ac095ef49c2fe01481908b22b3ff21c4aa30d17bf07fb9b0c6a454cdfe54c1d039075c391f45ee5cd7d0a2a9ae31d7af3ff1f4c67d6ff60a004110b5717f5269c98b86b3b19d1fd6827c9f70826bec0b68af4075a392886fc97a0162be54a1c749afbd8330a22622715afd2567f67bdd7c94c3f6d38d7d14be6d2ed8aade524ae0b735d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "64acd92f1c27a949ede841613a46de138dc572d43dfad13804690f29308378c0"),
		nonce:                 decodeHexString(c, "2a46c7a35ac92601b855bc144826d6c2"),
		personalization:       decodeHexString(c, "edb7478a41c2126b3ff93faa0aa8e977f834a8e405dbd937a886779b0461e242"),
		entropyInputReseed:    decodeHexString(c, "f7acbcc3e261354a5db11bf77c4286ceba0c7513cb45da15274dee699a2e3578"),
		additionalInputReseed: decodeHexString(c, "d92c6677b88209e553af1c8df9958fa40029f71fe809599493c443cbeb3cf575"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6cdbc488a090823756e179a090fb2a510959052cd2a0e053f36b987d91030537"),
			decodeHexString(c, "8dad20a31492eb41df44d1d255590cdf173f0b1f87883eaba3c0a0a6f9449dfb"),
		},
		expected: decodeHexString(c, "0e47285df2b8a1d83a12c858b8c68aa29bb977efcb428f952f298686b77be91d5b5b0c5a136e16a8e192a218fb3b911022d9eb660e3a4deacdc95393bcd605b0e4ebc5e6dce072b534352a99cd6a0ad5303f5ef525e558b215e389f4014cbffe4b3eaf55366f51afb04575a3ad02b8007171d0d0f37d280edf78e25176854de67e6c54a260ede0200f6ba436d1c052e13600ea307156cbd093dbcb6c3ef137d209a134b1d58e4d48ff0bb92d2059d9414c3e31526f7c69606b5f7da7dc15b354afb0ee8916b25f90e163c7b62842d9ae5ed2b43cc919cee9bc68cbe0f26ce1694688ae319910dc7485af2af8a5b3b39745093de3e8c8da03359612d1d3fdea43"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "4c492f75593e1362016a4f66ed5a62ad78ac679ee0f764f1c7f07ef42618f48d"),
		nonce:                 decodeHexString(c, "ae9870fa007a80afd49ea7cd68e8892c"),
		personalization:       decodeHexString(c, "fb9dd496b472d0d696978f5d0ba97ea00a00c3ea7e4353ed2cebef8524e2929a"),
		entropyInputReseed:    decodeHexString(c, "77257e9f6e925f45070f1f5c84397d535b2ea7c9d37694b9f10d834ac3cfa9e8"),
		additionalInputReseed: decodeHexString(c, "aa8b76e033e64cc0b29e1b3eab5e2070a14bea66f92d45da1fedfe291b03ee1b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9aacfc636f366a00aa44ecad93f124a5ac10fafe27537e09e4fa5545d5903e7a"),
			decodeHexString(c, "9130cdbe5201611a195944a00d3110d6b42c79e605b794815b58f5d1ce01faf5"),
		},
		expected: decodeHexString(c, "79f34401c395a2e325a348ff14c7c8c927b907ca1f584a886c2d29b1e8f8a0034641ba29e2c9c3976cb9a33feed7f6c0838bab66bd6eb211e97d5118fd5b63235274bcfc9e2162f28785c92a933b1f91e277e441331fae1a661fe5ca31d3f09562f763d336850ba3edacb61836337c6e19a7c43dbaf386738b4641ccc6dde3369d00548ec2a7416e4a7ec1758c75634e989975d620c848896cc754673716595af04fd681a4582e9c5d94719b4de2d66269c4da4c2ed6791a08b87478dd8a81afee35e6f4fee854c69ccb4bd1c528b6ce27006dd45c1f0e1877f83fa61dca2d68aa5d60ea05ddcb14e230329c8d41599b71fed02273ba9bcfe9ce26d66dc628c7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3385a512a8b9cc5ac7006117401375c4a31ffc4c5f7ec3d56ed6a4df8bd03bdb"),
		nonce:                 decodeHexString(c, "352f8dd1356e0f011e53714895d7d058"),
		personalization:       decodeHexString(c, "47c5369ae18cd8934344254d740223db100ae3bdf4a226fdd0acd3ad63fec91b"),
		entropyInputReseed:    decodeHexString(c, "6c5a42f7a5dece2afb76fb3804a726acff5fa8b04bb5ed3b850c390e1ce564e4"),
		additionalInputReseed: decodeHexString(c, "52a34fbc8b1fc4a845c093af7d3d9489bb8c8164b451f94802a8e7dfd67f094b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b1f584ee40c33c654ef5fb5b04c953c8c99a1f97109f6b40faf103e11ca6f6d1"),
			decodeHexString(c, "be1316013490e3508fb77389afdbda7b5d1152f74e19edd2f3b39b927da06abd"),
		},
		expected: decodeHexString(c, "a44772eb47a785314eaad2b93788995ac7dea2cc70663d092eaa33442e9db0c2f8b5809621d4be2ef4f50d239314017451901f8ce5262cea545844d6bceda0c4536365cddf6012697b5d5771480d21573acc1ea7d0fe305980f1891226f389503cefe0cdbb9be8bdeb046849e5795654b9ba454af65c5b342048eb6f55a5a8bf1515fc3f4c5036bb525f92bf7d2a3ca04a763f29ecff53708b1719417e868c7835c1c89e91982ec2bc4abce314ff0e80012c667b6f8e064530576aa47332994a5cb647ce9349424787a03c240ae52cbfa31dfe740d9f090e998423dfd1903bb1ebc7b0a26624f5cf116ab1316550df4e751bf3af0a529a8f4b3cebc29d692184"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "aa306eb3b5d299fb70ec56c2aaaa10ed501b39d8491d9a5017e7282ba2d250de"),
		nonce:                 decodeHexString(c, "83d3373b1d193e0dce8fb756791c888b"),
		personalization:       decodeHexString(c, "e163606f6328e296eb17e8914242614160c9538db0a5f514f01fdf6081349d30"),
		entropyInputReseed:    decodeHexString(c, "39b14c8a53704c96c5fa806775c3defaa757f7c731ef0becfb1b9273d95611bd"),
		additionalInputReseed: decodeHexString(c, "d50800c786cc6b81bcb4c22d379b1b60be599d53a4b7cc4ff55208b92212471d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "10048f81e8eb0d309081bc6a908f057f509f11181364e88eb8cc12e0ab1109e5"),
			decodeHexString(c, "0b2bf8ea2e0fba3437954ec437840151ee8071ccc6a5ab4b11213cb27b89e4da"),
		},
		expected: decodeHexString(c, "f051ff9b21a3351107b642257448528bdf054a7bc0503c7564ebf3b237c7e4b7407be66f80a88ee79bd1c003ef03c555c5ea4044c71f6b2eeb8a0b0c361ccd251df0f47876d09c4aa1a128ab0c607f5ff653694b705e31c3b8eef3881201f6754f1161f91c814e7c1b7ef617e804cb05a8aeab3e3515d5a975421fb62690c330ab57723935ef022e82e52e2973ec9046850de20b5a9ebfc6386ad5679ece3f0c568c68675b4b968a3c4e57446bb41503abf2954e55bde56b4945a14f3e04894a30bbfd578c0cb5f1a1deb848971dabff490bb7c02925cc1d73ca182dadf3ef721acae156e869bf791b5cb459e5530a2394e3d3d10e5be1ae59c6384d6030a7cf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed67_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed67_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f4e641f94683cd8d86a9dd5933cf8eadcbc6ec8c713cb7a729c2f7dcbc626d53"),
		nonce:                 decodeHexString(c, "5e690a98a55188dfe781b50d82229134"),
		personalization:       decodeHexString(c, "3675965c6ba1c6c466fc76a8430c9cf307329493648a641ab7d8cb20214ec170"),
		entropyInputReseed:    decodeHexString(c, "55e8d7cd89f492b6303670310fcf9c2007cf2097e5984cead33bb88e35938b71"),
		additionalInputReseed: decodeHexString(c, "1f1d4d671a5da84b31ba5b8a8e26cbb26ca62eedef763dd0687c37e656b286bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "555efcf90944b3f09021939c648ba2bd7c1eb3056a85fe94045e181e7d88a044"),
			decodeHexString(c, "4391c07685a2e6b0c5122868262efeca48c0e86495e8748fc18aaa42ffcb2dbd"),
		},
		expected: decodeHexString(c, "88dee3e8458f78fe13a49966dcba5b3db44dbd4b07fe8e16fc079c51761fe435a78485611a71f6f37cc33e645e47dde378b3dc33f5ef577c26e62cefea218fdc2ba83990ad2ba1b878df5955fc779cc739670653f695d81a070522e291727695e8b2f7747fe37c451b1352c06ee277e29d24c6fa81952f99e1eeea371849fc4d0b24f7389e16718526fc23b05b90da2c821997dc535584f3c560aa1a7e18280b85b42bb0c9fcd3974880f29feca76a10b6aeedf745c1374f2e34a9830e52ee518fe662b7175018212496377113c14664ff5958644eebc7093e2f6af8fc67497f49162f641281efb21b949cd33fdd82797f073601ec17f181389006a22fa10b77"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed69_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b34b8b0cd22229235b4730b721f221add3d5700f42aa62c034a41422b574e1ec"),
		nonce:                 decodeHexString(c, "487fe0819c877fbd0463b7b6c577fb47"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b8f2140a0185bf2a8990c6553012ecd86256073d5568fba55b23a221c0f4a89d"),
		additionalInputReseed: decodeHexString(c, "2e719ce4af8b46148d058e8ff906c557a92d0723b88921a548a9378b9205af04"),
		additionalInput: [2][]byte{
			decodeHexString(c, "98948b72d5507575bc4f5bf33dbb481026c0f637cf40e5a8eec2055576d5fbba"),
			decodeHexString(c, "2f45e58d9ca5277cf45d863e74ad77e4da913999687ddfe0da7e5b7b8cdf5171"),
		},
		expected: decodeHexString(c, "1cef882900ff614a30458be5be5afdb0a778a7ad1ecc143a13cd70340d0ab655a67d432c28f58d90818e5d22313b9504cd9fcb2a594edde78c19d4d3ec802e5003005f366d74921c239ec1405a5da385ae5f130cef141760d4d32154af05667ff2fea79e49878b0f4d615e7ecbb390ab6efc93d279b91034bc359bf8b26d381fbd45177845ba7f2598eee181796fe574a0374091bf33b59b16b13f6a8729f6a30cbae410ae9ca197827829b79534791ff38d81644f78ea1606febeb077cf4a66677ea5ee864d36b36a8b90ed3a34e212dd773934f417c4affecae86e1916fc057d5689578d10e8ee782d856c8c888d516fc231906070399adbcbc49521cc3d09"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5ef09b694696b3dd537371134cb037676b8ec73e4932fced874badccdf14cc1e"),
		nonce:                 decodeHexString(c, "22b1ddb0c3fb709120a7db91052ab7ba"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "827d0633aa3c4581cbb33c15c8b0baba6546553f69006845298a5cd88bf9c84e"),
		additionalInputReseed: decodeHexString(c, "80a35db464e75a44d7160edaa75ba4edab7224701a08649352fedb8d05a4bfad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cce8b79d910dbe48da6af3d773ce83e77354ee9e75019d3b31f2efbbf46a1599"),
			decodeHexString(c, "4e72e944232829c21b14fd866646d8b0bed2b7727f988be6c25932911a083b7e"),
		},
		expected: decodeHexString(c, "bace0f86888874685dc590cdd7206f501b43cb2dfae72eb60dc5e1b19be165cc91719d62adc0ade55721b28a6676a9d70db02fb61eaf9d29b6617f02deb4f12a11b13ae9215d6c271a8e53950b2bccd71e9c193f07106fc58bad2cabec2c8c971671228f50884fabe7309eb85ce0f5f684d9f2dbde6916fe5cb333a3917915a1ad17919eafef0d80dbf076370956798a485a6c865bb584d9a0f864f8e2f16b25ff03050d4f9a8f8d7933dbd5020e9102e7fb0c90383e635aaf4c828be33c8c98dae7766cc5335dbaaed4338caff221e2089a1b9e1938c9cc6f93b4d3c1f57e5df596628d034ef8739a8ec9df82acc6085e4605271a023ed460f69f304e3cffef"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "69651f8d8b2af6a9e7cc13a3bbc6810988cc4b08378257c177b3908e5e2732a8"),
		nonce:                 decodeHexString(c, "26cd875b841c1968cc45a3580cbb29a8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "fc1e63664bc19189a1170764a7b55d3f15cd96abc0ad348fc0dfd5612ba6e512"),
		additionalInputReseed: decodeHexString(c, "9669d1b2d978eaf0d4fc414b821fbe288b578c55e435ebe7b09c07b0455a1fd0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d31fd45febeb0fe501036c8c238a8256b94dbf023dc1fd39562b6e3106d8d29"),
			decodeHexString(c, "34b5add67363a2633d677c1b1fbf6521999f34308722e6190526b5369df4b23f"),
		},
		expected: decodeHexString(c, "a8c8ee1302c659ebae887cfd13545027e8262c7b6080de1b92a358a7ceaae98d38d8db53a840defa34003748903b95be55376158b30ff744e23be929a0d1e53494cd838efc845d855fb7fdf79698455c07ada1d5a6855bed9ddb1669aefd88cd036d45830f808e5fb2d0db1e8709b5bab3f2f89a7ce626b61867abb5936ed91b140992496ac1a4f0aebaf616bc74d96665775f29ae2fd643e824ba1fea67e0122d904a26710ee629682eb1ac37906402e6d8042b0ee6be3986bf7a21432966fa562cc44019dbc093877570daa7d336db193fdca40a0d0b11f78b70b7887254ede5cd4d56e8682f3ced495d8e7a6ac8e1dff82df906a44e506c318fc148dab8a1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "76803a1b46b4d925372f9d3421d26afe18589efcc48661345f99b27561cbdfb6"),
		nonce:                 decodeHexString(c, "37e47b3323be19205176469674de6ba0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4614de887d3b31f25120f4354b73e0200ce7d3c214ba09a7e7bab5dc2ccfdd04"),
		additionalInputReseed: decodeHexString(c, "7b5a454df07307be1ade4602bcd4fabe6c1449d240f29f0eb7cf1cf6ff1c6bff"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb797f83c22f655e25bb8916e14aee80388822ca930723676624403c62ecd444"),
			decodeHexString(c, "e98d4ce2cd33749ec63f63eb5e6712f946cac2ba4b024ece56c8bb7cc3c83003"),
		},
		expected: decodeHexString(c, "dba368b3526c984417305a6d784d3c15deb5fbc1e89206c49a89f93191b1f721ec8e63168865c4fa86a9a3b856bc7eb54a327bf660665a89b76fb510733023ff7e85ba6fbe9d7b38158efcb5a7b3fc118533924bbe157e586064e76d2158df8f10b1ba3b51db7b9f21e210746d56a8ceae9c5c5842ee5f3e0ca8c88a840f5fc4d6233084c5170e640250eae15d9d9b90be6f588418872342d8c88d6c3fdd01e1a77fd30017f4935eea0b86975be94dfbfd099c9bdfdf5cb09c9ffbce576301412c807fcfe6f30d929a1aac587d4d12c109646a4ca1d1cd8b1c48598cfd8d8a9e290db238bb8846afcb0d075c2b2e77ec6307ca04abfe2c6310cf86bd56018073"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "475846c2b5c94321956a8cc33131ac5ae677b98af7ae243ee79f31c19e5ee547"),
		nonce:                 decodeHexString(c, "4853081014616287bbff231ee38fc6af"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "447f3460cfdaf5500cbf39d8208f59d8c3f4555cc25d3362f6f47f3899838f23"),
		additionalInputReseed: decodeHexString(c, "d2369f31a0d629e774a10bd4c96975ca03b200c208d5e354a233747beb7c4a5b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "51d7c305452e79de234a263677cdfba0b5b2e1d46b72ad3e1f0278ff1546ff4e"),
			decodeHexString(c, "039b63e705f9a25a53595089905038bf888d6df9365f9f80790acb9a04799703"),
		},
		expected: decodeHexString(c, "d8037ff51c73eeb02a272568759ba1900276ffe6aeca314afaa0eb12b55e729e99f10c792b5570373b9674ab8e5f30e05615cf3dffb490b557d21ab52c0d0201d525e0286800528cc5a332f02971e41df55538f2fc4568889c3710ae18e7ad3902872446d884f60a23b2bf953ba2f0ae17d542399991dfd76b39b59461520dad20eea90a7d2486f49e5f7945f43c4ded04c84eac726fdc1794d1e5b593661a0814949f34fb44f80b6104775f0412a689bc363236cbb405a0294a0ee3b6e74314d804e8a84ea7256040b4c9eb9d4daf555cef76ede69b7298d5cbff7284dfd20e22f8c11cf3826c2b652e8d1b3926c86cce1b94479e6f0b6d2d2b0f4d85174b9a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "930578f9b6c1b5302e37888ac5927b17bfac1c333a9da0147203f99214cf7835"),
		nonce:                 decodeHexString(c, "ed63793a404053cf1be5feb589f5b0a5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "14d06d24d001a8ee287aee37024c560c4a7a68b4ec9217baa2170181372bad6e"),
		additionalInputReseed: decodeHexString(c, "4d58c7e2ab59078a5b32cd72a89df80babb315f014dd9045a41dcfab55c27c6c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "82e689b79d4a2cdaa07cf87f455bd842883c066a19c80240f04ba87d763ccbb5"),
			decodeHexString(c, "5684b5abd202d04e6880577f6da30a8b5b76c730b0d146d0e342cffc4b1ebbd7"),
		},
		expected: decodeHexString(c, "e53b14d229d5b4ef9161724145bec8169a927e18af4031e20a852357becde323ab2cd379f425b83c4cbf6c90127dda4cb413b57d5f5337fff193e199886e50ff52ee3d3dc67df093311a91b3689041227350af5896bace2df3ea61120c30fab9d476ea19339ef14b040fec75171ba349070b7b786ef0b1f1392984a8368fd98126602db8a71acd6691cfec4939020b9f2158baad435f48dbef26235bc94d6052cafc3957c79ba7eca731101f7f85790105379d91064e905ba169c6cb4d4b58c70282dc220f7f9978bf1a8548768993ef7562e21f65ab1389b1580410d8a185ea7851756180d588518440b93d21b9d7b1ce8a6aa29b7261584ce8a9234e0bdb0e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b28fb966a0c73a848d0761c668bed84f5014ac9f4deecd1a06fd69a5ba9a4b72"),
		nonce:                 decodeHexString(c, "ecd7d4284f86737f3b23eab153f3a6a6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "df885d32ffc9ac4ff9202604c5879ea65c883d7b7560fde13067f672c3bcbf84"),
		additionalInputReseed: decodeHexString(c, "0262f97acc7bf05eadaae6b446420db2f64eb99ccc19b63a31f1643f45d58291"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ff96cec4ab7975eae5c92e9f9d78b4505449ebc3f5c78527c59ab01761ba044d"),
			decodeHexString(c, "5ba9bda782aee6ece053851fe7c4ad092f16d84e6951ed252c9c2c3fb250df42"),
		},
		expected: decodeHexString(c, "6fc32937d193417d90ec393d8fff9d66ab614b4ebe4491d6a0bd9d64d7aac6ab84f0d479b505c3c459e88321992fda19709d078d5d1fc4551b560ad4121d38e224b4be8acf704383054152c8b6b135cf12ba27a6e41213279642cb3f08a83ad0d4b892b95d23a76d8218b6f352679473a8676177134206617cec921b16d59bacb495eaea343cf039dbfc25ddf9c4076f77ae52199dba0a645f8f327f1b8b4f6ecf90609c6162ad752a4d859b3de2c590ae20be0573b49342ff140ef34df56463422cd76e42ab8d34daec99d2ae42e0b91ba3002e1683517f430beeeb5f1e82d63521f12f4b571e5971c3d34d6430b176495015d2647f22a823da4fc8aaa565dc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b814ebfc2acdb94edaf5b6018066d99830f2e5b3b456443238d59780d03e90bd"),
		nonce:                 decodeHexString(c, "5191f18d690f0855222588e44b7f620f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ab3b009a188ad166e67c403261adfdd41bd0070c3e5243e8d6eb45f57a584abd"),
		additionalInputReseed: decodeHexString(c, "51f5da82f4eec822681c357a80317f50cf73c743a0d02575055c5937512687da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d53b7d043aed33d50b12863280b7d81a9c9f8ee924cbb57ae22cea99cf00bc7"),
			decodeHexString(c, "5ee89062f15fe3ea6abf74d53bdbe8f9adba96c9b34bb478bceb88ac125403c3"),
		},
		expected: decodeHexString(c, "85c2da7ccd5ad4909966e7d6e8b07d44fb4aa8220468c18e1fa846774e00f64920c019146dd2dc5e6687bec8c3e024833536a18abd69390f46b2e014a1880c2809ff22233ad67449b483882a0443586490f4dc76703ea0fdf40e9977af1b40399b7bca8d3782944acbcc1b320d59a945b50457f13e0714a0c1cedbb141a879e214a8d30c09753dae950ce1ebcb59b4f6ccc4d81d874037d8b80282f592a2c645e82756d3bac528487f0fddeb48a08a6d13d43232c0e46b6836ff78eb7a6c485b63505d03e7bdb9f63fbb959b4ca776bcaa4b2dfebb0c38aadabb489b47aee60dea8a497f80958935cf07cedfbade4dfebfea737f941daffb2ee59b458bd59f8d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2b5ee7de482da18d4e433b3802bd039e748f245a3be615ba6d5a05975861232b"),
		nonce:                 decodeHexString(c, "1e6e6056627b12110e13a3b1dc742cf1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c45bf4d2ffe15cf82e453f9ab21edc0a087cea691d5f82e65242a8779a5ede4c"),
		additionalInputReseed: decodeHexString(c, "d8caa71a3ab4ac19a13e809a8267240f8e2e3d4ccad4d3e0d5642257e3d1281e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "998f973533200b1e6d915515020daaf6ce77cc0949a58f811905b258c7ffe44b"),
			decodeHexString(c, "fc553c0b30ab7c4d30a7bc5330207bcd4eea016521f1477dd76af7bd050263ee"),
		},
		expected: decodeHexString(c, "4d3b01359994132c69a15e9e4fe2c4c85e52fc7f25e822df7bb2fe12d5e78012c554b6d3c8ef67e43bac0c437e5ba63cb5b3d6a8b9b07e5aa63ef810a90d5c945131b917cc1968b1d61cd99a54c844ccb8bcb6f71bc498f6de212f8fab3697898e709dbdbbf7be2680a22ae0381b1253ae0876a685b30864934183ec7e50e3586cf98dc8af420e16a00f32b5c94fe5cbb29a86d2dd5d637f2d01c9be61d8c6ab51c41292a6eab1e9f5d34412bcb9f77e142ac59b64ddf6a3f96e59a0ad5970e280670d29a4f5350beac139bfe17cfc9cb79692a456ced081f22f21c570d588d704ec4ad0900a691e18d38641b61180fef2ef6c5da6cac97e57ea2eae38e84eed"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e2ff109ede3f98126784b95f2dde3e6f27c875aa8467c830babccae9f960c1f4"),
		nonce:                 decodeHexString(c, "ca51b8e1f389c92a37320144f1314c2d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66b0b46577db58cefba4fe808c80d425c6a0135857a546b7f27312ae4254e755"),
		additionalInputReseed: decodeHexString(c, "e06babd95e325ffbb2f49a4546c5f35a4515be70dee15b86d6cf8046f0bc2aae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bf7e360f1791264354a70b2d5cc121ce702ae0cb208ef97263513b10ea48a61a"),
			decodeHexString(c, "bbad6059e8b756d5b4c57f50100a2efa551c1de0c483bb474463e2517d040066"),
		},
		expected: decodeHexString(c, "72c01414a8b1371669d9c169220513cc1bc16fd0449c119e9ec467a2d6b018663ff24b632a9ca0ea7ebe375cddaa2b46c39c9ecf32931a22aade5e47da0acccce0c7fc7a8a0d26f9e91fa8e8306aa543f659fae99e2290e1e5682dcb940252912c7a41239392dba493b5ad7206ff3313a2216eea6f64ccdb873d98894547fc3299b4742d087f2bbffe34ebc9e9afc78ed6b42d893277533dcb04b4d3abe4c07d1f3910297e70e7726ed206f872b38cfd082bef584613995bfc18ff53fca5cd69fcfd09cc09963889897e0a6b3cc8403143e3a8d2c4a338e2ef9c594f5dd7cd1ef15f3443622f91c113ebdcc3a581974edb1397a599e25fc3d3c17c0133417aa9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b3a7fd06af5ccdcee750c9215aae93457d604e76990ac703f173613dfc0b6e66"),
		nonce:                 decodeHexString(c, "c0778a9b7e28ebc80b664af2e7fdd857"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "86d5b77c8497a36e0317316bd0cd1801179c6038fea3fae43feebd3503e9d9e0"),
		additionalInputReseed: decodeHexString(c, "006dbdbd9374c073e93d8e0ca4b4b5e5f1737acdf020e4305e7732fd5acbd328"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4b5efac4d1a1a48cc4351688d87f4d7e67b965af14a515584496328f0211df42"),
			decodeHexString(c, "5e5e2bc6529f34879eb3ea1574bc7bec1922db09a6985dea788f03d1465010cd"),
		},
		expected: decodeHexString(c, "77f5f8803f17355de81b5c9c5a56d8a3abe6794c7f9b47cd50a97410e14eaeebef823f16448463a1de98a12c4ad5111fb1d8a1f9eda91f5f6957a1e84389802fe596574228c1982c54980b8d4d6692800e0ed9b4ba9515c7b7fc1078a7aca4e32a71da83cfa4be3fd1c51cc7bb5c555750756734b59349f70d12e0f29f9da6fbe6f20d145669569e6147c5e346a9eed9e2b4eac5de6712955f3c9b225c9eb765811771cc9e216d462a735956de5391cda6a7c1d64229764375685f0bbc02910f9d3fb959bbe50ff39bd378e3bbc38e4ea88562e506ceb9871e7eccb8e948c99c59356b3160034c92a08a4bcfc9c41cbf4c9c3d328c17540057ba8489cfd63fbf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b9a57de2486498048f03d95588020f881546bd06e5da8aa6f0bf98b1104692b0"),
		nonce:                 decodeHexString(c, "05c1f9ce3720297f0b1c55e0557c54df"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "353f047eb275d6f32990e71460a858be54593b3b68d5c17ae9602c2b1affa2e6"),
		additionalInputReseed: decodeHexString(c, "772a940c5bb5283a6f34bc118338ef5b2c391bf01af90cc98c0788d3d6508441"),
		additionalInput: [2][]byte{
			decodeHexString(c, "202ddedcc086e43cc565b64594b6024818ffd3d2302b80901a3dd0cccd11f458"),
			decodeHexString(c, "d44375c6078d3bfbbe647562deebebcf4c3163b42f01ed80f1f29a81fc215201"),
		},
		expected: decodeHexString(c, "86d7635ba25db9e25787dfd77dd99d7f6dcc3c286ffef0c487a20edb8d19101b2fe6898b24500cefdb9736cf6517c976cb182707578ab094b355c7b785ccb7aafe381da2b9cf0fb65de90c4b2aa3931f533a3490c6ec55503002643fc637a42dc83fa5c3687c8340a09b93cdbb8200a3c9251bec730231a048c582e0306f7e5b99deb6a9cd400b01ae104c8e29608a3d844224d5ab2924569c7de4cb4b3fcdb2e371cfe61c953f7e998385f7ba28f9b7b5947358d1ae01a208f9c04b1bb555a7a77309e6b8df34c8a21cf5279ea6515d3f4ea389f9afdf1b87e023801228792add02b5c8bd98354d7a041d0fa78a1d160d5469a622a542fa01a42f3b56c45dea"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "151099bb30284200d5bd476d7676c5b0bde1014509821032f4009b39fa8f0345"),
		nonce:                 decodeHexString(c, "bb6481248a9066bc65aa8d52aa33625b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ab0b0a5968535887bb06784c0e5eb9583fd197555f9711f96bb4a7454b442815"),
		additionalInputReseed: decodeHexString(c, "30ed1a9a08bd7e7f17d83af7d495851c5ab2ae3108c6b83b0f4f406b71c0a76d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e070c1dd25a0aa123fab7c6bea38512123238b003a57eb38e133739859db2f13"),
			decodeHexString(c, "e14d40bc2817d494bd81bfde1725be096d24d8dd47e3a168579e093c4f1b6056"),
		},
		expected: decodeHexString(c, "0dfefa72c6be1b74045268db82587fdfabd790c6a8dddc260c2fdfd89fc9051081cc46b32e7a721f63f367a9a2afb09ee56961793d508695e2f27ef7db4f91e66352f5a3bf8cfd29ee0e9708cc15a4ea09d5a76079325dada64a8b1dec2e6a21ee8267e6dbd237a19cbe09b00bf1eb5e83878d2ee362806c6995cc3d1ae36f61a0f8d11990597929e33547fd463cb364db47ed42c0f912daa9b7c139b203781fc190e9d034ef8da031e20a89e5ed93e5bec3c7f28d7394a69f69e3682d915b6a4b98794d2faed02da4cbe4c5bea07b39aca1486b82106584cf704caa224a9f2fc5c33a2fd3c1c11dfe184d8160acf48771b6acae79fa71af6c4e0fa466f603a0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2658403ff2f2bf89757e97e329d1913c28938fbc7e86ce12852cddfc98f10934"),
		nonce:                 decodeHexString(c, "ceae5617183cdf7fec5910f6cc8f921a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "11e8cb4b6caf0115a99fc846367a68a0f2ddc23f28c89109b851f1e5bf1c7276"),
		additionalInputReseed: decodeHexString(c, "22354dc4fdf4363745333dcad319cedf14ff600baa9bdc4073b7d73f3f385e5c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9cee34676eaa53faeeec725a1ad2a0ff7767476542258a3faee0e805c1ecb08b"),
			decodeHexString(c, "4643064d51f522bc5cc7cd86a3d19a4f4517d59083236101685626d83dfb1c79"),
		},
		expected: decodeHexString(c, "d6b4b8ecff2af5ba05d87db5e3f59a76c74806f2eb5672e686e5fb62c029461d27626d7c7ecb2ec23592526161aeed6ba0b08fd7d13f62af2732f56b305d6a970d37a0066c6ebcf4e1026df161462f7fcdc7244e32999767cee5e96b97aa467f9a4bc8d6c1247159a65707d2cb3b37d0ac39c37b0a3846051c71b5bbfc6de2e6f0e9d7a84745ca187484751ab41f878f1efbe4a9faa16d5e3bd648b62e562841d82fe52ef9dd5565f657878095d673bfafebf212aaa4561ce63cd7d29ad1c673cd91aa4f1092d1adb662a9c6c1c1afc5d026c5c750e681201b3ea737c489baa67db9828519933029db58d521351cea3c4c1e11452f8444b00a41e6968d3642af"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed69_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed69_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "73526c7509723c58d3e39ee589e1269fad4bf17645f5955efbed81242f695d24"),
		nonce:                 decodeHexString(c, "3f06f1b2a97772134d707b94b5784af0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cf4712e5490dbf42f995106339c964afe4430d1e380a014ce8a0fb5b1057fef1"),
		additionalInputReseed: decodeHexString(c, "1d4fc33c9563543c17c6216e8d969f32849ca232fb5b42e505af6d96318c93da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f488da135de413e746a367685eacd5c191209ba0458565285419f6b950a3ff9"),
			decodeHexString(c, "7b48678423b711686b91cbc7f5ba2750e06ded99cc9f3b7fdcc2556f0998b243"),
		},
		expected: decodeHexString(c, "3d321a56cb18c6d69fb68e38c0c08d807618daf05458c2dd888a467e3f4445135a782f92e67b945cb526281ad6e9776bdc7d52040bb4e0b336b1973dee6c281cf40421b016341bca5682240aae04fa097a46f4ac6852ebcf0ad9dd171bf9f844e01f846c60288b57459bc9cc0117d927a6315aea908dea843d526f214e9c0e46f44de6f037033c6ed6248cb32b06efc77ea26cac01260342daecca664cf1ad1b048c8715b40be06c78eb9a29b4b9cda6240b93087e028bd8824c44311c016810634cb7ef06aace61d8da758194ac831223373752cd0ca820d822cfe719058b4ab040361480ecdd7a7cd118a6c882d745a88b9c13db96e6788de7794ba94abc19"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed71_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b545ef49fe99637d6a528e20dfb7a50fd4147139ff5d4906fe40dafdbf02ab6c"),
		nonce:                 decodeHexString(c, "c0a915d8997ede54fef698e8d89400cc"),
		personalization:       decodeHexString(c, "5aeeb4b701efb0ef5278fad1c14fc9219999fd01381da37652363b5eea52bc10"),
		entropyInputReseed:    decodeHexString(c, "b2fbea285c181d52a2c7fa93752adb9b1a84ac38bd67b8e575d09d3ed8e743d4"),
		additionalInputReseed: decodeHexString(c, "0192986a85f548332f0aae6751fa3819a5fbaa6c86037c882acda6f00e3b9c37"),
		additionalInput: [2][]byte{
			decodeHexString(c, "729e51f3cdb2b6c89f514795686228373021cc8a8d961e3dc72c57c7854b310e"),
			decodeHexString(c, "d1aecdd87ffbcbe5a7d545f12254e59f061e10e9232d1e554ce402adbc65e893"),
		},
		expected: decodeHexString(c, "1af05ce7beb2605822acbc23802f3b56bd34aeedd56a770b99bcf55c7fedb7e17cd4225245d56c416e09927fbbaa16ce7f01918b63706d47c98796a513ed6bc43f56da45d51a6fe0a43a957e2e0c391a4e5be8dfa6e74008d1cf9e0527cd16a79af90732611d424e6e0fce6efb8d1b33467bc5af835678f5085f44119095fb9ab7d9ce35b8ec0557813c7af3a3257daa85f22deae96bb1955dcdf6d9ab7a22ad9f86bffd49f15b0ef9958e406f14810bf2dfd90182909c825e518b3401b5297846d1f877d66e0fc7e31c98b9d4af6b8cc13a943f5538f194527a74da74f2ba596cfa5e772264bf8f783ecaaf1383f9f32f990c21663c2cacc185be547fcc9a76"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "1e1eca23c5412c143835fc230ca33e5363e7d3dd444c5497b3ba19582ee23b5a"),
		nonce:                 decodeHexString(c, "025b010be727212d3c7b558489ea4384"),
		personalization:       decodeHexString(c, "80288b30ba0e25eddf3c1fb8427acc4f56e44ecce76821825ceaadc42456f24e"),
		entropyInputReseed:    decodeHexString(c, "eecd89943bd669d640009324e12028e1ee6d0d71f89e47a0df0f1edd7b8c6b5b"),
		additionalInputReseed: decodeHexString(c, "900de40c2cb248c1e169af8a734a153e2cb9519a44847a42c0fec562abfaef6e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2fba56cefe418f2596c6fa3becc6e1f52b862549c33fa9aa97cd1353b3f650ae"),
			decodeHexString(c, "1285004f8b69bd3d128eb1c47bf3ddb8e0c838daf4576529c95f4e8fbb0051dc"),
		},
		expected: decodeHexString(c, "4d41ccd38abb05c6c1d4e7a8e7a65ee532a8560187dbb6c6c2bbca9fbee9c3b55fb46762531b62122d08a695b62334c6af71dace7c4ab7b20673af17d9a1372316d1ac0fdeca77d1ff79b0246dd00f856807cdc6bcb1a5b0b2581b67d373f975637f1a862ee4a661c69225fc589f61541f4434809d89a6dda302bbd72716b5b0e812362a674e5881a0cd8cc8c115cd7f6e45191f5956d17c7eec40c042cb26b8a985fa6f5e6495d7c70625a527f31a294b717894f059c6362ca7fa30298b7383fa36279dfd3a177f586299f55d404a7efc44563a6672b2050de9900a1ce6e55a336ec6c0b8ea0102620bcf965e1c4700cdcccab1e2f9940e070249b12cac9d2c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "92201c1c720fafd53aafd9c22c8391bf821c7344d89fef61cd68edae47af5b4a"),
		nonce:                 decodeHexString(c, "7b5d92dfb6eeb09252ae20a7d734b06d"),
		personalization:       decodeHexString(c, "b4dc2c746a966f3652626c75cc0f3ba97a098dfce9c687c1216753d5864a2ff2"),
		entropyInputReseed:    decodeHexString(c, "9d9a9141b12eefe76ca97847bdf2c7d5324f1fab4f7974ce0431d1c263bd4db1"),
		additionalInputReseed: decodeHexString(c, "169844b896792b77108ee8c8ef040c54f2a11abb77b1a920a779e97e6bb0ab44"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bbe8c1be45fdbc4a9cf59a712ac2dd7ca1136f572e5417816e87c9ded6390525"),
			decodeHexString(c, "840aeee22757687b885de6ff597989d4ed44ece21d7949c0aeca47fc00a57de9"),
		},
		expected: decodeHexString(c, "a35e92923c92d3e3b6fe81fc5fb814106aebc8a77c7e2da2712e252f633f0ef0489e865304b8a4dc23ef537a9916a1e8c360afd053207c479975d4b0282eed8ba82909f306d04aac937920f9b9b0d61915f23f5fdb4a209448decc03c741a9319b779d25cccbcbb699f0d82633170e77ba1e2d3967e48eccb1d8338aef54ee1f31fb995a6410c7522d8779712209a0ba2f3f08d22ddbdf7b349269e5d6a2c4e11291cdbe4add39b8816b9a706a42c627fa0bbbae33227c4005398f6909a3fac855b2a3f2fedb404fe0eb33b1e021385bd8c0361fc7e54c9505bfb33697c64dd962a264cbe73979a0298f54400b34b4811dbc1d16cf0652cd61dad4798501d4e7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8fbec97ff2146c8c029a44b8e8793b8dc8c27fe8e7c999ec2c96afe15b991d9a"),
		nonce:                 decodeHexString(c, "f03d2811c2ebb1dc60e8f2aaf0e09882"),
		personalization:       decodeHexString(c, "b33edfac957986bda915a3dae2c52f3e30fd733a2a3ed1a86c1d8ddf24fe5850"),
		entropyInputReseed:    decodeHexString(c, "f44250d9a0af62b7689da45ccba03a8491d1385e24dbe545e08a151685573320"),
		additionalInputReseed: decodeHexString(c, "0c7b25f06bffcaf4dbd8cb269cb9dff91b99cfcd17ff498e6a4db98a941987df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1bd62ee6f4a272b35da20240a017d1ba8849a9a2fe6e7904083876ba0394be17"),
			decodeHexString(c, "0bb6e181fb9bf1565cec093bf44c7dd1e70e14953d3dbfe88ea8389cfe004e27"),
		},
		expected: decodeHexString(c, "c91defaab53d789c7dc519fab443a178b9432aa094fe7e4f52100268b2393066ba4c72f6fa2f1941b2ea2766d10fd43fe7143db1b920fc58276fbf742a09c4a9cb66f6a555034053195365e2c49ec73042605c4c8e54e7a2b97dfcefd7d0023f29922f9ffdebfa5291f81c1ec189d7562b1eac819b33685d958402197045905dadc19e35d0c80dc65e8b307c6c6b4be7caee0519a799482b6c6f3c69f5a4952d22a40452f8a8a4b6e550a648ce3588f10984fe6f675b761f707a5370a71a851b6274e64061046143585dec6d410edf3e9a66ea70f858afbf3640a38c6f53eca0aaa52e15c8dafe434ac1cc42d22d2f33ce0dda43f679f7e1194bc1eb4f391d51"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "bfd40725f5ebec659388ea787224f8f075eb72687bbd67935a7e71b4feab9b03"),
		nonce:                 decodeHexString(c, "af6dee25b154680d761afca5897cb8ad"),
		personalization:       decodeHexString(c, "3500f2b4ea0bd30fbd2e143a29c6b5d1b519b559453b1260e57a42bebc3a5d2f"),
		entropyInputReseed:    decodeHexString(c, "ec2f712c397f9aaf4e2e3faa843910c41359f7900beaeb90ddb84c95303c0ecb"),
		additionalInputReseed: decodeHexString(c, "6c0ec59eba1da6cbbd7374f36f3177c855a2a65b4d75189741738a6f662f77ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c3d39ae88b2ea360d25692c4ffa1bf9be63d9e194ced791c5edeff42fe8a8b9c"),
			decodeHexString(c, "1d68f8c0d86528f73a9b3f53bd1128dd1f0319f78e31454c338d62b49f208381"),
		},
		expected: decodeHexString(c, "c84c664333cca8d6b236afbd44183aa75e981d72b6a3fe66129d8c1223a85bb2d425ce3da6d362dfd16dd6f5e6315c7edad8e96f70df4a8652e911a43304b9330174ac824d8d0d025f4b404afcab89c9e75fac9819e7ea2e288744c35c0ff92f8f9e83458e7548f8c1e9d6f1d7e95400241422a556f9c95a4351b65e4f1dd423347653f2247023e5b8f0a9a589041f3daa82fd2dceb1c8ea520ede22ca07e1c56a211b94405deeb98f91098505c827020e70b8beedeb4fcc30aeeaf59fcf11b464a51d20ddb0bfa5606fe10015588d49c17dd429aaf1da309d494cff47a6a62e0df4d0918e0fda7e9080221a25476d6e32cb1314cd9356509635475eb7329f25"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7ead26007fba35ee7aa4d9a9c0c4a99c773fbdd9da07cd151eee3eb6ba765f4f"),
		nonce:                 decodeHexString(c, "685f28483d6018d01d78de1eec5a4114"),
		personalization:       decodeHexString(c, "01449c471736a99d1aaf17f1a76d471915397b5ef4bfb8fca485c8684a4bface"),
		entropyInputReseed:    decodeHexString(c, "f27a853d08bf950735b100cfcb158a9bad98bdff852ca7b536cfb779171ebfac"),
		additionalInputReseed: decodeHexString(c, "82fb1308d455387cc05fe40e1a5edb81692048eb94ec63904cb15cd11bfe0599"),
		additionalInput: [2][]byte{
			decodeHexString(c, "035feeac96c20456aecf330c410591d9ad7ce6f65a247532ed68992d3df7fe1d"),
			decodeHexString(c, "a86d6b506a7bb92de6a1af3f59f4af037362a902d0350b0cc55f8266657c50a0"),
		},
		expected: decodeHexString(c, "03b771fc0bae9cdd5f646f8573918e48d405163808a86c0588b541eec81765e1736c2a46ce7f0bb09a794755e971e29f122cab661f411f6f1f4ce0bfbfbd32282f08edab2a26b3a5430a8a286493f4f6ae47c93c1d19601de757aff97fad38fd656e026a9aefa10efd9ee942e63d2a503967e7545ade90c5e4105e3867169247166d0a10addb91827e2483382f85641ae688f89c05d100f223101a2e88ae7208d6e5318469a424e043a96540e3d6bbc3904946948d15b19b61d4fdb26be89a9fa35e57807d55aa655daf84b466881e8ccbd751891a32319f3463af04b964ccde08a9b4aa82ab9e2f60b80cc79b81eef211e2ed40aa30a74652fc56ced34ff8dc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d9fb4fe1010973b7a1a596985a813cc410f33c799a5491b2e830f6b301729eff"),
		nonce:                 decodeHexString(c, "4f1d3493139d0bb0c235c5f4128b3b5f"),
		personalization:       decodeHexString(c, "0b0b01abdc9aef47d49198c25e0929883f790f3c6aec2af68909f289e375ef66"),
		entropyInputReseed:    decodeHexString(c, "e8836ffa1e94b003ee87714d11b0f5c201756a4b247834e8e28a4d272e79ac10"),
		additionalInputReseed: decodeHexString(c, "d77281872e7e646e9545d3fb1afa84bf6c11319d3140802e9e976a9af2d19522"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b4739221cc4c372110c57918b83c956445d44c715186499dbcc758fc064c9e42"),
			decodeHexString(c, "5038b993ba92eefc2f0d730f1054ebf7e16714402c3d4329433eded0a679b06c"),
		},
		expected: decodeHexString(c, "b454f3d8d6ee50b3f82a126e0ddd39be33b646f2c210cb732a7ddfe546fc4c047fed269488465f4173a06c3db8e80b8107c7763a80df43af8742844475f8ce00efdeceda768512076f3cc0ac45216e0c9d2a86decf7d2be83c9a3d5448171b7d6f1b24ed6417f6c2410a71d5bd91e6ae3ae6113fed3a8402526ed301f507b3307aaf9eedad9dcba67090a487f384a0e0cde7939ecedcf9c8760b2d0113854150007d4ee87c8052843ee0e36b0185d81ae4f68e72419fe8da8042cf7edca077d08b97ba772d7dfce7a0bcc591af155fb2847ed7f6e9c541259317d7b05835ae5368b8ad08e9c6d00b159da27761fe99303650a5653e88c865ee352e402d17b8d9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "de7ae27c942eabeb04d15e5c780e8d5f7dc760b187a0e1260205fe93e28cb93b"),
		nonce:                 decodeHexString(c, "8add3bedf4d457fe164c44377a8f6bc9"),
		personalization:       decodeHexString(c, "34d29ca99219a1f169633460fce8f48a92ce9c9d209501eaf8e557f29d085248"),
		entropyInputReseed:    decodeHexString(c, "1b806bfce476387e08cbfd3f2fa5e27fd5fc6fba8b9ea73b96d0d9a1718232e3"),
		additionalInputReseed: decodeHexString(c, "3e39c488ac70e8cff43ab2aecbcb741528348e9aa778bac9a4f3888021a1817f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e0ce337640e247b91d999b389bd052639b7de6d8df82a8a3640cf05d2dbe91fa"),
			decodeHexString(c, "15f6562340be54d873f415299ce19a84f244b758d5720c22de4e83cec8f6d337"),
		},
		expected: decodeHexString(c, "484a01d12efb77f7218d42d0c0307bc3fc2fb2a201efdb3444c079f525d675204928cc55296708d0047f3fc39a4d178493bf46d5e7ff000934e27341b90029c827c7fe5cc023db23bc242a4080129cdba0eaeb3a428f0449f7e970982c2411fd29c471eb383ca095ac5c9fde00ea67e447a50887ab9801d3723f826acb501f2d207216a30dcce1da3438c874b506a4e137dde314bc980895fee90ef18a723caba97edf6cd210d51deed40a88b695d865748bb4b1b94c773711504b7f4cbb8393689c193da46efe02d45b13c103787c9d0b2859795f15e05f7a1d0102d0a19295ef6da4ef311e9049f0ef356595bbef28af64813ca8c4f7a594c0b88deb9b0a1e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f359535fa9d1ccfdb4d0a4c4be750ace90a3d8a0ed1cccd691bff6d3d12f9d71"),
		nonce:                 decodeHexString(c, "5d1e328ddd290e3534fce6e59ca2cae8"),
		personalization:       decodeHexString(c, "fa736eb7f62028314d2b516b36b1ae54d50e8650928424131f0a0fbaba559470"),
		entropyInputReseed:    decodeHexString(c, "e8d16f9cf6d52911d59e5925eea69b49b43c948cd10dffdbe787973025038a80"),
		additionalInputReseed: decodeHexString(c, "84060d9d45c87336aa5ccc8db21cc940865d99f7d56a8f1366e10f3723349fde"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4556bbfdbccc5b778d66e89a241602007cd01d058c47cfb69c9a53a482d618f8"),
			decodeHexString(c, "328129c5f1130865f90973df9122cf84f50d01be1b7a7ece85585a7ccd044751"),
		},
		expected: decodeHexString(c, "0d3eede6df5824ccf7b8909f6a73271bd085459e95dda8e5644992a2bee5bdddf578b0688d47a31ce5ffb54282cb319130b6a1aead266316ff26ec39051c3ea3afec003c8f06b9c55593b404571ca9bb166f97af7e8b28aefef43d0d934b301b1d903753378d792030a0711cd4753cafdd0b6ce1b52944668a37af91d460a16243fb8081b26c4bc42d496169deea05dca6d0aa4f5b89eb8696cbeaa2c8974f5a797a1d6c55ad1822692c219f37c498a002d547cb4b018416bc9ab4aba07b8e91883fd9d63f91375312bfa822c25c04934c8a5ce5081e83e87c2ef39914df50b516f11a1842505b1271f0079329924599c143aa48ad54837efa7fe726f5737d98"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0fbf07ece426b2e8b5f876c27646c80d65de48e919c09bfab25c3cde47d9a702"),
		nonce:                 decodeHexString(c, "b2dc327cedd063bc2b1c2e6479e02940"),
		personalization:       decodeHexString(c, "9aa53110da68ef97cc983bcee957f6316a0cbe7c41c0c96ca2065cf8d66e4618"),
		entropyInputReseed:    decodeHexString(c, "2cc8adff06de8fe82ea3d35f05232f5ef0338f915a0502f4d34e99030e828c2e"),
		additionalInputReseed: decodeHexString(c, "78c3539e3635e187d7e9f3641d33fcfb58865f2d4658b859e27f6cdc1c7fc085"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7b44921d9560a9b4dd5c74c2b50a233e1800bf713f0d20744e236b93a3cf1773"),
			decodeHexString(c, "218b6e0da75fba14ea4a9ffbb73ee1818808ea2d5657ca56ceb298d2ee27bf11"),
		},
		expected: decodeHexString(c, "13033e50d686e0fbe162dc08abb92f7e66b1a9cb024b5de998b5b75b9fead7ec0c3e756a6c627d541f355a800e10a845fa7cc4b9d5f87a3ad75504f363c743629af4a5028fdb837fc7d06e17522c856c162a47b1bce2c11395c02078a4b10bc985ddfd55106ac4935a1deb9f961fb05fc1a049e1035c4b751bdec08150e4ff9cfd40285e57144789c9c05b2019742d39eb5b5220ead70c2c8376f53131fcfa98065223d144644f0ee16bae82642903daf63f14757c360283f4bbb1d25b2542818e470b27deefec67199e03123c282279d85be0c765d0841342d93489fe7ebbcee9ae1033857b2d87ea59ea7baf953765ba54d4b6dc3430709331aa067e3eba9b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e6f94ef8b1024e852971a5bb6eab5c86b1c2a1d8320e9d121dcbfd90988c6d1f"),
		nonce:                 decodeHexString(c, "7be7c57eddbcf2cae79db86b8e87a052"),
		personalization:       decodeHexString(c, "12640878f67f34704394383867b9c4229455c72ae1951090d1d5d98d410863a8"),
		entropyInputReseed:    decodeHexString(c, "66384504ce7fec2d222a0c5681e2fd889d3dedd9f27b5b83ba2d0a03c7bd1202"),
		additionalInputReseed: decodeHexString(c, "9ddab6933d972867056b0f6703d4ece71e973c6a4099b60114464e735921970e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a5de2fffeb439014118f1176fdf313272d661306ef252b62e62ea6168efeb8d9"),
			decodeHexString(c, "544280686c9f764ef0aace9afd51e1bda5a6e5d7ce4363d454291a51c7785f2e"),
		},
		expected: decodeHexString(c, "1bb49b4b54aaa70c1c093ab313354abc280148bf66ccd2946f76a8aef582630af565fba6622b23d6a176439ead2c9540d075324cd88e35bbe9ebae84e821746f5d070dc9045d2b21ee894b9b8d9ad0c02391df13d89a7175ea1c62bce80c0f90ab69f7f6c8f5640fc2004e2afebcf61f1aa6c5b9b2be2bd0d847bd9c2dbd4c7fe92558d820b3b4d1c09338dd78547937e2f11d81d27624c5e687a83e9d972a8867d0b822273be99dcc11c47d8d7966ebd241b433f4951fb7316cab9a8f55ea266c5896d768fd7aba0d8282df80ab4cd59acb3c687b3e40f3f8339617c8fe383ec2e9c9eaa221e1bc3d1be6aba7c999f3bce66751d13e2e8ad3a76c77c63e522e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "cc23c83d8adc10a5a64075bd09416a93892ccbf970fec570b983904240c31a64"),
		nonce:                 decodeHexString(c, "7c77f8a756d434d0bb35dba587a9c0c5"),
		personalization:       decodeHexString(c, "7a6f59c10758eefe41b0e4523659a46407e32b12e00ad9268ec0edce118a7e6a"),
		entropyInputReseed:    decodeHexString(c, "59d1c016f02d01ae6cacc75df5e26f60731faf4552958e4f8d35b0b68c51251f"),
		additionalInputReseed: decodeHexString(c, "cfec594ffcf793d986aa4302e5eace0f0e6ff86b909fb77fe3ff13d26bb24fcb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6b177bc81e4a1f8be073cc57166dc084d128c5611d11e8cc88ae3dfe22a437ff"),
			decodeHexString(c, "7c73f0835a7e93d760d267a245717f75ed6ed9492c7e290ba8ed738566efb5f6"),
		},
		expected: decodeHexString(c, "45074d690363661e0c31b6ececb0d88b22d08125c9c8dc76901b778f4024312bafb1b966f3eace34cbab6320b1dc0ead3ba37ffb9880532ca9d12445825db719803f8319c046af77a2724e86ceff9665c295f0f9ecf512b2bae688d8a989ece674cda3caf554e7ba51d1d8106af73ad11e1c3464e76a5d0e700dcbd06b68975bdfc4f1faf156afb959cde76e0b63383dc274a2acfd1d0ae729c66144d3c9188cc4a5a8ed0b70156fea75cd636d8a43fd030f58a620707ef9a428ebf8d59f9dd221c8bccc5a0ef65d918403589e66d72ba78650486d970ca07344f42aa455b26ddbdf76eefb092eb698e94fde1f25a8361e902fb1c5526b51798cd8328f67d251"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e82faedf6e8e245945ecc51965a4a8dad340d65d79ac0e138b0c5db55597fc27"),
		nonce:                 decodeHexString(c, "dabe25386b7f4bbdaf05019b73199fdf"),
		personalization:       decodeHexString(c, "7aa4fb5b44a1e6342f389350f062931a5b23687e3c2a97218877103fed43da95"),
		entropyInputReseed:    decodeHexString(c, "c0c2490fa364365002cdc854a88a5e57b9ecbda1a5519e0aa50f788a00bdeb2e"),
		additionalInputReseed: decodeHexString(c, "44df1f7641aa6f99a44016446b1ac351d6d26cad43a5e41332f08f6f50cf74f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f4874ebdf79d3e8db93b14727c2d5a6f6887efd6297c5951268a3eb5be26cd66"),
			decodeHexString(c, "6ca8921fbf960e45b6afcbbe0b5b6b87ea845b7c2c11f396f576dc3af90fee89"),
		},
		expected: decodeHexString(c, "646aa646de1bf4ca0d000d5d188effa1a5d362a3763fe0c2b3848e4b67ae76bb4e9d5cb78ce84bf8be49d9e89fe02ae1e2f22d4d59e7b815fb168821c5e17fba1c89ce00d96322fb1ffd59cc16afbc8aaf9f0800b06d466b88b765bc22a526b98c9bfe7bd91f9d455b370749e9bcdc129637c8a01ca0c824b7e94db89e643ebe82f0ab4bacfc850ea42da8d0b42b9ba795968cf20f1939d28aebe4024ce8acce877bf5b71f6ea8c1eac5a101b31185b0dd899863f308b69ac5a0d2161790d4a06496d5c0fbc93f2f066f2abc86f1f8c381f3d2ab05b71c9209462d07373bdb161c233b939c24a4a035239ab0f204449b80cdcb9d0e148706701df602238a1249"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "927a220c03c098ac455f9f776dca44266eab2e50545c100eb962fdf67d5d7e16"),
		nonce:                 decodeHexString(c, "a6eff02b6aad993fafa4f6648372effb"),
		personalization:       decodeHexString(c, "410ec43783f62fb52f6dba80cf2f073ee17ad28b6986ec10c14ef355fe357d8e"),
		entropyInputReseed:    decodeHexString(c, "04a1527182330918e32c4eeaa6579517447041b63476a7133a2aaeed9ad96683"),
		additionalInputReseed: decodeHexString(c, "53ed3c47fddb3186bf1e785876be09dcb5d7a29714c1e92351e0a02f16691f6e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a9bfb51295065eb18b47415450ff19085525ec2486523de3e0dae82288c2718b"),
			decodeHexString(c, "ae938f43075f96beb9c3f583fa434e2426c4058891e584482affdb7a462de344"),
		},
		expected: decodeHexString(c, "e50f0aeeeae2dc48de77bd84b68268e634037140e0b4b498f53ef56594e7f53e1ebdf470a2bdc004c3c57095bf8135a74acbf3c20c220ce1f077083847de4b1e326ad21ecbfc6ffca67e051891016f754629bdf10b73a081b8f46790fe9eaed0296bccd1d358bf38472cf0baefcf5d5d52297a6054b4509289d8698d87af35cd0bac444f7124f76b1351a83165dd65b59bc2e0f93fc2d738fbc1c4c889f894c380813a80fbe7d43f2dcaec255e9091d0173604af09a3cef6fcc0061fac771374318dc99f93f5a46edd3dd333fb6e3b8e505512f3f6cdabc303c4673d1a59fff979d842ca3ee6ffffb3f0079097996946e874d6ae0dea4f23b2f17d39f1fc343e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed71_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed71_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a77ecb4c58587d88f8f00a5f7ea95780260ef0b8e4d888726bef70de0e16b312"),
		nonce:                 decodeHexString(c, "345a0811a9952dc5a7ac6cb929276159"),
		personalization:       decodeHexString(c, "23acae13f89bf03af7243b42ba19bdd550f69832027c1f4fc254049349e026f9"),
		entropyInputReseed:    decodeHexString(c, "2b84125f319eeee08c9db2c929bde8cc99bbcf498bdd1526e98b06a2831fcd38"),
		additionalInputReseed: decodeHexString(c, "ac465b3260240368353f2123d221f565183a82976f57f523be2b02ecd394b634"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5c9174f58ad1d33047efeb85412b6a5f2b15aa9702fc22ffe06f6a6d3b461287"),
			decodeHexString(c, "bdc48b510e5e2cc922d03b4e5e1ed29b414ca0f9280f4584fd68785b4dcda711"),
		},
		expected: decodeHexString(c, "5b020aa9d2f9a379b50a92b5e11f0074cf60b2ebce9eac5a8af7f88cba3c44598d961266206de7365cde732c1e6c666a02596c336b70e7c7925dbcfbe2ef33ede69fbcb19187d5a19c64bb53216d6a5303d88573022c76fadb3fe212560386aa7a475231c3ab39b3ecb66e55a2690cc2b86eac39b4b663d7790dcb662bfcc4f56e8fa6b18dbfefc75353c93eeeaa400022e6ad8827db4d8dc2c458860a8d618034dfdf3a01a388da8606bdc25a252ba10c51bcd9a7e7882616a8b8c130ea09e661f2084595c22dddeba42fe64c276f5746f98ba7440e326055e1cdaaae8bdd3842891b11ea7e812e371c185d11f56b507a2f3b7eb3a242f1560776acc5978861"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed73_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b59f098843697902325815a8e8336cb6fbc9b2a34dadd9451b2512c83c21834e"),
		nonce:                 decodeHexString(c, "386109033862569e66f8d42df29171fd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e4837bec8a56c8e0357ed89f4d163dd0fd816cbb825b74e94170c4696db39763"),
		additionalInputReseed: decodeHexString(c, "3f304181d2b255f01a6b15e534541292aafd3cedfa2180a40b4404c665a3f8d7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5c77c4d34e1a3adde4998d53ce2ac7d4dd10eae30e67f3e7754384d6ea6c15f5"),
			decodeHexString(c, "6c70e060c309373c32e0fe7b57b04c30f1f906fac1bae69bc814b6d9b8ef8c95"),
		},
		expected: decodeHexString(c, "d04baaed72234c5c4de9c9ca49090929fef8f5cebd90fd1374714f0711fb24f8417ffdacd301d5bcf35561a120d4118f3b2d254f17e7c996e62f12c2a115953c4c16d476ed1ed65fdfbc7c3476e99ec7890af362330193ebb3dbc2183d784e0b72f77dc45b87842b676e800e8a5ef3f9c1216ea45e7408c048c180ac1ee1bcedd67f0bcb1e90047d95c1c766cf0df7765ac64e9089db45a0fcd80fa884bf517c64dafd286aba897c400e961b74f6f521cefb5810ade9add80916c6508b9e02997e7bfe1024e94f9d2bc5c3d55aa38f8e9614c000f9c0925ca2226d1ca06b1681a5a3672a550c7d56247a0164ef7680364199d00248e5249fdd934ee7d8f288c0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f5aec332fa02612db68d7870e33e025b80c902d1401ef2208ed09086acdbd1d8"),
		nonce:                 decodeHexString(c, "4d7841c74afe0634cf533b198cdec0d8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "31089c6ab9bcb0615fb014993ed0e1904b81edd43743c10051fe45cd1163af09"),
		additionalInputReseed: decodeHexString(c, "1b96d97c3c79b419de0fa9ddcb43272ff0dee6c523cab9bdd18cceb900ccc904"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bda9529350431798d9adcec796061a4053ca5b9a0905c42fa68511b98fd27151"),
			decodeHexString(c, "471a0bcb4ddfe961ddc0d5cd2c9c1f981d7f3255559414f1a4af28116fca476d"),
		},
		expected: decodeHexString(c, "9a9ce21187ff4d5757966b26493849de379dbe3e0fd4401728b43a3a2270e8a184eff6a2a0b3fa5d7d4fd9290cd4c6408e65435a0f15c182cf1e75da08b8beee0fad02bf4aebb64ecb514654826a34a621650ef35eb51f43281336ad401a8f8e546e649be3b64f247718bc5dc6e85758b7f3ae21371c40211078bc8255ca75bc011c3f0a6ddc0e37e9a34f26ffe3cd3d0aa224d7b35e75a8212bdea2632d5c5b043637dfc36a2beb50d47e2e2562473efe9e3090000cfe0369462d2607de3cccef28534dba01bb2af0804099f91b94b8b7e57081a2ca0b8e4023f4c19e46b4205bb4ec419503cd763af2807247f84b03a673549042c1eee8d3506b2d0bfd247a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fb0cca1f8851dc279ba95ef437e8cd04eeefd59d565e7800b5eec8ac4a42a607"),
		nonce:                 decodeHexString(c, "e5b2ca096e545dbf7d6e452b9e526efc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ecfe6ba8df0c54da226c4db48346e2fe28b34936a44fe8fb1440cfa2c28b26f4"),
		additionalInputReseed: decodeHexString(c, "d78fc0bbf8905af45b74c3b8a59ad18d2e4067ce201ec559291a80e21f0793d7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9b554261be36ffd99e47730c99edaec8428aa63b7a5aa82ccd75cd0d1440bcd6"),
			decodeHexString(c, "e303c58d69690878c8121ead4cd49115ff6e0df56fbec460087b1b9c160988c2"),
		},
		expected: decodeHexString(c, "9e9c362ff1eaee4440dfb866b7c7373c63e5dd207ad792cdcedacb7e3e036e66420daf33e280fc686cf7fc7f3481bb1a9f77b94d5dd4959e95fc1bd1213e9111713182eb21d464599a8400451deb56ea900af59bbe207dd56d61ca89326c20468bf53a850758db79f94ed22d5b749eab282687512832ed4c734786ebf2d4b506aa6341974481abc614b4b91ee0f7d3d5556d6da60cdc85c7a510ae79f5a77d849b194c5c6de72168d8d02fccbe5341cdb8736588160ffa84b1b5fac94084b5eef6a7961af2192000122dc98e66fbe2ec864218c86462f381ab4c92b3dc048b3732d4840fe6c361e5b4808f99a617552440b4b8142582e06cdba0eb84b7e0ff74"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d2c32beb78fc660123858ebf0834b3297256985c56bd4d7a72db43078ce7d72b"),
		nonce:                 decodeHexString(c, "95b418548d796ee60f6379f2c61630e4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "64b1a7796efff4eb7910a3f74b9919f8773ac29289a8f28ca3e2ebfceb0e488c"),
		additionalInputReseed: decodeHexString(c, "87434b5c67316909fccb5bac2334ee5719805b96c5817ed583a9e11fd0457425"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9c0a9e09ba80d375d3a8c1b276744f443f33e33228e83ea9ca4a508f7902c16e"),
			decodeHexString(c, "6e41564baccf779b09823717fc2c6ae8c3b3f01b260f9ea23f73d787e26a0699"),
		},
		expected: decodeHexString(c, "77a5b1ff59cdac6780825a53461c5c004214e3ec62766b4eb431e6ee6ed52b5f63fbb0c9df70185370b62f6c40a8a81caad543b1e06eae3c778286f5d430f6613774bb095be0cc9b4cd45a8b7154d7c2b6fd85f5bcef27d76dabb1e5b51ef152222ca5dbd7c155b2f15bd1febf793e95e4ae5768175aa1d98cfd7a54504cfb39469d0539203b93113868f72c6914732cac078e2bbdce5a4cc3c7dab70ce84c4c484fdbece3944912308b04e9513a7c6831dc5a3a1233b8ef61af8a3b4d556fee42b7683360aa5fa72ba69e7936ffe1eab223d80d52cea9e9c802bbc8405858e5ca50fae635a51a1348eda553986065df90ab31358f11db424b9b478f3167d11d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5c25ef9963b57d08b6ed88eec92b3d74938fca72c3448601eeb100b57b143b06"),
		nonce:                 decodeHexString(c, "6572a902f2558f8b91f809708222766c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "655c49b058fc5d481b6c61dcd23ea37d6dcda687eddc188d563a5fbab260223e"),
		additionalInputReseed: decodeHexString(c, "56bda8fb338e02a86ceaf75dd3a7665372944b06b57b12ad6739b759c9e49ae4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "887295e5955b196340ff27bfb5dbbf12bd5e51f9923c6c4b89e56b07be3f509c"),
			decodeHexString(c, "286ec25d25c2e7eecbe8fffda1709c7eed4d7800848136371edb89e4fcd45b96"),
		},
		expected: decodeHexString(c, "81b0c43c19ae6ff5b996b93a3beb2fd298e410ba978c776b5c8273068358895485645fc177260252edbab804ec7b1ca9e9c5a65447f5da6d8e402b0cc21675fa7d8375db0ab93216c9ce3076609488c4661f65849f2b960906c5fb61db913b304c8c16f6e32dece0467a78278773305b23ff2db0b2d8ebf1693b9de116edd7e8a2e5af7ef889b8164f8ba3f01cc1aa92fd15e08c975c75af38ab8ab2b8df2e42cea76b3129c7ab7414ff84c2e51c888635242154c01dae63b591fff904090272282780cc0a6a9f6a1f424758d440fae1f36bc4dce749d9e3e775f75101dedf6fa1a54be479d3808d5bc5209b787de03f8c577d506c1a63ba122dbca7d5a64759"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8b435f303964fb50e63b077309bb5219753756cc4d2c28d65ce8bdde4c0335e3"),
		nonce:                 decodeHexString(c, "168e6a2ce6495691c731005a3281aa57"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cbb2bcaf3152233abc33108ded9527d5d3f3ce5186a6f59722c9baec8bfc28de"),
		additionalInputReseed: decodeHexString(c, "b401fdb63bc3903fec513f381bb90f01b42e67e8fb6d8a22389beb5b8021757a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d5088c5e7565ff013e4735141513af6aae784fdbe7ad197c2000d0297c61533"),
			decodeHexString(c, "2b2a1ffecbcb33efd3c21e3edca327f40aada7e33c8a104214b008f6614db48a"),
		},
		expected: decodeHexString(c, "83cfdf969418f1459b450578e2704ae47b25db45132b329aa479aa26c9c182bc9bfa703293f4e0b2e9cb901e36ae5102b923607e2cff551caba263b16821d6c60db48129eb0ba6bce3cdc515fa5f47dc6307ab14531eb3bc347a9b279641d66ad8f6866d89e93500d405abb79bc6bb47205371679c4d01075207139bbf1579c2a155a40d55b3bb7e592cb7363dca6108007c77263f7e143ce5d73026de4ab1df7c3d93053ee13ddbc91fc3a1b225f52171c53b6f6aa58066e5b961109d34b2a647da18ed0bbf6f9d35198b8c472c855089d3fd5661ba35a59beb05173d584d36b32407a60c2e921ba13d03bea0675f4369ef2494f7478ae73f27a4201bada22a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a310c144f11c8b96fc472b0a7394d2da4199e01edf296e76fce13bce2d64bde4"),
		nonce:                 decodeHexString(c, "df5ebf161d0df9329b8a63f3e04f9011"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6eeb0242208399def484968bc440e5720c0513baa2cdedaf2e015d74978e2a87"),
		additionalInputReseed: decodeHexString(c, "79b355dcee8d127118ab89c63c0d08207307e1f3c497c79521e2235cc0085ba8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0ba728e7790641cab0d0179e0f65d4ba7111e884477cd9dd753ac5ce0e044b32"),
			decodeHexString(c, "ba59d36440f5207da47756336c85a4079da6e15b147accf8898aa1bd6151ffb6"),
		},
		expected: decodeHexString(c, "597065f96721b6a3529d8679116123e2c8ebd8590d8855cb773e56d35c1d56a5995672577ecda4c8270fff056daf616d0a467631fb894e6e5f23e7eca3e8f414cc96a469631f3de2054ded1bffce678d8ff8745832c7f3f2cf122dddcbeaa61f02ad35020165f9745398aa550207bc8ec535f0c00b24bc71ddadf57cc4ef703c2d5bc4d069e6f1c106a0635fe69d21f8081297965bbdb7ec4086d53d5d93d027afcc973d34b198a2fee76d7ac93195d1aafdd4b4f9901154fa2af89a7e11859b26a5fe545371038bf11dbfc895b0997e1580a89a9297dabe1a6e54a61609ba05f5c500ee822315687dbc997d77f873176275c12f9406ba4c9d62a7fafc570f60"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "549173c6181f89c1e6f4e669794bb291fd9a0ed9ade7fdfe424a4b1cafb99366"),
		nonce:                 decodeHexString(c, "2ef3071b34720cbc0f8e8192f417b547"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "284487bbe571a950d36ef35c1d488a2846e62cba31e0d0394c8574d03b969679"),
		additionalInputReseed: decodeHexString(c, "02a6afe3d6188eb6796142ed50ef350088bab751726009ab708e48ba65f03e34"),
		additionalInput: [2][]byte{
			decodeHexString(c, "733a370fcff98a8aeab94c4e21c2c331f0345dfbbbeeddf5df733f9e02e2d71e"),
			decodeHexString(c, "c4421b8ba19ba3a2f57450a5ce55a4ca164cd4033463ce5f128c9ae0ac60851f"),
		},
		expected: decodeHexString(c, "e4b1e7450793a953fb399c20f88eab2740541069473924fbe29a96caf0de94910fc1c7703b64a14bd34ae056cd2c7afea11bcddc42dcbc83da47a25087efd67700bf36fbf278a9b432017cb22aaeaa08a27716072d8ba7de3be8eb4b5e38ede5846aad3d9a24c6bbd6a8bbaf8a5bf2b4131f4bd2a61dcb327f133e628fc973ad99cca3128d31601d754797fe09ca51603f043db46f0f5ba6ec0e6937e905cff48b76983b9c23b35f22c4d20bcb70053edee4251b5272ab93038a6736148704d628f725e9adcc063e5591abe4bd01e1ef40f432094a32fa0abf9519be8569d052846c4e8de522354d8dcd71f5a09c015ad40b74f285750e78fd3a949b48eed8fa"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fd55a8817065961dbc43e2fb7f8f997c129219e3d2b2e8526dbd9aabda1f0288"),
		nonce:                 decodeHexString(c, "ae8ece5a98cb0a5aa4f795a8fe60f549"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a4e85f2ba5116a935c98013f0c011488618b6dad74fa44b92160c66ce9dd4356"),
		additionalInputReseed: decodeHexString(c, "749f7e77fb54b943eef8ee6b7639fd31d668f19242052f7e9bd5f2a15e47a184"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bd3b641ba132ced276dd0eec85f5a5a56189bd63a4aa5530763993c3a0b24289"),
			decodeHexString(c, "91e16a242bc168495ab037b3614c397240fb2936e4db40e7658ca286f913c40a"),
		},
		expected: decodeHexString(c, "d3a347d51f1717da71b93adce2c27a8973851731462790084497a60b2cd376091eb909cced0eb9160c5732d3232e950e365d42bbdbb8a77c4003e33c4254de2456fe0405e47298ee8143fd0b5063e3a9daebf68dfed1b44b97faeb40f0d2dee6d556128e397a77f4fe29f7475f9ea506aafa16c28b6e8f71956b67ee8a1fdc5f0d0060f7966bd677db29118954ccefac8f7780b1d7c7507ec3df63a063d03ea94af156e7295e6cdc98da7dc391654ef5c9f0e04dc74d058117e46876d384cf77d171d4dcfd4dc8264b65fcaaa020ce0e798d4517754358e534f0f34cab6adde69bf84bed7791ca95d3079b68e47136c1a9521fdef78a677c8716d079245b582b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "276bf285550559c4536d7233de46c90da2713faaefe8c0bd8898c39365eeee64"),
		nonce:                 decodeHexString(c, "88ab42d72ff7b0e827611bfaedd46063"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "244b13e37e94c237dd61376b5090ca7c1dbc1d01396c578778d8693733a9d123"),
		additionalInputReseed: decodeHexString(c, "53519a4da98012c97ad92ce8a75dc0fa0e82a4aeff11fbc680842808236cef9e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e2bfa081e9e18ea08c70dc03c40b0f4830f0c2c3ca8ae4254cd08b8aa455739a"),
			decodeHexString(c, "cf7c7e409d2dcac196ad7e2cd785c7dba234b8e92523caf6976eabc7d1e5d10f"),
		},
		expected: decodeHexString(c, "a363ea085bd09be8358ee8c3d542b6bce284ffb21106fd7d95e019d557471b8f95aeeca189b0acbf9f55c950e01c00f40c41aa7cffc3aafabd3984b63d119f7c9e8090b1070c8408d0d8cf81ee9e4f1c110c34fa5de6fc62c61938f757b470e87147840fcec434b790ea8a4d02cb4e9076f7cf493144b95b310b587537e28110fe44e5b9f52573ed1bf5154b191e866aaf30b1f5e6f1edc64f68451eab4c0dd7acb2dff57cb9557ac9a74745ec0cad6a95c45ee6629c5517168e47b5a5711254cad38e2eca842b302ae30d2918d34fff71650fe37671b13e8a009a6e5a5ab31306f003fc08f0ca7dba39ee3d5d29d2c23116684815f535464af2142acaf39db5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "9133df0a676e806c04b63b57a4e660f9b92f438322b72c683836e6bfe81583c6"),
		nonce:                 decodeHexString(c, "a8950245ee3dd789e02f4a78db71ddaa"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5a667f369b625f7e178d01a35bb9891f57c1a7b26c7974dfdeb6edf95e5b820f"),
		additionalInputReseed: decodeHexString(c, "0ab32c9bf88f312509494a1fd9138c4efd791209e19c6d4ea5171c8e52b675af"),
		additionalInput: [2][]byte{
			decodeHexString(c, "33758b477d46b91442b8e86b26684c981bd2cf2d4c3b7aa32e1e5046f172dcfc"),
			decodeHexString(c, "4631c3d05787fb8ff998d66e3719c00ea6cb2ddb81e83b1c86241386c3ba5d3d"),
		},
		expected: decodeHexString(c, "071b3482a7e661039183cebd31a693a0cea480447dddde3501a931982e3f572b59ceb65bb9579d5a3fc74df0976927b22d8c71d62217d78dc5c79f2dafc8db9c65a4ab24f1f10ce8fa991ea7054ca90709a58d42547cba5007716dad596dc4ce439813be5ebfa0353328db8dcb5c9b8823107a533038f4b44236faaa4d8f4ad438fcef98bbe1209bacc2f051c514ce384ae86e7e041cabb779a98e8255e7d7da835b13e302ce832d835fc47bc5893aa48e667c0594ee4ad5414aa2301f71d0bb0f7c28cd6157872942450dfc2d59b25eb33e3cc3b9ecd18cea4f022d96eb2a85083cbd13e238b22f62b97aec4bcb18f87408a191b0425176c5840cdbd449a199"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0cd62295d435e78c7288a14d64bbb1eb440219deae1488304856cb566d3cacbb"),
		nonce:                 decodeHexString(c, "150a4cfcf033d9a5ebab5ab6da68def9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6edc77f147a985ac6e20de1f80ee4e5bb62d2e31c2ffff092cdb231046e24f91"),
		additionalInputReseed: decodeHexString(c, "e95a76d6da5d41615a78caf48844e8b1873fe76752edbfe506788f355f3f85b5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d70801f9f63e8247a8087c7b90cf9fb524eb45b0b641bfcb05cd8d90eefc0d6"),
			decodeHexString(c, "3679663fb40fb47f6050414b4f99bcd3dd9e6d6604d92be698a638a8bd255db3"),
		},
		expected: decodeHexString(c, "1d6863bc5c5657a266d73891c243dd8a4d25d96d1c4575b86f00dd67bf67bd704fd93e8de0ababfdbb8827ef3f6a26a9ab2e6781ec1c96f1fad3687868d2cfe0747990a48941b309c80eab24b433890fd839237b652c3c8c8ff21ef3785518b80f61a78f89f5a19f87d865ecbda2a40b3e9911a2055f89fea3a298076e6cc03beea87a5b8f49c04a26c4b2b045291cad68f00b2ef2d8bf7fae317513aca21b9e666ca6c22b128295da4d0356fb61636cf4302f175370a849f17fc7c7c662dd977941596c775e5c90929c050dd2cf25f65dd44f8318a6c39a31f4796fd45d6cceb2face9782bb5f16a6f9fbacefef5709e29a2a3fccc4bcc2a030e105e57b639a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "6a46584bc186cdde3e7ef8b1bd600190cab1658c94b8d2fce0647dd5c84c61d8"),
		nonce:                 decodeHexString(c, "07083c6ec8acccf239ad3ed013b5df55"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5fdc5a8cb85d96127d2d14a8a5ff477eb59f37f394168ae0a1ead5ae719809f3"),
		additionalInputReseed: decodeHexString(c, "2781e209019677999cf47303f0d22c645ff158fb2ea013962f3fdf3ba7a33f97"),
		additionalInput: [2][]byte{
			decodeHexString(c, "026dc3f83c476111f0968ae199fcb257bc3ea870d84db011b42471a574769dde"),
			decodeHexString(c, "845a2d7e67d18eb432ea33e5f54eb6df17cbeeeda91be8f328b52db32a27ab6e"),
		},
		expected: decodeHexString(c, "9ec3211dfe074fb70dd0c50796c1202f2eb32c09e80c6d642857fdf5ed3efd212d96294ed0123dc92e63f58e3996d104c66bebc1700ee8f67bf5d714016edc955afe8af3822c8fd72354919402bbe3867f3fc2401f8722a23b4a46685e529ad732c301f77997ae9a43dafbaed1b353f892eccb96f51ced0ef1d7180530a6d8873f2e2cc3d2afd0be05ba2eb2b32507eb1ecdb82c3939da10ff102973f6ed6337cc525f1eced3e704280516ceb12dc691eeddaa6bb682ca98758fdd0c4894ea35c58ec473d772314dc9d14c8aec1df639014b8308bb03eb9d54d529bdb10fa61d8d452e3e8430253309bf26b798fb6efbaa2f2d8f565b664a1bbf90c05a6584a3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "17f6558422096c315c90f677e3b981d4588b274016d68bc6cf983526909b0a35"),
		nonce:                 decodeHexString(c, "6bec0e7c8236a0ba5a02aeff7d14f627"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d65dd18492d2f4084252eba533e83353952d31a9cc73a2b1095b88a3ec16e350"),
		additionalInputReseed: decodeHexString(c, "e7f10fef660317512f2a7076a56790a20dfaa844ace419d1475a3dec89e77e4d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "199348ba17963717e0c5e7a1d299861809bacbc1229e66d0df82a40beb51ba6f"),
			decodeHexString(c, "f2aec87130b03d7690881ef1516f3bc24da2a041e85257d076b648c29e1665ff"),
		},
		expected: decodeHexString(c, "a0f0cdfb26ca8c7a2a6efde17ebac6745be136e55e9641326acf0c87a4dd6596baaf580bc8b5114cce64e7ea418cdefc317ed74e3e762c32e260b8159c9d6cd2ab21ccc42d10817f523472acf13df6db9ceb490890735e90659f3fd181cd42e8ae34465cb38b8c13a2bbdca149d0eee38aa73c65e1dae727e60a0d1684cf7a06dd29c33db46a6de0f341e9c1b0768e3ea183c89db022735c5a03e2910d3f63d5c78b83a70006c0bea69076e8fd3d9576aaaad09a97ca973c94437e64ee39ae81c7a666bcfb41154b2c1864e627f041778514284bc31a04acc8a29ed1496940a6f74aa77850433462e3b61cf12041d57064bf3fe2ada1de03bb1d1d057e036789"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed73_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed73_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0152fedbcc60606396131cfac31f5433c3f222ac60852f314c16d5fb2ccd8d37"),
		nonce:                 decodeHexString(c, "728f8db21d19ad150497456e542f81cd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f464adc53792f938bf77dcd5ad1988a2252725b8f5a199369edec5c148c61bef"),
		additionalInputReseed: decodeHexString(c, "56e55db916f7962b265945f7f88492f105917a68c5e96f40098c5cf9d71ac692"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5b7e8a1dc48dbeab9bf2cc939dfe07bd6da4fdb853f6ae706c79c50978ba20f"),
			decodeHexString(c, "30ad3575a75061e4d0ad73c2a8e62e5127321b6ae3a38a94c8659bed2cacea02"),
		},
		expected: decodeHexString(c, "6dd8125e0e337c315b0cb6566562fd6d6f968fbba01ba29c419fe4a7e316662caeae9cfa010f64deed9257f38969ec45b99b837d5c4f1073b9f3353164226c874c7c7ce09c360f65515bd1389055d097c3f78eb0246a5e151879dcd596dc6795ec00a579dbb03002b53581e9a02c2c97ccbffd0654a672527903a4b6ff11f638dedeb680828279bdfa488316764f5ce47af69af36f2325cec633fb513c64bc79e4a70e22fd15c949d5cb4d9d7745e0ccef3561f26310bd4ae591d26c6aa23628e0b686fce168411dcdcc6be82618be9c8a02697de95a00b6101a936e9bb2db50c423c50b6dbdbfa64adfd5326f17d298db5f3c39548e90ceb8c5a9aac8e699ab"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed75_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a86f848f2a5da28b0a68737a2f9fc7a5f9092a13b4236feb913ce2240b28a429"),
		nonce:                 decodeHexString(c, "2cc7750a39cafd1e12605238a73f7d6a"),
		personalization:       decodeHexString(c, "289186885a709ce92912776b9bf7ed4d3f5e144a59c03cde4c59e62cb50dab41"),
		entropyInputReseed:    decodeHexString(c, "aba3acfbbad9f8ff43926ec6e3c247ad16ef94cd7e555849cf9cd2bca47f83c6"),
		additionalInputReseed: decodeHexString(c, "2a68a542a457b3c016d5997bb264c23257d969a9bb188188e28f3410bdab32e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "86ee2416ceb20f832075984f285a76d9119eeaea37197f0930c69f498ace6e2c"),
			decodeHexString(c, "92189db700cd712bb997d67e2975754b8dc4a59651c34fb0c9438d0305cafd41"),
		},
		expected: decodeHexString(c, "8cdbb0790234fcef29c80dbfd3cb31a677f912efb31bda7c6b202413f2baf39d751594d96b0e12b88469615a21ad23a8c0be5e40c64f1279b1ffe75d0a70f172f7742baf1965b039c95a67387ac9b02754d4c41d98b3b8d9fb2514c26c4970e358fe11b53c91fcba513139206bfd53d2aa8ad555c8a365355ed22c6944b7687ac78cdeb25d2e4b553b3a59272943ca46d69fcf3a60568b05499b16f95c9824539e66caab991c54f99a0f08c71b9d3a6bea6d646e81fbd121f6b272d4f2766748ac97990741816a1bc60cdd0c797d6c0df8b02e8e84fa031be14c1f86e8be14eeea09d3ac3c9b6c626f7b57ebccc8f3bb197b6512a8e58c8ef20b4a13a928934c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "23eb204c804606b3adf47e4a3400ad8b3ab79b5cb9b30fab5c9418fc76febcd7"),
		nonce:                 decodeHexString(c, "f0f839ad4e69cb31e70df3d68b7b2ff1"),
		personalization:       decodeHexString(c, "86644db937d9cebc3e9f2b4e1d8ce1772cd23e606dad4f5b4c61f106dd23f6c7"),
		entropyInputReseed:    decodeHexString(c, "b18b2f81ebf5f2171b5c2b09725d32f1f1eca376179e24ed99a3b517504a393f"),
		additionalInputReseed: decodeHexString(c, "4029cad350b4879b9b9514429040b42aa3f5c085210202d5f2eef74d58bf37b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "27329a916efe52c2aa3a9a2b58c18223638a700c386ecf8dba6577cdf6db7159"),
			decodeHexString(c, "f337283f299cf3023a262fa118c9d14fb9cc98e56e7d1a2153d2f103d2bec761"),
		},
		expected: decodeHexString(c, "c9b16a02ac460626d2127dbcd1c3608b03f13290e33379ea75bfadd161dc180afc0616328aaf805e3209c307e443e897401ef0b63995b779b5450385a8d989e9a535713366b372a69b7d322aca7b9b0c95f686636b4198f60ad846559227cad2059acb626240e8370eec108ea5c82851b733b060c56bb2c437e73612a1f35f84cda5ae96f6edc9f8f794c6a40142dcd8d58f36cacd95084b837d23bef2f079870a3bcd74aebf58a20ae738e6252d47c5f7f4816e4d85d6ea356c17c56f7bac5001ac0da335d4af5c5bd50ce66625616fa8525f2c582c0f2d7cf735a47b7614d9facad97704db2519a146faf5498c98c9dad4dbe2c1b4ea3d94a38d6124e4930a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "21752c7dc32b37267638fda100a819010a44e61e6d73191c8d7ac02ddce48926"),
		nonce:                 decodeHexString(c, "ef4a97508f31e388292e2f72424b2933"),
		personalization:       decodeHexString(c, "e247b8de0bf626c92f515940422e7e7c29dc2f0c1cda0d0d1030cf562926ee38"),
		entropyInputReseed:    decodeHexString(c, "7e37e3d183019f368260a05cd866c59e23b8349f90d3bf7d82f8aefc5e83e796"),
		additionalInputReseed: decodeHexString(c, "33a8853ce8211fd2995863a64c5906706060f0430c2ae6e22dca565e1e41d2d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "046e7dac2d14615c113162e4ebb271c7ecadc5b05e9a2c201a75dd7e23256dd9"),
			decodeHexString(c, "39a92e4fe789331dc7e5b1bc1c3bda068a20980a184f45472600d2cf0c2b0a7f"),
		},
		expected: decodeHexString(c, "f97fead8329f754ad45f7adae6f840e54bb352173dfff172fbb6467e3ca84eab22f265f9d8c4ba0b841c3337cbd6a2059c1e565fa3f1396f2e3e83a10e1d3001eb45bd389ffa70d207644feeac1a964185601e7c28cf623a390fa9695e10a88a9d6c1eb508a1710661b02ed0cb069a5194322cf41575b21ef6d6dc7a769fc76847802ac41e872bfa18c0512a8d22e3539132fc1b87d3238485dd2c5e0605a7c0f25cb106a37a86b35376983aaf46d84c7dacbdbadf14e54704aa2310001a0dbd37fb8481f1c4ecde625c43aa5fdff3fe78c80de01baf3b2701fa897c410ac989b3b7287c658ef4915a53b55519248d7b110639c2df61ce77fd751ba9ba378899"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c3b5e4d0d1c6d2ed6557d9b5b3528a2cdb2b0b06607c8f17474b77225fdcbd51"),
		nonce:                 decodeHexString(c, "91d60a0b51515f51e74dbdfb2b4b2b2a"),
		personalization:       decodeHexString(c, "96c848b5296b099fef027ac126f7cd0f9ee054669684d3029f9554f5789b55a1"),
		entropyInputReseed:    decodeHexString(c, "a55c9194a69819d27bf47074110c1305476e79581115994ffb3eb8c3a60b5a5b"),
		additionalInputReseed: decodeHexString(c, "4a340dc5ca90ba1c402350bc8dfce6fbc16483e0cbdfda989560d1d1bbc70986"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8abd9323cf0ab16a779c6c0e566c4a0a0ff60b7d45868635ba8bbdb5c6877764"),
			decodeHexString(c, "278e4991417c74e9b577d4436350614c50340d60f0ff68f05c291a7840c22609"),
		},
		expected: decodeHexString(c, "177a9a461fb841db2aa698b1bbbd1f0e044411cde8687fc4a28ffcb3d82f1ce7a30f23c892a57c60b00e194f4c9b312b0af2fbdc45a0741858e777a6eb67f8c2e49f80a7ed6f9d04264fb17f057224feb97ef37472e4f22d49c08c3256d1d6e8209d3f762101f3911a0628cb91456d1660f350adeed9a91c7aa3a3f8ca4d87962fc77132a3607ba11ed52acbb99bd24bcf04fe2be4df3976d97251c37fa27eff5448a5adfd8ea2c35d5acb4efa24cf735574aa7d6e70fb93bf69099dd7773d56df2b1ba95f5671201c2332c7fedb7fc0e935edd0d4dc3e615d0667193c287df7e6f2abeab5463161faa051bea1fbe170bcef179179dd1cb856f5aaf407a1b588"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "396e5d566eb0795445e577664159f0a1884e0fc74ccf695be885e3e71c154bca"),
		nonce:                 decodeHexString(c, "64ab056bad609bab6e18886912cc6e6c"),
		personalization:       decodeHexString(c, "239624e9284496a6efd5e3866a7c375a59f52319160219358a6dc4c995dfa83b"),
		entropyInputReseed:    decodeHexString(c, "deea680fd13ce87624b09429b8c7cc5a5be903fd0c5586e812bc067cb14ad428"),
		additionalInputReseed: decodeHexString(c, "42719f8adbf1daa5b82daa5954763b790a690fef236f369806714982cd4e6a64"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fbfc21c589420e3f4c3409a7407c8117a413a8a3354659bfe4c382db4fdc2092"),
			decodeHexString(c, "14ea9a9ce264306fb7da581d140e7c37e28fdefe82de58c06d3540578e56a4d6"),
		},
		expected: decodeHexString(c, "b4de93472486b47f9f817e9b29dcbbdfd3e39133625f158067d5d06f9ef47127652c4d2a22e4329cab3d1e7102a0704dcc027a70978789ed562dd7180ed321f12d9ca0584b9b1c9e0c426160ded7c0dd13cdf6cc4e7628492c7d7658595afe7412ddcea2fd688e9418aa7ce15840b64742089fe93de7483c1f6a8d2609638dedf7d443f20c06a0334a6a8e5ae8848fd128ff3f1cfdf9d8a14e3fa9b1c5682c4312e308aa02cc17ace7c0d9a623b68449cf58789db36bf469643e867d95bd5a3da04039e1a1f3e46703358a843a0dd16d9313855f39ff0e5b41bd04d3d40359bc2dfa1919a29bc4c27c9e3b24709b460fbf39abd3ad3ff3d9f6d2e0abf693deeb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a1620db9edbc1415527e13e96e93cd4643f8ad52c73ea875c3dfccd3f55f8779"),
		nonce:                 decodeHexString(c, "c4e4408b6ea4aa187631253bab1f27b1"),
		personalization:       decodeHexString(c, "73695897d8c7bce3fd51331dbe676f5232ff4e5407809ab9ed675c18643f45a2"),
		entropyInputReseed:    decodeHexString(c, "6dcf5f4120e88a61af24ad520f63dcfb90966c663a3404b750e17c69626afa49"),
		additionalInputReseed: decodeHexString(c, "083a9ced313ed6e2c25f7a6d0013544a4174026b6f3d7f723c2da3d2a95e2be1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ec4df36060e1e471da6f716b3811e065d507cd0b5e647eb5b58a5a09226b571"),
			decodeHexString(c, "6712aa9e76841eef4eb9c4d46cab29f5b58f56aeaa00aa2aa13ff23280503236"),
		},
		expected: decodeHexString(c, "cca94b9c5ffd584880cfc848a1dae3c09785157be4fb49821ab3bc494e7efe5a534160c0b3d703d0d8e497cf6bbc6d0283e1c8965ce524b6921f94327a5e305a34f8d32d7830526f8f70c90d263138d6fea614d45e2a5cc886058c342bb830f69a1993dbc06abb32a84a8f74cc0b79f4d6a162cafbb2d96a82dd411df7258444f3540531eafbb58c5c9e2e0b19c89a2e4ab26c4e15401460c39ff573cfc9b40bddeb7e43399029c53dce7ad657e3230975cee307cbe478d100e827b441e33dc1f4c7ee6b51dc710bd7a78c8c7ce82bd4b1d1c72ed4433dc7716e8487fcd3580ffcec2c4ccb91cb57ff2d3a666bd5687c3269933db0cc741ce7670e56daa54421"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7053cd408288a1b0425fdae1471e4b0741ed5de9795beb80c26bffdcd1b100bc"),
		nonce:                 decodeHexString(c, "96f998acca08a8da8027de25a68edae6"),
		personalization:       decodeHexString(c, "ec127f372b18d4a1de61c898fbc7a94f3952bd30c930e6291014b262d4f6de70"),
		entropyInputReseed:    decodeHexString(c, "a6c544eab719ae7629526b49c6961e4ad0b628db8faef59f5aeb9f55c0cb7298"),
		additionalInputReseed: decodeHexString(c, "0790adc5c261a902b924253fc2b8c3d2f04f61bfe24fbd17da384162fadea6da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d9b0eb22a6b64d784210781d872b2453b0e1d463c8081330e04df3ce2687ae23"),
			decodeHexString(c, "a80b3f3f74f3e7014134bb52d34ff24e2a434efe34f138b7279bac99e68d54cf"),
		},
		expected: decodeHexString(c, "00385e6f9496c3dc36a2b6369cc01b6c21fb54cbfe1387a209766c40c55bc7774a6c6e5ea2d3edb5b72b91114451484d9db007751c8c3ba16c76a8a8dd9d0988723cee9633abcd0ce4063ffdc8cde3c8e7eaf9d19ca6a3837c9ed3aa4869667fb4e03e99a5bf5011eca581f4185679994fa9e2ea40840fb64cc344296cdb5bdd81bc771ac58181920b7997945b79c4740b704ec9ab4752887d819ab74fb20d68a00eae1fa9a1919faae6cf33c9409aaba291cf9748487895f4222b7abf13fe785b5b9d4cf25dcf9ebc0132e4b5387fcd7b4f66f0fcefc21dcc3bc7dbfcc8d7717812c25f27bccc942b937db3e52fb986887a6e5a4b8d73638f123ec0acfed534"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "96448c5be576b0c05d9dcc7a4847278650199191aebaa361594afe00a5025ba3"),
		nonce:                 decodeHexString(c, "aa6c52efff5adad96bafd145f510d5bb"),
		personalization:       decodeHexString(c, "ae3ac39960c7504b5a492e88c381a6f949faa3db0e76679ad1b9438ab43ffc42"),
		entropyInputReseed:    decodeHexString(c, "75ae541bb6fea486b687700e20fe2caaf79c2e91306721cade424dfa44536f13"),
		additionalInputReseed: decodeHexString(c, "1e3a659f0252ab74076db19ff5bb537c701c9da3b08d82f182945bcb71c9506c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "439e8f3703f281a5d4493e0286257bb6fe8c674bf07e431a72b5c3610f170e08"),
			decodeHexString(c, "b0458fc43db375b247fb529c71f6ef3090b59b4059036ff0eced36c391b2fab1"),
		},
		expected: decodeHexString(c, "302ecc70f2dba161993fb9650b938aacf60876ef09b025ef8893d656e0708aef7352ff3b6c166d313935fb29cf130fe4784ba29673d32e53e8df64c05fb17405a30ba17632b37c0eff1af77b2cc095bf977177d8b9d51656093b1b5612f33737b25bc53a9ce5d60a1710d562f255f68f8b3cca5b71f3106861ccece926cdba0897f3c599536bde6b8c921a38760c40f8246673de621201295d4d153b652efde6de3566f63c1ce71b2fdbe0b39b94074dcec716d99867fdc350b51acc39907e21d30d892dd25ed6a2ba032ff1ba0fd554419ffea680bdd88844aae9b42e9ef7908ab2a5ddf783b3d83472b4cf4dd30e9bd49710676363be36b0ffb969ff8d848c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "73d7933ed39d7ec0a504d79ccb218a55df470717d0f989b3015675ff49abd3ce"),
		nonce:                 decodeHexString(c, "ca922bb78c637956193505d5102349dc"),
		personalization:       decodeHexString(c, "d5927bb206696414fe51610d48d6bcf5cb06336363d8bc95fd3ee751eb8d4e21"),
		entropyInputReseed:    decodeHexString(c, "39a72ce2640b341956abfd9e32a23b82b830ea23ccaf51fe99a62680780dbb43"),
		additionalInputReseed: decodeHexString(c, "ec114d7805edb548ae961ac83af23691a9df44a1b5324bbcf34fca490a2eea85"),
		additionalInput: [2][]byte{
			decodeHexString(c, "827887563a299c393363d1722b48792b0375f4c1136dc128e616fa94a6eaf882"),
			decodeHexString(c, "3fca0bf3d7d50a453411e11f330c2ef301069d9a9a23d3689c0b7db1f0981831"),
		},
		expected: decodeHexString(c, "97e00fd3dfe9faef2741849e604888b3f08cea5e383055e4b694f5907efbc72f5eafe88be91fec11493e2bc359f17ecb44962efc14d4e6f1bd2c7d7d9c7dbdb93deabdb475b94b66b61ff71d5f237e5eba1ad880287c845435d4d66300505bf6f14fa038fab820428649e2d96767b227079ab00439d887ce6a58d19749ca853ff1281264958ec4360ca77a120c118a22ea83542c6d4edfbe9a8c70c911d198e5b99dd895a056f80160d64227761ed45dfd39651639534d4e6d21d4d2e36cc95a0b9bc293d62e6d1cc5a55198fd4df1188db0a7454af9c16becfbe48f0f361c59d400ab81b5353ed2eeb00e02e220b3cedb49e402ddc6a12be95d644d37e16ea1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "449a1b5d5ed5393686abc28c5a8ac9ad68cd0b67fc0d3b801b6fc4198996f889"),
		nonce:                 decodeHexString(c, "54b0d5917b1619c0ed62127018704a04"),
		personalization:       decodeHexString(c, "cfce635c855dd93d50d7d954fe3c59beaf0ab3cc0d083ea5865e0b8327148cb1"),
		entropyInputReseed:    decodeHexString(c, "c55987676491d127b3c95c570bd97eded35a128ff3bbc6823122e0d9469b22c2"),
		additionalInputReseed: decodeHexString(c, "0e19985fabc3b3617da26f2e84cd0e7efafabd2fa377ebfb939f733ec3b47045"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d1b508e1d51c384c0ad19821e86be9dee1f338375356355b9814b1bd99dbf21"),
			decodeHexString(c, "6dba825a91db5e24437a92d85c692bcff7d8d5dee2a2ceb6fe82d80c6e0288e5"),
		},
		expected: decodeHexString(c, "e7d2809c4591d13e67906d5bf58d05e7e96744cc21f7c4b9cd7f36b7159e739abdda510378d82383c61a61af107fc92a17bdec5a197c926ca0b32d93ee5939f343afeb4f6efc51148f070b4ca6fa9a3421e27ba0916c008492e88b52016173c6565137c4cb72d300726bba93823ed7c991a8a67aabea4014fbd576a7d4fcd946dca9431626d89da5ddd8c490259a8944c48e0d55b53f3f7a8acba8a91a86aaa137dc7b00b8d3a44a99de0db3e4e6d6d35ef933c468b6b53fa2e92d45a71af9f4b85077a8fdc78dc046ca3192de7054f475b804ebc420381131abe308c394969bb59191975bd32e15302089e99a4a9f6e359ebb25c3e0487c1d7c9bee468aebf8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3c834da8b99e228ef0a8f2dcb7d0dec6b0103ee2da5e25136ea792c3f7048a61"),
		nonce:                 decodeHexString(c, "5d5d724e0fa0e5c7b3fe6ccc0c9048e6"),
		personalization:       decodeHexString(c, "17be89635e58522d8caa3c7b7340d26a70fb2b6e798f73a58c529ba5e92d969c"),
		entropyInputReseed:    decodeHexString(c, "fefe87bbe72a13bacdf0aab0f7a99ec269791a0bfc6f3844f807dc64d8e736c3"),
		additionalInputReseed: decodeHexString(c, "0df852f6232ceda51a8f2751900d9f170c00140d494ac13ccbae46e20be839df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39f35a23ff6ba451436c662b436fc56959c53d1f1f2b374a99771585187342d0"),
			decodeHexString(c, "b69ca7ec3357e9c24a37069ef73cc3b506f493fd445accb99f24fad351df6c16"),
		},
		expected: decodeHexString(c, "5280e65d86c72957c51c63cdeef87fe9163ac05c93dccf279ff9bc47bf4d8dba90395bd5a4fe3828746b6f7de947c43b4c34bb1bf06912d417d0fbf547110fc3a7f51a9a30c4d0792c5f34fe686079126c792d844d09b8ed80476443797d4e21a69e3b0fb761e0c8460190745c42e204c27a2d8e6fb8fbb8d1cca56eed366e5c7f1a2f3795d30b6d47a1bfc7b2c9b851993272f8e91daa40ca5dbea3c1ab272b33a91ebd6e36bcd3ffd7e296e342cc04ac50f5f6d36796891f229e3c222ebd0896f37b99c4049621fcbd47462d122d2dc0a774dff94b40ad2bab06059705667080f34a52d4d54c432a1d1ce3351cb0d44805c45b926759f760db84e3ff764445"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c5464da02b08a9c40e6a84c1825548e8bf355cf16d2fcdcf355b7878c9bfbf16"),
		nonce:                 decodeHexString(c, "8d8eb753e5e17a17668aaf4780c4e589"),
		personalization:       decodeHexString(c, "b879545349ec0a68d86db0e7d774c2106aa58e41080f46ca47743bf8bf8beca8"),
		entropyInputReseed:    decodeHexString(c, "2552ae9d71221bcd51b85ac97460c0c323832237bf1d8459df4dfaa3cbc008c6"),
		additionalInputReseed: decodeHexString(c, "18cdffd079956a24a0c2bdf3eeaf6bb76aad09ff56510b374eb40a9f0dfb9749"),
		additionalInput: [2][]byte{
			decodeHexString(c, "79a2a2d9e73bca96f05f984507c6739a47cf2aeb61e4e22a52ccdd5b6a92bade"),
			decodeHexString(c, "3c96f2542ff37484a7131db931cda56bc9152b9a9537b6d3e7fc1a22f3b8db0a"),
		},
		expected: decodeHexString(c, "04c2af11f4b5681db56bb4ac8da8fa1a903fd5668592241ab915c07bd34747e2a67d2f6b24d81b7c68f46e2fc773334a25bd31f36e0dc362714695c3fc22385c3a6199160f66b421073b0c2f09f1fd313c5e8952384fb88118e5531b4d83ecdb659b088fe63af490d9b4593f163f642e4eb956c7c2cdfadc04c42e13dd4ee81bb49c98d7b939d354e96946548b54b0f3c6eb3b610e471ab864c7ce257ca1fd64f4642bb9c971205f03676add086fc042be64c250f656466a163796dace672581d9671e83b4ca20e57cb5fa9f48c44e8ce416959f1b929c26702d4a4463e8f71985cc339a71c191a262fc8240033e6978925b6d10245fa5cb028b0b9f89082044"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a15098fe07743b2e071918220c0ab0228adfbee7a282e07c5022024b36cbb0e1"),
		nonce:                 decodeHexString(c, "d5597573d28d21787436d4b316d02875"),
		personalization:       decodeHexString(c, "22d5319dd2cd689e75873062c4d1b993d1eed325ad2d53b46f437ed4de468d48"),
		entropyInputReseed:    decodeHexString(c, "df2ee577d86dc12f8ad40ce346e70169e657766ae2d64bf83a0172415774148c"),
		additionalInputReseed: decodeHexString(c, "c28c391c2e92f46eeb33cffa537e295f6ec492e32b25000086d38c05fb530af3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fd1e0aaccac114d434182b06c9c4b363013c81252d40a8f704692b13251b0ad"),
			decodeHexString(c, "75d15ca64d3a0cbc8ca74c9232245fc1bb4f5293b63b031407106bf9f401f118"),
		},
		expected: decodeHexString(c, "41e479203179d23a759611040fc32f4e429ac3061b375ef769a5a3ae46e8352d96fb473dcf37345ef34d55b9fd994dd053abfa7c42939fb81f1713f62bf764fd1177601eef5421a8e62c8b8ebf73f1c6854eaef4ce4efe67b464e977f9e495f8cccd2e85666683852e9b0ccec993054abbe7df9d4097681294f79aaf27ad99d51c6bc9bcf720cf4cf4d95ad0ce6541d186a311077447916e273b2bc055f7dbb58de86c50cb889dc3c32fdc8697e801b6c9acfbe7dc654d397039cce538266442f8eafc82dea14a660e478a040ebee425000994d5193a7531428f76ae1d114dd7fd6445ff246f4ac5c6263c231db241a14b420ec2897859fee2958ccef7a601a0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "70ae9d4023e35b193f7aad62cd97d3df136f6b0d82b15970d31495b32174152a"),
		nonce:                 decodeHexString(c, "951e4e9b333964f845156b938254f6cd"),
		personalization:       decodeHexString(c, "f6d7bcc9e070be960014646e86af22909d2e3d9cf5c5a9659fc8239179f43b21"),
		entropyInputReseed:    decodeHexString(c, "9acca68f28c0a28302253636a0840189e12215809931f48178711f698c758c0d"),
		additionalInputReseed: decodeHexString(c, "e0910808c5251065186b2266fc329f20c4d4726032235bc1766c3182c57724a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7b666420b73a6d23c29aaae8753ebedc3c18f2cfde9871510632f38077c4602a"),
			decodeHexString(c, "c6eb8fd2b3671ed603381983ae5e77612c20e223f6659bd60820af8f561e7290"),
		},
		expected: decodeHexString(c, "bbf783da821b78afea3fa6f4401e0277dc0f67f61f4f26302cfbada11f313e7ff80d9d0693a39388fdcb4b1e3ebee437e733d82b72d394cf3c927e7e69b866a805a3b3cfb6119731b2546051eb5fe1cac21f4ae925d0999d597a191e43b90f7c640f21f1e0c718271874dc3cc0acb1dfa623e13e76e9d0f194ace63669de5af1c66a4ec01bcb8a98be7c47cca36cc355e617a37ccc41a142d22a59a358e3d930f08a60ae4613f6ae5be560ddf819f4df322d2aa818bd0a7faf127404b625d7cd75e7f6f3507654c136d46db0f0ef7a593a15fc2384814eadf55bd402be2c9e04123958e304107638bd929aabc1ce5272477ae316431e67a4abd8a53545710a78"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed75_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed75_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2623a267c3f802ecba12689f98de987eca93f1fac8e2e1d4d97b8e495ab888a0"),
		nonce:                 decodeHexString(c, "678eef61e1342ac5ec47c7d77d7fcd4c"),
		personalization:       decodeHexString(c, "f77b8f9ef68b059eae57abcb323f490e5a7f80d6bb8b1e523ddc3fbef0051a65"),
		entropyInputReseed:    decodeHexString(c, "b47d1c0e4a8bb7d249f6b60d597a8e17209cb5ca6c136905f9535e4f88c04506"),
		additionalInputReseed: decodeHexString(c, "7624c54438e423a872ec5540082dd59de9858984c715a5db88f475208af17437"),
		additionalInput: [2][]byte{
			decodeHexString(c, "42850b1f045a645a650d6393579c9b0c92d54ec23ccb5ea5330bcea6ddb81da8"),
			decodeHexString(c, "c28ef68b1e0111db027dfedd782f8fce882189370aa8a55de4a7e2048a07923b"),
		},
		expected: decodeHexString(c, "c9426c662a292dd02aece39ca6bf9ebf4400dd5c7994062aa6e7cf855bc19ff9e14f461414d19102ea2e7fb9ca43700de248a367ff10f0a1605d41ddb89c8927a64c4ad4c113efae99d72975f6c1a1d3311b4f0d6dac05aa5a78de52a293f3448c7a2032f31e2450b7eade4bbf4e44597abcfbdc596f4a83e9c580211f62d76f9b856f207a48b4a63a07b866ed4482a362e276ae06abaea2406089c5422dc7089f70219c71b7dfb9b847d9554190f12b9659cd25ea1379496d1650084c145e7155ac8da23015f51a90050ae4b8e285c54cfaf32fb91539434f434dbc18a20ac11866de7f0e8708de6fd5f00a18a22cdcb0286ecf49a21f7cbff1065d4a5e925b"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed77_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "8a0c9e55900b51d4ff443cba402de46fd673eb74171ce4b50f5660b6da679584"),
		nonce:                 decodeHexString(c, "490e999862e742709ba3642d78dfba64"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "81612721ff46e55fd5504aca6a48398e123a5983bfd7282c5971880683eac443"),
		additionalInputReseed: decodeHexString(c, "c76cf10595ad4d1d95194ce5894118b62cc17900385624aa42e5514fd913654f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "41666d83474e31d45fcbc7f28ae765ed4facdbabe1566febc689cb4cae333721"),
			decodeHexString(c, "6788ff5a93234df5d0856c063ce8d041aa2db67cb98579c66c0b66ccb075e306"),
		},
		expected: decodeHexString(c, "6c6fe076b861fb004bad06965aea3f9e72017ba8a8149fbfea486ec3c8744f99e30f9d8a6d2cc3d36c25c2d95aacb16c6bce083c0f7f48937c3317fc5ee559e3380da19e8dc1cfb4abb7a563b7608dfa237046920cecc505b0ada621189d04afe8239723ddd3fbbef5ad5a596e9b1094365d01361e79066502fd962351da9f43c0bdb44f8ef86d7850df801fa3ac55b358504deb6e789e7697b755fc3844058604a57404dece4d06e76f4936feab7e333261228f75aed5119bad392e645737728b152a7dbf871e3fcd184ae905591676f5de565ae8198d32a959e81e8e567932979bc34aed8c4bf200b0c21f222867310c3752fa70b2545307f00f2d231924c7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "1d0b34cba884d618c531907dd482743de1a736b4bbc5e961c8c5c5a11977e3d1"),
		nonce:                 decodeHexString(c, "17aaa50875636bf80f97b5121bfaf5f5"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7fb727b7e83486d4ce73bfdef54798cdc5f5b5be46841e60e766b34593ed4b69"),
		additionalInputReseed: decodeHexString(c, "11edb2a0df066c1dd9b299ea3411fb875f1a25f44f53f3f40e83fb1f2d445ada"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f190ac36bf9e04946c91dc1041e5eb6726392aad6751094224d6c783bba8d3a2"),
			decodeHexString(c, "a0529e1e34ffe280a8e638483ee1ba5bc5d8f65c0efb31fabb7cb5f98294560d"),
		},
		expected: decodeHexString(c, "db197c24c4cec0d437929d5ada31a82d0605dde38a3237703790c46982796e8a1f2624cd9d55f6b93200c098e202854a98fb785b2204bfd90a3871d5f7d36c8a151b4d9a4299c830bc27a58dd196f9057b713dad28d0cdeac7368e52258845b211d6c3ff3a89fdd760d625f54729e8774432dcaf240b0dd9c74940bbd0ebe26dca0a8d33f9fd608f90233b256c87645e916719843047ba55c0f842b55141b280f46400d16284367f24d2ff281bcd16d7e70181b6a96c7d809d943252688470a82ba0408ea22fbcd3228cc8ecf8309cee1f04e96763579aeb232ce828864eab281659417f8fbe1cf2a8224516d064bbf87b29a2559defc4f37f06fba25b1222a2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d2571e656dbf4c3f45ddb965744498545287f9dd20f6d68c3eb2e378550147cf"),
		nonce:                 decodeHexString(c, "dbd5f0de6357ec1233ff0dec4981efa9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ff3c39a9a4f2b38e4099f7bfa9f1897d0c3cea2283e5a600c4347fe725a95294"),
		additionalInputReseed: decodeHexString(c, "511b5f805fddd0cca3437c89cba5a0860563afb0f29a0e22d150d56c3279cba5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea5e2856c439c8451e72e6895fe23d411a2983d79e5b32184611de06e36a0938"),
			decodeHexString(c, "24efa364a6411c33a70d746168f2799346596eb26e4bdcaa420112ec40f9c651"),
		},
		expected: decodeHexString(c, "17c3de6aa824fc19c9cbafd3158d546cf71c2168c1ca73573a2d10fd40df5a8109db82b40215f104d6da59c5f4bcb0f61ac7dd9b23b0a2b928d70b0deb98790b1407849f844b0de7fc1c821b8f724d584984ab69d0ce115e6bb3308ce713d733530c207423d0b10c23768380ed01925cc7fce8f10819cf67008ed0fa7465dffedd645e1bd83db454c6a45ba807e748f32ea6e9b01df34867af79b8440d6549a4b1a9dd280b2a21dce71d86ab8e2fcc84e339c00fad6e16c43d23a60962ba31c6200af40ed6d6f834f9bdc844139aa1bfb1c680791ab0d2a029c2cd8a73a873c685dab2abfd1e9a2c2cb9189ee68980858c1bfa8f711bcc8c5d46803b109c070e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "dc877a8d6bcfec3a4d6e5ae03b9c65ce5401e19967726b060cde7877c9218416"),
		nonce:                 decodeHexString(c, "4f01a27c467faa6b1f5cb6951d915249"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4f77eed50c1a21ed2cd10372a2e2c4509c8dea51153ceb055266b8a0ed794db4"),
		additionalInputReseed: decodeHexString(c, "a9588a7b17fa4ab5bc3eddbd473460743784275cb898b5bbb833ec32af2d2901"),
		additionalInput: [2][]byte{
			decodeHexString(c, "38b05b7f8fed393b82b01d64fb99ddb11e25e583620a925a315ba30db12a46a6"),
			decodeHexString(c, "dbd6149a503e92b8b3659d7014bb53373b170cd1176c12d5a052d2b701cee567"),
		},
		expected: decodeHexString(c, "d889ba0085b2e6cbb06067153eb94f77be1a479bbcdbeda1abf31ddf40e28861726db7d82d6b093450d6a80120ca7a4c53e8535c64f6de551dcbefe537a3d06fe3b52c1ae4f865bf8784b598a2515b3349fc2f592327ee8356a93cf373b5a6f912f6de503835f2b66f0666ef2b1029cc3b295a405110d9630803a02d2e53f160ff5898ebe024aabb73ce8aa2eef542228ae4e508da99693bb49d4717b05f5434a29301bef8e96468688be7cc603ffb45a24a03f2562edf24382acdddb6a699a76854cd77c2e45980a443901a2acb09c960dc5a75b99f785f6a55394c41c1a8707d38326cf056e806d32cb00c8acfec13c79311745b8cd6bda82fe494a8e648f8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2437d39f7c3539daa6b309ac1777aef196b205de599400b60d10e40a369f0168"),
		nonce:                 decodeHexString(c, "8401fd164f6d070993058b539fe20075"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7488c2942262a90c1c6958a44b58c0649ecc43a8e1dc6e9248fee74c9ef891ae"),
		additionalInputReseed: decodeHexString(c, "7255f728bfde86e03eb8155a9604037a7e17ae7dd64447f60fa823f429d6638f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8fad4d9742a21a00311c804b9aebb3a0ae49953ee96d7d622f04f18a2404e51f"),
			decodeHexString(c, "c4e26b863518b556885024b91eb0a171fc7d008b0d6adfbb4974ab407635a289"),
		},
		expected: decodeHexString(c, "f3bc1951e950512d819386114c718921d7e26893baaa6477fcd101cadd3a6cf5a2e0e126df0db7eda99ae61a93449c8b16ddcd417a41e17fab7cea0a821aad27140dc85c7b4f27e54195a23a38dccbe937546bbc41f39e4562cea4ad8b6bbb6a2c9fcd845cb3b64b79a88106ba871dfd8885f204368d27c04d6a31be5ed18250dceaca4004d5121e46bffde4e78495d3e6363a9cc5be4eacd779e811bbc6d4a72809c3ade298220de296501834bde28fa004ca7460b6a8c398616cf4a95295de2ce877c69b70f2067920786c5727a7f89380d5601f65dd9be137911545f56e78915d2c763be8e621ed02bc619b64f9da9a59c964c8ad66c64b167374ee614e6a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7e42555bda17e98dfe1eeabc4930b76872f128931dec0c6caa8c691afdd0cb52"),
		nonce:                 decodeHexString(c, "8bfa47daa1b09b3a2bd53ffccfaebba1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "03b8f20a7fcccaa90e899265957058ca10c70f3883d15f24da334c45e5b3c132"),
		additionalInputReseed: decodeHexString(c, "308ed519a2b4ff1e8b1a3d4be72715ade7814474b08537f30dc46a327d6d8575"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a22c075c8b50598d9fba9ac079953271125da5e32bdf03eb58b835acc0e0f7e6"),
			decodeHexString(c, "17e25e3192711ff0b1f1683249aa5d20415bd65181f230b91ca87bc5fb4d10cd"),
		},
		expected: decodeHexString(c, "c8c190dd7d72932a150d8b4ac5e394afd2a77c299e72fa5cc8a6cbd7c16dfd50ddafe8110b6743323765e83dac5ccc755039c14c9c104ffd70a541ac44a2df61c0f047c848e4a913846a95245a5b186ab7dde2595f7c3060538b970cac197980bf164fb283d85edaa4d9ffc0efe5aacbae5aae27185c571f9bab76427279b8147f46c36f5ac943ee2c9f0bef6964bc7a6bba56fb4672b13c1c647d85db705b9064e6ddba480b68b6cf6a24bccbf449cb830bf17b888a8eeb126eb20b3bbc58f6651c23b199857c8eb9199f74652067ed5959b8e82f21cffb1b23c00b81a95cbc20667ecf7d567ba478754e343d08117d43ba4677a9a8c87019ae9501fb78ebe8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e6879f8350a48f3e604144160b088d3a47478de068ccbb3ee5d007452cb465d2"),
		nonce:                 decodeHexString(c, "97ef50c6c0b4337485a7febc905eaa4a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ab053572556cf35cd2d20efacfd365017a7bd927a636956cd52d05128a43db9f"),
		additionalInputReseed: decodeHexString(c, "a086363c52c6a69f633ef11a73842c8e47cc5948ab0a6373d41f5dc8ba6025f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac7d3781827d0219c0e0252d4af6749eeb057400bd0c1e72581589ec3bdce5cd"),
			decodeHexString(c, "04c9169d8c7efc88ee097c537a72541393b19cef0d503fd4ca0e272921ab53db"),
		},
		expected: decodeHexString(c, "81ca9262b96157a22d98303fc0565d70c670586e98ec9471426fbe3a164513e509a0c0ebf2e809f180eff298632c27aaab20c1c6f1abb846f701403e28c51f80e9b680202610dfc4044b9ca964d68f4ce5b73bf4728b388ed3bbdeee32cf6eb037e3f38950620c7b1a3530f6d420440c4a09fa972a069143f28c5a0adbb11d740f728fce24a4295157eba91b4ca4be90c9185026827db27a268f4a8040b6e5a83e82e7a5e9b9ba4b1fbe7fdfe877bae93b39d1bfa4c971aa1a4c16b8b98911476d3b2b76d4edf3770498b67fffe9b68eb4a0e3f643e16c06cc61cc777ea930ae35b18223f224a4862a11d511fa5ad7117d063b117205857023a8a9e6b6448a18"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "7cfd0edb3c97abec4f24938d66e03b5f408b8ca7ddc522b7c1ca7c85c2080fbb"),
		nonce:                 decodeHexString(c, "046f62f1fe66588c73f4d5e3da5123a9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "40caa6c0214b1790f737ffc5d475162e6e68885876dcf3bd4c83aae32080ef4d"),
		additionalInputReseed: decodeHexString(c, "a300ddf9a2b6601d1ac74a51c6f48598747e4181d20bb67c1ff10b3fc8bb46e7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2ba6d180e144be3056dbfa75007859082adaae23b4c742bbae0cdf1a2049ad85"),
			decodeHexString(c, "ca05d7b63ab3968f7a2c53ffb365287f22349efaf81ce932de9c593f1131cd65"),
		},
		expected: decodeHexString(c, "eefddfde6f8da38b419f45a17e28bcc022ddf5b85c09b53bb3d274a71236aa7136bc59c45c8041377774bb7b89e7c8567d8016c73120dd4dbe85cf419b2765a839cfa00471713d5e51e2407b2212c51e434effdc642a8984589a57226c7d04651a323b3c43cc0b6ad66d3656977994e25b1b19848054e99aad34e2f980e1e2aea75fa10292f9094d11b12a797b9015b5876d1636e633092aa4b3736d18dea2d35c7ab27a83c4a16da66f1e76fd5c75f0db51e3a40f33c09097f4207eaeaef86d72aee68b77b3dbbbfc888eb6d175fcceb8ee61c6ee19aa0a27db1aa514d5d86569011910734e93cee5ea7c4e82d19e466a90f3b14fd8fc4391f1a7b83a3cc8ea"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "c8cca9605a144471f1d5fbeb563b6104dea3b03a0b52e3087790e86c2e9636da"),
		nonce:                 decodeHexString(c, "ebca7d5e5638d69474691aba72692103"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2effc3035a8b6d2c5a37cdec7247ae1eceb87809fa3450428b260ff1a32aec28"),
		additionalInputReseed: decodeHexString(c, "b7f2ce337572c252989b2f5523085d326d1fbc069970bd81f3b353555ac633ce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "601fa6b58ba950d48e15923f909ca0dc987ca891cf6cadbd9422eb1d7cea4c77"),
			decodeHexString(c, "f9483419077a5f638452aa71c852f0846257f6e727b9f249abeea02d36b7e595"),
		},
		expected: decodeHexString(c, "92bf73e31932771cfc1a6ea6e8f03dc3377a73825c2cd254c0c719830c7075718e0ed13af7458576cec54af2e5314ca80b227028ef4a6414a8563c895dc6643dfb34b9b947c5616c7bd410a8430f5d759d78ca3ed77c08ca70f99009d85022303bf319bc1284ac2ec81dce4e47bb663cfbdd3fee180de2818fd5f37567639e714764a921edb74dab2da5a8e7d591a262ee6d0f4a8ffcc525273d1795f7196000e55ff167cedb5e6f7ed0f5aa1e9ad257b6360836f0f26546c12c632e3299864f620e1eb3eca124e2d7206907da2a86108cc11f68bd0798183cf00ff7c916b73f53c3fd25c08ffe325dc16d2aae8a9335767871b61f512e70455f612082301c28"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5953a45e46e50119103d4265fc6987681c459d9b6cc8e142a479e05efce522cc"),
		nonce:                 decodeHexString(c, "e815d564daf2f339b9a673c1eeb9574e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9ad6cc399903b9f401870f48414fd80e5f35a41ec9bfda2f23f6d79516dfcd72"),
		additionalInputReseed: decodeHexString(c, "6e57cef4ab030de60e63747adf907eb3d37f7ac20ebca816e6bcc3e20df424fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b133956e428c92a62d83e1c204d6f84188464fbf30f7ac10c0f58319fd210b1"),
			decodeHexString(c, "d6a963a113868474a988c391e9dc9f39192b96e09c8ad6f5b8860d08c9b56476"),
		},
		expected: decodeHexString(c, "cae0086f2d1485f5626510a351f9b00508232e4436b5d6b83f4711908148fdaaf79f8fbc59ed302b94b589cdb6acec4d8729272723b97808990ceed3edef33acc0900927bb287b832bbb167bd54622612537e87360cd57e7ffab16bd040f584f4576d3cfce938a09c18f623fa2f1c2dbd7cedcec4df6a527f24eb81e7ac8f6ad2e63d73c12f79804e604ca9d3a705b8978b464eb28e50f6cb144e2cdb9238f0f789418df1bbabd4d74795001fa3f2429e40016190a883b660259f694a069069ecf548750fbe0528d64ce79d33228021d768da4178eab994f3d8eb555f38337c6b5bac1faffcd029a72c215f48ae009a79647bbd07a3911581450ebf7c1c607b1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "a404c778eae15a5505af2770ff78653daa22dfa62421e6cd2c2d116bfd3276a1"),
		nonce:                 decodeHexString(c, "1c310e8cec4d77d046bcecce4fb4356a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d676f56e7e4d0962078a13e5ee84be0e4d962f36dc5276e602214074e4acef7d"),
		additionalInputReseed: decodeHexString(c, "95a08b37cedaa661b76ff212c4bb67148195e280cb196368a6f0aca223506201"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2518c16172681df5834bfee95ebb0415a867944176b5036e3e5af7cf0297953e"),
			decodeHexString(c, "10ec30f351c84048af33602bdda379914ecab9fce47fda2f4feade6268a3e6c0"),
		},
		expected: decodeHexString(c, "e3edd8832172dae2b0488e4e08d5a50bce872fa200b23a8a4fff9b9f0547f3138e877374d40922e0affe5d9cce91ae384dc41bef304d5140389a9ec8c026244f5c728ee0d2a6eb9ec3dadc462cc36f0653821bbfe9e70b40c85e8f3729a7f56ddbdc9432fbff5faf76d1df5afa689beba9c1698d79a4186897734a4aea871086a59d1ce5bed4123f8a021701f233b63eba2d854cf117069387e336d0d55161ff5e5ba8e867f182a22a1987ddd43a8172e33c40625beddac70af4c960cd1062e2fcc5b4cc30b7a56e3683d6e7164c54eb33c3c379ac2f5a9098fc655da9e6b7854aacf699dab69712040ccb090ee50759b1476ea887334fbad9df27881ccdac07"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "70d05953dce8f81deea9ab6db57f7c15befc3bd79d31ff0c445aad2ce98e77d5"),
		nonce:                 decodeHexString(c, "e922681a407ffff800a03183e21733c2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3278078df8a589b2bb92b13e9a219196628cab4839e650c07a059bc6205d696a"),
		additionalInputReseed: decodeHexString(c, "9385a89ac77cceb4a7e221fdc0bbb6c16a1d3276a08341e7352d8ec0454a07e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "92994a5375ccf13704064b05a2ae3fd295e1feea9b7cc58324be07a82e8e5f83"),
			decodeHexString(c, "6a77f585ef58cbe4e313e80819387bed26a125ab38769ba2f405deada99cee9e"),
		},
		expected: decodeHexString(c, "435a09fc736bf694bd0f872bd9bf107c974308ac5ee9b3072f154e63c3204be78f577287ce4f32499a26773b9fe8cc9297e653b4408c5fe7aa50e546bbf73e2f073723cfb738e81558c04f7c938033c53ef7a3b19dad975c110922f4ad7da634649f6f0bd81ab05e8dda7d1fb12a40e9d314bed8f5d775d42cb320c97d61cea45bca0624a1fecff6f8d88b8a32cea6b88770069053f30e21c1487d3d072cdb8bb9d1b14c9b81c22b4e8fb4f6b1228f2fd36c11012e74824fb08aa2cb28e9f4529b20440f8b6a0f1b42c86c24da9b81d2e3a38a0d0496e1b2cadccc6121d6b9eeb8a08f2f118aceecf57ad5aa787ae64c47eeafd6b707f834c575efb0c96349c8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "cee549d0232d61fdd77912ab01e2e2dabe0a3e79af017843ffc3102b17d43449"),
		nonce:                 decodeHexString(c, "f19fb4c7c5dfd8e1f52620ff6320186b"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cfdc2d67fe32d6eaa7f6f1328b7e3e020d2128df8493cd7e0bdb18c6db593905"),
		additionalInputReseed: decodeHexString(c, "b1f20036488d3fdf8a11cfcd619d8ec667cf4ecfefff4ffc0d6f4856bb1612ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e44413ca8c5a7f24f633e180b29ed8d12971d43cc2148781a583891bd705a95a"),
			decodeHexString(c, "5a5b4997109aa10fe2ba3baef3076ad730d4a6e5f52a3696f671ae460896ed45"),
		},
		expected: decodeHexString(c, "751abcc05bba6a1f9496081e9e67f7d3b2e4b985dedc4f1ee49d6d4943caa0051794af3016ff5ee0d51e3b50f0096d3acf0b2dce84f87a08821c8c09f82ec57c044d6ba0dd7474969c4e4d6e89d6d53dbb2824f1afc0bf3fa84110a805e92447f86bbbd2dd748550bd147dc14487b4b36c769f2d52d03e1028254ca10854db02fc0afe199b2e5aae19e6fdee31276d8dc0a06aa0344c7f8f1d26453673adc1c4bcedd8e9e7833150656499a613bfc08f1c670866c3b136770a8e72800297012e2a9ad9cf8ae6b97014430c8e757fd4d2583372bf9bfa93ccc2345b52f58a54448f21fde535fa098cd09543337b518db2635116cc1acc51aec38d0a7090345631"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "dcd0f3dd952ca9688f9b2f4b298220f3c22cc0596303ff41dec219e732c869ff"),
		nonce:                 decodeHexString(c, "9c548ec0fd9fcd83ff1dc306f46330c2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "15d37cda1f24e910a3321cf5d4109538d4464bc60778d2ce93e4d925ad495e72"),
		additionalInputReseed: decodeHexString(c, "2b0a5d34bf92c50c2d4c25f86e697465a7e5a1bc9f6d79eb058d7fba6cbe4ef2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c86a4cab153daba68b02977f2a2af8df5d007edf6a5c57fa2edf77325e8a97ac"),
			decodeHexString(c, "1ef8d92d6febac02ba702d0c93724cab16a986bdc016cabab5cca4960750f59d"),
		},
		expected: decodeHexString(c, "41aaed73a7631c312e339ce068cc19dffc09a331bd1cbeae518e7977010f362f8310d0f837413cc432313c244bac06e618cb27e21332b7fa7dddd4bf23231d6c04370009bfeaa5ab47538b113734257d31f7b9cd785cd0fc53e68d2491dee56299b641f1d9420aa66897494b15cef831424a748baf89ff51f93eae25d53f6b34e7496585e97a9e8b01c58f8b8caa779277323e5c42bdb491593e664ac4698bcf62ef6c7a91d3375b72706cd67049b42882d06172193a04f2e52cda06fbc4c7a25872bfdfd0d95a22d94d20b0191e0cdfb43e3f5df1be488cfefa0a0c098c8bfb1d854c133617bc79367817913be16da2d44e6973a5b1f9f0d03c53e2c3ede5d9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed77_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed77_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "e342ccc1a8652b617f28be79119bdea5eb8f7d6da8fc8407c76a71b83306eff2"),
		nonce:                 decodeHexString(c, "46c12b22dd4c0696b46e5bd057e99e35"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "39e481828f3196d48185bee8fb5617939b5bfd0e63c34fdff06fd56108b05021"),
		additionalInputReseed: decodeHexString(c, "3dd6e20bf2c45ba2f33c14db928e2dd6eeffb7ade543cb4e7e0ccfdff6b2e86e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e12f4cff164a721c752a52e36f008b82b74c253c99d4be366bbfa9112b8ceda4"),
			decodeHexString(c, "c6ef50c58f08b93a768a5a29e1787aa3227c0bddf400e3ad02ed3270ffea7d4d"),
		},
		expected: decodeHexString(c, "7781cc73939c8c3ffd9936c584acc8b60246ce4eac9e6c616ccd464ef708abddff8b89e084468043211a19ec155a1f3ae8ed99c7b0e8cdc00890367d6374e4cdbfdb29484dfc765bf592c9d4c768145c4ab9be43b24580c06a0b90bdc6fe4786ede47d2ab1bcfac35c4f4b2bd0ea9a1f1094935cba4ebfea76cbb19100b74597ca702280717dedf2b75c9e762a2379472c87b824c948ca2d35a2a62c0458bc2f02cefae53e6c751da68be486bf7843aca22d9bea771d215914a283e36abea0964227425967481bc560d230d5f9b287bbfed89f203b15e25503b933d7576ce271131075b0643f0433e5d769ef57cd46b02ba4796362820424858a829e656b0c92"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed79_SHA512(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_0(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "554e8ffdc49ad8f99ae5d5f81af5dafb7f7553d7cb568ea73cc082dd807625c0"),
		nonce:                 decodeHexString(c, "f08978de2dc2cdd9c0fd3d84d98b8e8e"),
		personalization:       decodeHexString(c, "3e527ab5812b0c0e982a95789398d9ebf1b9ebd61d0205ed42212d24b837f841"),
		entropyInputReseed:    decodeHexString(c, "78073e86794b109588f422f9bd047ec0ceabd6786bdfe289b316439c322db259"),
		additionalInputReseed: decodeHexString(c, "f26bb1ef30ca8f97c019d079e5c65eaed1a39a52af12e828de0370799a70118b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b09db5a845ec797a4b607ee4d558567035209bd8e5016c78ff1f6b93bf7c34ca"),
			decodeHexString(c, "45922fb35ad06a845fc9ca164a42bb5984b43857a9162348f02f51612435b862"),
		},
		expected: decodeHexString(c, "1f20839e22553b1e6cd4f63a47c399540f69a3bb3747a02a12acc70085c5ccf47b125a4aeaed2fe531510dc18e5029e2a6cb8f34bada8b47323381f12df68b738cff15c88e8c3148fac3c49f528123c22a83bdf144ef15499344836b375dbbff72d2869662f84d123b16cbaca100121f94a8d5ae9a9edac8d76d5933fd55c9cc5bad3973b5138b96dfdbf59081df686a307242f274ae7f1f7ffe8b3d493898347c63466eaffacb060608e6c8353c68b8cc9d5cdfdbc0414448e611d478508191ed1d75f3bd79ff1e37afc65d49d65cac5bcbd6913751fa9870fc32b3f286e4ed74f25d8b6c4db8ded84ad65ed66daeb11ba2945254ad3c3d25bd12463ca0459d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_1(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "0c9fcd06213cb2f63cdf79764b4674fcdf68b0ffaec7218aa2af4e4cb9e66078"),
		nonce:                 decodeHexString(c, "431c4d659396addcc16d179f7f57244d"),
		personalization:       decodeHexString(c, "7e54bd87d20a95d7c40c3b1b321526d20667a4acc1aafb5591682cb5c9cd6605"),
		entropyInputReseed:    decodeHexString(c, "75b84954df3010162c068c12eb6c1d03645cad105cc31769b25ac17cb8335b45"),
		additionalInputReseed: decodeHexString(c, "d5749e56fb5ff3f82c732b7a83e0de06850bf05750c855604a414f86b1681403"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9a83bb06df4d5389f53f24fff7cd0ccf4fbe46798ece82a8c46b5f8e58326223"),
			decodeHexString(c, "4813c4951099dd7fd4773c9b8aa41c3db0939250ba2398ef4b1bd253c161dac6"),
		},
		expected: decodeHexString(c, "e17e4beed1654fb2fcc8e8d7c6727dd2e31573c023c8555d2bd828d831e4c98742518766431f2ca473ed4e5012c4500e4cdd1473a2fbb3070c66974d89de351c93e7e68f203d84e673460f7cf43b6c02237c796c86d948809c34cba123e7f78a2e4b9d39a5861a7358285a1d8d4abd42d5492bdf531de74a5f74097fdc297d589c4bc52f3b8fbf56ca480a74aeffdd12e4f6ab83264f528a19bb9132a442ec4f3c76ed9f03aa5e53794cd006d21a429db1a7ecf75bd403701ef2472648ac35eed05840948c11d0eb77395aa3d5d0d3c368e175aac044ead8dd133ff97d211434a58743a40a967700cccab1dac439e06637056eacf2e6c6c54f79d3e56a3d363f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_2(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "bae483c94f3e4521753589b4f2b72e2c8274f4e4c2359ea5e9de56cd584ce4cd"),
		nonce:                 decodeHexString(c, "f5f106d412095ca4d380f4b655217f2d"),
		personalization:       decodeHexString(c, "2693dde6633377c9e399f332dc50bfee6b6287d0c58b452cade3ac1711b3b5da"),
		entropyInputReseed:    decodeHexString(c, "65bcbd036f7c5354e8b8fbc5a72c135243ab53d0fc2cb1a58b3e02f33a38d44a"),
		additionalInputReseed: decodeHexString(c, "a261c178acdfc5d56ea941eae290fa949ae48813994c694a18fa76380a77e8cd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3c12f018cf22d5c553f1c8d6f73b01498377098808d76bb007936f077af7a5c2"),
			decodeHexString(c, "9a3b7c836457342be51592001a5362d25fbede69b8688901ae6a1c3ee84d5393"),
		},
		expected: decodeHexString(c, "137ee45eaa4f3a175174becbb42de66a800e13d589024ba806e7e94d0a34c893c66b838993f0e9c854b819949a1be843e9570e3db8bc1b734770370433f92062b2e1597a2a61dfbdf78373478a24b951157bbddaacb319b0ed59de6c599c9f076ba0008cadc5be2ba19c8c36ac98cb26428b19be20ed37f22d11d9b54ec24b4fdd61f9e9c0e91b9394320279cd879a4546370be64e196a1029c203782b1295a44904deb05930664cf2ae9e315050ef0c0227a33b8578944be29fd8690d3f86be90aecb856644a867ec86236485f54fea6046b43b1bb0a1725d3af74908c1ba43c15408e20a6eed33eff25f5d4dedd738930d5741e25bc24f4a12eedae4395fdc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_3(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "fad292c99862db90f7983cae018e49ac08980072c868cea53236a853cbd019de"),
		nonce:                 decodeHexString(c, "1452db14eb178c39f4dc7dd605824f95"),
		personalization:       decodeHexString(c, "3e210bde62413d4882b8e419f859ecb7d3eef1959266380f560ad90a0f6de0ed"),
		entropyInputReseed:    decodeHexString(c, "8cf5e1b46dae220150893e83c176e1aeb0415d5599ee82b7395d74f5be697bd2"),
		additionalInputReseed: decodeHexString(c, "976ecac5caa93a4277b545001b57351f2e5c4fc6fddf79677ef603f7aa6771b9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b5cd65a636179be28e0ef16a456de0c0135a938f294b418747c13defa9d963ad"),
			decodeHexString(c, "74410718bd2ada2f124d68c14cd071fab761bdcd605c3a4a4822d66271b7e30c"),
		},
		expected: decodeHexString(c, "6b8ae32ece00ab02756bfec0b67bf9f147f0b9d2ec856a912bc00238e092ede0872f11ef74cc7a82a5c5298ea497e6cec2507a95f6a649ac26b4e762dc228a6d11df175d37f6edaebe3c69a68c0a196222a2612f9b4ed986645e19220b6c89ca9c9c9fb0ddc621e269749fee8cb05c8b55cba6ec8d542d10c26d886afae0b5363e3bafd4ec16aa94edc994c7aa49ee6be1e7bb9a448d67ce5345aa4b751e040a003eaa4df612412aad63f86c87804afd4582d498bfd586a5063ba4c6fe536b35deafd0ffd07662ddf2ffc2ca679be2580d0fa66eb00237a3dfe25afaa6a74c0d187c59e354e031e9cf9edd7a5605ad1aeb5e0c8db4c23ce6075f3be481546dc5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_4(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "209512d2442a50441dbb3bad16b277c13e091da123027f49ce20fd55a3bf993a"),
		nonce:                 decodeHexString(c, "5eb5021f952b564d131b100a026f3046"),
		personalization:       decodeHexString(c, "f15d24390c8e98c2d5eaa08bd0a51579d3458721db5925d3412509eddc67099f"),
		entropyInputReseed:    decodeHexString(c, "d7641b8e147b1d617518e3d66bf9388f76f2318b01695ab695663e3d946ab142"),
		additionalInputReseed: decodeHexString(c, "28c801b4e36ee32e694a9a61729dff1ececc953399f3ce19131ac0a3fcd91d89"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3cd659ed45cc8bb099f30b0f65aa6c2c972f755292921ef5b1fd5d99e38e723f"),
			decodeHexString(c, "e101cd1d5550e355b9bbd3b8dbb83b49b5d5c257be120cffdd27c9de3c0c2359"),
		},
		expected: decodeHexString(c, "02f417de4a968e668195ad1bbd647955e26be3fdba1b9a182e0f9c9e14b08f58b7b756afb5f0190ec3573f0376f51696b1b6a808842c187eb2a3c2ab6149088da1ac314c8d51651ad748b1a5296554a42355d14d61eda5ac70a648cbce45c918fcab9e053dcf60d1c3a75e824c8971141d393049eb19deb4b44ec953a0d275d9bd1424b66f1587b00f60b87e346277fa784579bfd0aa72bb18b259d275f1622caaa85e780ab77557852e332126a8c3c4e0ce335a7e76a56001e3990b53dd78b0233ddedf3313bd1d6e873c280f39c1157c24cca47ddade1dc824048561bfd96d6c9d2dffa927bcb1a0395b6f808c251ed9b0598b39d3e778e13baaf756a5d498"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_5(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "cc202fce16e538b58b085ca132e6ba98bd3f5b27542d2823050a6959101ffb4d"),
		nonce:                 decodeHexString(c, "9a9a105ea3d97c49162e6ebc379de5a0"),
		personalization:       decodeHexString(c, "d15e5b2c5a760ecda00108812e9bee55c1beb347cda3b0c2d21b93f426ef2c18"),
		entropyInputReseed:    decodeHexString(c, "973e3529ed9a8879fcb3f99c1272ec77524918a7788814b0cf3bc31a9ac37a47"),
		additionalInputReseed: decodeHexString(c, "224e915525a3c3141ad86012a7e54bfa9202bf1d55f3602879c3504648c46114"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9fd4b64450c9028210aa3ef9782d170d4eaeebfa91fc79c0f123144e3c5076ae"),
			decodeHexString(c, "a63b2a7accb6bc2c370e96ce303ec369884714620773d7848d8911fd74afc257"),
		},
		expected: decodeHexString(c, "6f497b2f95d7f3d6dc33d957bfb8d3537b1cfad43a3ce8d16e1d42c844f1050d627e10bbb00fb8cc932670b5fcef154badd977ca5b626bd80ef232d175d693a97da75372a361d80ecabc570219bf2b09d94ca9767ca714b7c3887aac185376ae45c81322106b3e0603749349431361d41264c38df19cef49e7be3f56d0212cbdb096908af5bf0a131a14255fa1b2eeb5d576e31d2b04c4bb229b918ec47753f0999bb6f5510db4b54c408df4e985fca2dc79190d7baec002bd2587866db91f12f95678705db9a087dac5a4591aa401da6810dfa45a0e9a41e6fb8d0438845ad6ab2f63ff95d16b899121972d2d17f0e15065499b615c5324cf18560760312e2a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_6(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f668cde883e5984295aaf8851e5d1de5a0fb7adcccc5d0cc54f06b8347208353"),
		nonce:                 decodeHexString(c, "55a1248975035b872da59149a5b3fbdb"),
		personalization:       decodeHexString(c, "60e2a5b3f54818897b83a1801892cc7256234181942a4cdc9ae65d0dc4a84593"),
		entropyInputReseed:    decodeHexString(c, "47df458dac649f65227870d5897927f2d0953422202f9c1233ef1c1b2af6ee08"),
		additionalInputReseed: decodeHexString(c, "68a5aadf78a142cf2629c97fb13a38c9c88490c9885ad6cef224ad33319647fc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "be5f433b166eb8796bb43c259cbc6304e1d557d24c3cf3b587a523dc51d7764e"),
			decodeHexString(c, "57c27115b62e9936c78056b6255d32979ebaa74a8a94c92e73ad26b287285621"),
		},
		expected: decodeHexString(c, "a295d586c7f3365172b54618cdcf475b6be376b7ac9f965aeee06dfb35913eb36dbacb1878896b7e345e7d5142977ae80ec6147e9d59c57160ab7f0139e25384a9e242724d2f4b6b7d339e6940aea684af2e425823b20c016719cbf36eff9160b9a5d63bab1d691eaf20ffe2d706c9433e2e52f4f3bbfae39d3e6891b2c1609dc45f6ae7b844e15b6bf77e223c4c1568cc0523066f12257c2a676390ea50c6e7697c9515278f560844827fdd13443cd558c7a4d248b12cbdf8539cee1c7b3d0980919c09ad54f149a4f7cea33f4e0b2e217f525e9f58149068dcde5e70923c57525406aafd54dfc18271ffbe5050508406dedbc968b3b1a0c2541ca78228ed17"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_7(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "3b9c147d0795519add7cd1f0df5bf8871d49479b006b915f3655073e4f0fab91"),
		nonce:                 decodeHexString(c, "974caaf8bf17b2d826d05e6a92f38e1f"),
		personalization:       decodeHexString(c, "3c2bfd43d57afa44774d2caf8c6048ff0f1551f7169e7b6a66d27e1832c1da74"),
		entropyInputReseed:    decodeHexString(c, "61b81087338403d5a97a93b0838836a231fce4d5557cb31d3990ad1eb9bd0f0f"),
		additionalInputReseed: decodeHexString(c, "2954ee82a3a8586d71d016836983eae80ae3885520ca430de4053b324c364fbf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b0e9dec1796c3bc3d0d41165f532931e14af8930520d584195c7080bfcd0e7f5"),
			decodeHexString(c, "d96608d581fb6098db8d58c335fe58caab2fc3d9ee011ab99d565334768bd4fb"),
		},
		expected: decodeHexString(c, "e0461a26245b672483590ddd099da51b3048028c43938ec0fff0e176f4fd3cf76b11a6899d766acd8535d23b2f7c167a5a894fcf6bed637d64ce1b102c3a60d2a2b3540c5a01b62e2fa3c224bc77ddacd36a00aed71a6d4fa8889b9718f5acc1431640f9a77d283ed10ef3f2e1f335e32f04e9901aac83a448f20af09c0092deafbbbe9746163f3b914ea63c65f5f3c2ed5f7f953b53e87cfa22b65ffced19c880a0222fe60ffb5b0c4234391325f6ff7a0c00e46ee20e9717bb6225d265522b95a1107f2181bb8d4811601c3b73758789c2ed349628dec2360f62073cf0e1b3b9992148a1854cb9de8a2a9afa7d9b6c2255b4cea89d4b58a8b708ccbbcd6a03"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_8(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "ba97378d99300208202fdbcbf76fa7193d4eaa50493bbb10f40b4f9cebe1e4a8"),
		nonce:                 decodeHexString(c, "1c352e8e9583432417097310471ffbc3"),
		personalization:       decodeHexString(c, "61487e71547fe8b04669e1f82b83f7e7ff28bb32f912e2a82f4001cfdae23005"),
		entropyInputReseed:    decodeHexString(c, "9b0ca1a60e96169481e2d51024d8c4592647081a73cb3e553f1675f07122c5ff"),
		additionalInputReseed: decodeHexString(c, "cee76d85c0b767b2a286deb93b1ece29d021fb06b9d21269a7deea5f031613a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "076cf7c64dbfa07e9fd4f18aa192183e9ea59a9d67c2f5e7bec5d241bd67fbb0"),
			decodeHexString(c, "a9942e98202f7138ab9ad863c874a909c788001f581d0f490e5dcfdefc933385"),
		},
		expected: decodeHexString(c, "dc9bc3dc354c322ae8a41bae0617f1353740961646dc7a97734f7e3f29a79b445a7db2be0c37ea66487b9f757b810cf64878db58172274a39cc8354c32da10c71d687570c5872042b99ccd75d5832901de56740ffa5ceb0ae8883f523ee7e6e3df30e440e4a0542315810e8cba750aec302579820de8fb56056bad441d1871744291925cd3a058455109dab2778f0e57cf90d72b73bfcf4355c704b8d9228b1c6d24e0459e69a43af165f2c88e3f14d53c31dac5480f79b887dba392ff25f27f1a87bc4016865565ca107522997be9edf241a4c9a4402963f1e3b0b4a27ab4a3ee31e46d11a91385a67cd675f5a91c0674577bf228be2ea19d2c4dc9bbceb85b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_9(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f7b60651d42f71dac4e6a2c7af28e2a5456d2a838bea0a75ba8f41c29b300871"),
		nonce:                 decodeHexString(c, "9cfa2c9f6b88b1739da5af96e3aaffeb"),
		personalization:       decodeHexString(c, "6628f280b046f478f248855e588267ad18454d7828f27f523ef5340483c07a28"),
		entropyInputReseed:    decodeHexString(c, "ec43df6057d281386da6e23acaa8a5fedb3342d15b6bf0dd7c84849097a6e9ce"),
		additionalInputReseed: decodeHexString(c, "e5a0588ef4e11499a91922d61924cc2621fa7e4dbe20c8f137e0648445ec79bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "53d4621d55a2a2269ada8b3789f03710bbeb9ee3d16c801051cc814c5957295b"),
			decodeHexString(c, "be96a7dbf9f9b36309b46a7f4b160d6c3135d21c2caf0401aa4d0b6ac77a1b2e"),
		},
		expected: decodeHexString(c, "65dd80ea5c8b4791241ddfb0b1aa32e48bb66e9d0992a6e2bf81fdca94646b978ae8a111f70a5dbb780923a835ad351185fef0708d3482139c8d3e2c85da69ce0d5a3ea457f18eb907d90161b4992a70c324eacf47c72a16fe6ed7153b8c740c037f003103cc46f9bb3eba04e625c4805e16fe88a1f97577478d4c48eaaa37e7bccfb3c51cf43f158ea93ddc5fed49eac0c8c1caa829c3f386c2203c9f4cdc577bb0acfb94aaefdf9fe816c74dc83f8eb3daf75fd77f8396d84ec2c734633a19634dba4425212edb2edb518bcf91fa39d5f668565f4ef8b8ece9dc6c732f5870990f4cc7e181490029c8ea8927631be521158d4a926dfe9aa78a1473c1b59b86"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_10(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "b15a940b8005075c98d2be2a504f10731a4d88442150225c4ab5957d2f67baa7"),
		nonce:                 decodeHexString(c, "26ee6bd76b263c7a3782c3bad56cf30f"),
		personalization:       decodeHexString(c, "f0764c484f3cb8400b9e9d0957f15ea101fa73c84a11bc4d3204166f7c9d7121"),
		entropyInputReseed:    decodeHexString(c, "659e3a5bc3ecdb42926c1be020a110f01a095781501a5df7b537827e87deaf22"),
		additionalInputReseed: decodeHexString(c, "8a480e1ccb3d954008766fd549592ebe07220fb311f40f3ea147a2cba96471e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ad07c7f6a55637086d0f4fbf03c85138d45d1b07c7333c23b84cde4879197867"),
			decodeHexString(c, "d454d503019ad4a5f8d99b77d331b9f9206b837a101bf1f3cd52ebb9b49ea77d"),
		},
		expected: decodeHexString(c, "34e35dbf751aed03175a122596222ea390a63678b036e7aea1bf92101907f12101e8e77e18aa953feb61390641b894b5d9db1e53d72cb77e175ef5a3a922a3cc4ba815b27fd9e27123cfd258279d67281ac6e1cfc22a8e2e3d9ceab7036482c23fee4ed0839609d228b84cea6c8e95c6f806b2dea2d3a5c76ab447daafa668025c61093da525950241e08363861a049ba2ebdddccbd52ad8f743fd9900d8d2a64d8c90041e795b7b46630f6eb69ed081a7a65bb43e286e680797e5a611da2d0e75f5bf0999c9dcd915336183885e501a0301e34b7a13ad924a75f56d103303c7e6d982271fd30a6d49ea4a30585648a5f09ec790ec5070af585d56d0c0d1c956"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_11(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "d6993401ec44ba675783ef67522e782cb33f9d2980f1f8b5794dba094d4895a4"),
		nonce:                 decodeHexString(c, "e3395eee7122bf03b3a1fedac097eb41"),
		personalization:       decodeHexString(c, "e3098148f33646d7572861f3e4586d64f5d5b2df2970b305a904cac2d13cf28a"),
		entropyInputReseed:    decodeHexString(c, "9982212ad8b00aaffa23091208108dd30a5a6539f676f227db1f68e8f0baaada"),
		additionalInputReseed: decodeHexString(c, "9166628d9a932c8bb7d8720d2125c07cbe13bb557e36a7c6cc18cfc27ac1582a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66a3a483ca4ac7e03c70ee75fa404ddb9bf043bf6de8a246111399c52d3996b0"),
			decodeHexString(c, "a29fb458c0465d2971b59f4bda0a81c02a96d58d64948282e6f29119253d7f36"),
		},
		expected: decodeHexString(c, "30ef7ae97c99a893149bdd341b412ebef24f65df227a3e1a9d0e04f7d31e77115cda07522375113a686f1bf1832d42e2c3f0ae53b93350f6d08621896995085233e02d5dacec966c193544072a792a4256257280e42eeb844152972cc68ed4f016a0a75db18ca31ebd674768cac79423b079d61a0b6aa950d42186add02ef0d28b5c09524360bda274af0f4a6ed9ba465f46494894c5b7b02f974ae50b9702834398299aeac3fc26118a9ba8a6d4b19f778259a366eb262d8f93a3d25454621e2f21071c107592dc35345df2b9ff0f2356693db626670f401ad18786f9daa9a2a7d426566b3822c67ac3131b349ffb2a6dadd7110ac32516248ecfee167183e7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_12(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "f0d5b6eb43fef7131894cc9e7ca8c9122140da4723ab16444d4abc5184655e07"),
		nonce:                 decodeHexString(c, "16df8b4ae54188812b8f93eee07e1d32"),
		personalization:       decodeHexString(c, "ff9d0568208d1eec79b43bc00a6bdd5c0cc86f3d43c53d64a9caa6e619092ef9"),
		entropyInputReseed:    decodeHexString(c, "a0be1ea46e520c2cc175da7c8f24d2edd665acccf3937a18a421a9c270fac8db"),
		additionalInputReseed: decodeHexString(c, "8cdd3888d8fe646e758e0a43d47a3acce4b48cac4deb5f4ca224181de3daa6bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25c8d649e6c9dd52dd264a58c7ee1cbe5160e1518ee288880fcc0ccd4ab2dad5"),
			decodeHexString(c, "53828a4c568b3fd70f01a0e49a76d4f4c9b2710c3cda18d5cace8aa22fa99f2b"),
		},
		expected: decodeHexString(c, "78230fff1eb5c5c62cbd5ff9d373ce57b377c0dd2d3ca4ea83ed21dfad1cdf51b5c6fadc83f66a2f38a6ebb5ca829f57a5e5f95aef8c765c76d457cf44a648391beab3bff9305ba85b75f39e2e6f26eb52c53c5c2785102a1e759f2e296b0c29ce4eedcda63cfa84f83323e2ba31af00d1b356dd15458d8da2a97cd2b696da5d008b1431bf9df99c81982403e077da35fc586b842584533ae99587f88046a5cea344f49783c80b75f316bebc584411018126e6040bee0800212638a8a7031085795fc9fb3c286909df9955775a89ee9e24399919b8c5e633754c2041cc346b7d78dca3d61ec74efe1ab3e8db37fefb704e3ec0ad8358b2a6001cfb98946dff8f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_13(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "5a71f4701cd5e9f79e4b1f3a7e45d9721dfd2ca5a72ddc10518eb8e51c8e17cc"),
		nonce:                 decodeHexString(c, "940fc3d13281eeec1e69413ecb15a34c"),
		personalization:       decodeHexString(c, "71b7422b938e4460ebf7378eeaa59f70569a8ce7a9e9f4a8cf355fdbe637c59a"),
		entropyInputReseed:    decodeHexString(c, "55ba8d09ef4f06cc5ea3f24a379e1df78cc4353c532370339f1af13f6b955942"),
		additionalInputReseed: decodeHexString(c, "b76734100d5fd13979c83900fa16fa7b201abff087a071ad2e40e842520c2f3e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4dcfac6238b1c2a38a404213ab1dd554d3593dc740b2a02a267496381091748b"),
			decodeHexString(c, "beb17eccdd995123cc7a562b68b964ad2f6b2c1b5e9ce1582032bf2ff5388281"),
		},
		expected: decodeHexString(c, "43a384421dc7e14bebfeb9daf71543b15c356a9a4f08a08166e93f433c067c765a54d4e1c7086bf66f5a3e7ab19c3217638a03a15f1db3ee87c98012f4a260cb04ba26e0e9448e920c634eddcca86617273e68e46a511d88fcbe89df6372a9ffae5b1ee0579163538f94f330ce2eff5b8a28397018c02fe68d36de9788750faf2875c0e5a840727d45ad6b169359cda0971a511fe64820436598505192ca1aaf85958d201936f2af505286473731d89a1c664d4a528c25b334011184fba1fa6161f1cd58798134f9f3f6316db951bf6be1a11b0661eca2375009ee1f836a20f2897bbd8826649228c703d1a7660f4af2fea012c3ceba1870beea525b6e2311a5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed79_SHA512_14(c *C) {
	s.testHashGenerateAfterReseed79_SHA512(c, &testData{
		entropyInput:          decodeHexString(c, "2c482cd392d9b8677ff319a7ad539cbd8a24ebdc2b8dbcebbc1d1d0d0bcb698a"),
		nonce:                 decodeHexString(c, "27cb9fffccdd7a3b2856fedd6817f1aa"),
		personalization:       decodeHexString(c, "be95711754beb1b25a46d504d19bbf44232c39533233f6ea84140ca1d470fb10"),
		entropyInputReseed:    decodeHexString(c, "4f39a2b6309af32a1c721bd2a31a97814807644303b1d132239364a36d266f10"),
		additionalInputReseed: decodeHexString(c, "947d7b372c909eae57bae64d7a9bbf75234f5cb05c093927037f632dd8567693"),
		additionalInput: [2][]byte{
			decodeHexString(c, "651f03a8023434b2af28a1fad94b31910152d49a1bbceae32bccd74dde60d92f"),
			decodeHexString(c, "934a97d6ee4685250ac5e51159e5bcbc48a6f92c7ce7bfd1c61d0e7b0a0e7f61"),
		},
		expected: decodeHexString(c, "77ce58af822a11f1d6dfb2be246aa6549e4c089e1532aeba3e6f13d19635930f7024f94399ba6c84dfa3cd9c7806d7b769c096d33415a56be1096618d5bd80d7d649950ebcfe7418e9f233acdbb7c2ed3681f5dcd07e741eecd2a4675ac8db7becd2eb77f164cf5c7672a6e9e619254c5f231c85344c3461fadb5f191706dae9fc2cb5d61c8b36b3e1af3e82cef8e2a9ca76fafbaf4d4bf9e0f9b0cd5907d4069e0ef4e1f11a259963c9d8282f36b27b75683958a165073e692dd98208d6dc17a791fd9c3dd54554ca6b656750b77b1961c917f486ba3dcffe78de2b346cd38b4de234af1a3566ccb86b7614e99d96624ab3919523dfe9381dd57d4d00f00b6d"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed81_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "aafd15ebcc9e8f166f6fc0a3383f2f8bf251ea961c3118b9"),
		nonce:                 decodeHexString(c, "d91d6963b545f1bc96411d03"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "51b48d4f8128270db78a2c89559b20e4aed78378a6b7aaa9"),
		additionalInputReseed: decodeHexString(c, "eb8539d5990129baa80d38591fd2051a7177b4bdb40aeddf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4790e6708b44c18cab523aa7c0180a250a3a6197e194890b"),
			decodeHexString(c, "653ff208221b287ee3b7d9ef43ccbc4697ef2cf472ecdde6"),
		},
		expected: decodeHexString(c, "3bf977fdd710bf9624386cf5dc5c3374f2f0e89098f6b7be3a95b1c74523b8456e8f00bfccbf92036007f288ea2b54322c69b092bcc43296b81ed61b5f785c40b94a019bfd6a8514b782e23d9bf153987a7ecb68f6f64af60f1bddcfb57c759da57801c6ef5656bebdcfbcb5615d762e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "5f2fb6838fed121ff938c8bcaa088c4a09b1226ed4911c09"),
		nonce:                 decodeHexString(c, "ab73cbc9b192e63f00dc7e30"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2a337695e7256648f25b2cb7c1019c8f4506fc6d2f76fdae"),
		additionalInputReseed: decodeHexString(c, "7a011ed55d61b9cdb542a879a178aea7f22960a7689007fe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "735779b8ba8f8872ad0a9bb31f975de2a49902615cd95914"),
			decodeHexString(c, "129e406a45765eab1a91e902162d6aad2fcea15071df3942"),
		},
		expected: decodeHexString(c, "f3162b96264f53b4781ebad35eb94e97be464d07cec465cf436019cd12f69c0a21367788154463cf8cb7c131f47737a0a62665a5e8410a0c9af91395320ce9c2ba11e77098027e469fa3e9c4af5edcc3be909ab31c1a4c1a6a5baa5d5f9b2ba2c52cae5560734e0449616022dfc2aac6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ce905d2bca6b7ced2ba52b23c1d351d0f54d4ee28873928b"),
		nonce:                 decodeHexString(c, "f52b849e7ecc7ffa1a3e436c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d802f22d4fd439533f39335aa7427d3fd04c434bafc18042"),
		additionalInputReseed: decodeHexString(c, "66676f381056b51a79254db590c2684e51f4e64df565d84b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d505fa87f7aa533b96dd1951ab96a33039f91005a0ed4d6e"),
			decodeHexString(c, "c89ac0bde33b6b738b398048db0d465c58a157e7a51a2ab0"),
		},
		expected: decodeHexString(c, "a20a4dda15eef777295108ed561d82bd3778c0ed5960e3972a23bc0bba96ee0deb21af76ea87e8b5e913d423917d716b5f7d996052338ea1f64eff31ee4bb022728f2f2aeb37d527d926fa99f8ed07be582535b445795dd19addf336dcbf6f5d8de9d7518051dd6a70dbbac3c6f85dd5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "98d6b89ccd5244ac9e766cdf62ed018624b76629dcdd7794"),
		nonce:                 decodeHexString(c, "2fbc567aa417fbb1cdd26535"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e1c598de6cec57dbed8195c366828389f1296900a02ace46"),
		additionalInputReseed: decodeHexString(c, "41aa79197d5a882d3c49cd3d302b39e68aee35d8ead7de4a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "39809e9b2d6b6c26f127edafceaebb72884cb29dfca52163"),
			decodeHexString(c, "e3c81fc45569c9a5d5913fb1beb9f4663475b2a4af596ac3"),
		},
		expected: decodeHexString(c, "26ca3a639295bdff8c5cd4aad8ab5d57a0dc13a01a1dffc734667e94315d06063a9b97442eaaa47cb00a68b7e69cb1d37a1b53d25659b4701213cecdd78326b4e0cec4557e6b20a43f7482e990106d04b1225ebccd0181d86c1b58e6f9677e2d5260706410bd1bbaab77fa9b12671418"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ef6fa238aa4220ab6d0ed23852d268f0b919381b00ec737c"),
		nonce:                 decodeHexString(c, "f6eb7584b5aedd1fe198137c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c894218a1395c7f8dba849937d7e588ca265984373c69aee"),
		additionalInputReseed: decodeHexString(c, "08d8ff4ad58d7a3841df0485f0e634839be4df971e43718f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "567e39490ef396b60016cb696ec1c4a8817e845abd2dc594"),
			decodeHexString(c, "7ef00c091f15ea34a22e0b0c82b0d7b25a3dd7f4e1f53bf5"),
		},
		expected: decodeHexString(c, "47dc5b0bdf633310a6f770335add1d1aa2dd645cf3db665daf147869b4a50333a013055aaf918f89c302bb8e02c397f97cff729780492301459f4800c63c99a416dba4e7fffb349e24ae99d37f6b4588de9d87c802eb16d0f9b7718b37507b8aa7d4c8173eb516956f6a3e6f128715d4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "57778d8706dbf6247edaa6ad5fcb6488d579b7393cd2ba30"),
		nonce:                 decodeHexString(c, "86da16e3ed0faa7562cb7b4a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "89116cf64ac8af1a7378a53f3aa4be6115d77603051466d2"),
		additionalInputReseed: decodeHexString(c, "f2389ae8745afba8b79db93800d654ee22aae2b41ef705fd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1170cea2213014db8dce370fc58384e98bab5983096fe17d"),
			decodeHexString(c, "e83ad4fb888d106d41936b87e851da1917350e7b08329b41"),
		},
		expected: decodeHexString(c, "914b1c1b9eccc48393d10378f715ca355d68a2e66734d1d0dcdfaf5594fcf79672e4612a3f2ef34d78ccc3899c8d6a341f7d4a82f166a17b93d457542b12e60ca983f27b6ea290a0d63a3f6ff7035d90a2c3cb92fb3229fd7296501e7914c7b8ed0f2fd5e514c94ba5f78da40db00800"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fa9299b00dc5383a12b860686dc584f625c401f2f86c5126"),
		nonce:                 decodeHexString(c, "f02a7359711321a489614af7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1bced3f0c546cfe2317bedd814651770a464f44123a093c7"),
		additionalInputReseed: decodeHexString(c, "7d6cbd47d4e35f1f3df74e5a14fa4a8f124ec2fffabea2a9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "42eb1c045d0cd4793f848ba5656f2c7eeb40521a750a578c"),
			decodeHexString(c, "ee02060c4351460154074ee2a5b3319e0d9f4b65e931f1df"),
		},
		expected: decodeHexString(c, "f626c62ff767fac54f691926f89e9f0a91f875a1b23af743fa91006f2d1fa7fa3ff21bb568e83548cbde8460cf3d490e43cc159c9a1ba1a8ff1535fcade9017dc1c467fd30b5898e015daf4f676b23938e9e3e3bda9a6596676302cdb9a589408dbf075cea7626dd888bab32b70cd06e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "70b467c9eda81a9a3476e69dd9b341ac9c2ce8a00ee0d496"),
		nonce:                 decodeHexString(c, "4df0a4773acea5762264113c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a1a7a4af68ed91eca34118928bb63ea8b30fba6cd524bd45"),
		additionalInputReseed: decodeHexString(c, "57bc1c3f07d724a3aeb4b3cb78bc361df23ce8e5b31d10a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "67ea718fae8685ab54206bbdf7e39d38a539275073a62c0a"),
			decodeHexString(c, "e8d2d8b97f429b4f76bf91d16b157d3bdc71fecd6d73d0b8"),
		},
		expected: decodeHexString(c, "a6b9e0c6aec59c7fd53aec5bb3d9730acd189d26baf6436c3186f623206e99b739bcde9147541b653635ecc82cd951ba341b1a258d6c0c6f680cebc645ef6c140abbe4ea052c799400b55813e5baabf3b3bf7483e6b9045dbe9259d8161764e909c4d66f3b876eccc31e278462cacbd6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9d88418d3d17faad8b12815c512d5fa4f0dbc0545c8b88b0"),
		nonce:                 decodeHexString(c, "e849b768266c24d74f527fe3"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "68b7db03a26a704f2d1e838bd0300452de5dc9cc6f9fbba9"),
		additionalInputReseed: decodeHexString(c, "4640cd7e27ce29680f3664361a4b2db1112687a686b25ad2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d10ace012a794fa8711548ea3d6e4e7919a4dc0199cdfd90"),
			decodeHexString(c, "60b5d266f84a8db1e2b4c534c5744a811923093e17588527"),
		},
		expected: decodeHexString(c, "82136348db26c1815dde2f0d8b1cca0a2167133faa7580ca251f7325d706bfe0878f9e7ee57c259f39e18a1bd6f53cfd6d070ee2fbeb5b67b46899769ba56d8171db52abd9713cf455aa82318e12b9264b22768b57d07bb6a6b7bf29cb41b7b64102504e9b36b6d09278ec3905ec1606"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "85a430ad2fd37884e52ed8a1d097e37f9bccadece47ca353"),
		nonce:                 decodeHexString(c, "53f17a149e14c6bf126f8f7f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0d761a17e98d1ccec3f0ab3241b9d75adb9b612b56be4242"),
		additionalInputReseed: decodeHexString(c, "73dfd15dbf24d81d58588a932af8dc25bc49d340702376be"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f26ec11ff9cc7dd0385f83f51d55c23ee7cfdc8bbe6182ec"),
			decodeHexString(c, "1c2357b72c058718715cea8b06155750ae5191a32247d48c"),
		},
		expected: decodeHexString(c, "08c1be569a3b619ca57e7d1d0ec3769a3d423a156edede855bdba38b5a0b53c7f91bca0125ae0b4ac2d01614d9523491a762729d9f575b222d0fe683d895f40a3a74d8ff6ef42102e06374a838af0f2d15c86bead54faebd7882698d2b2f4df665f8154a591c003fa869f25a4a7e8591"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "effd176fba3d9e1c275579b07ba130cde571d0c6676318d8"),
		nonce:                 decodeHexString(c, "506d2b8004a79db1c7850fe9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1b310870da923bfddc2481af1aeda060faff5316aa7ee64e"),
		additionalInputReseed: decodeHexString(c, "23a0cac5de2f94a57273bba87d87490250fe18fafc728918"),
		additionalInput: [2][]byte{
			decodeHexString(c, "fdafbcb85469bf7cb5fd581bc6885900837f2545dabd1941"),
			decodeHexString(c, "341b60d8368300d8b2c81f84d3fd07d3c6937d7443fab12a"),
		},
		expected: decodeHexString(c, "dcd07c0abcba7482a64c83eaddd12403d93d59c611eaf41cc311915dd2923c0bae9a0e66be7db2ff264690e77960d9eb37a0473446c97c078c33822202d34929293344757f2c87e74eb38e4d97c72effa36ec172a422cb2aa221bcaaca93e682ae4cdead8bf57b80f4371176934f5632"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "8d4e4414c721d7458be0c56adacc1d1fae36b83fe2956436"),
		nonce:                 decodeHexString(c, "d10546cc598b6993afe6632d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3c4f869b50b972fc991263e72040a79ba4947d1d11fabc3c"),
		additionalInputReseed: decodeHexString(c, "70c2394138f59ba60247b717d4b4732deddba2617c01e876"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0a1900ccdb35871ee7e6db0ac3e95df2bbabdc39ca0d9042"),
			decodeHexString(c, "97ace36cd3aab76c497b5730b2e8af14d30bc6c2686d6da0"),
		},
		expected: decodeHexString(c, "9113b573250b64c0a33c851483ff9cb11ca0c6f59bea79c32774629a7b3c72cd7752468fa98b168ddbd8b458562d17de79690539edfd20c91befa8136d6efb88698e5a17933400f636bde5c041e4b4f955b05479f57573ab986fb7a9d67a973d48ad191258ad9fae563d69cd225f37e3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7ff5f6e0383539e23150335f876ce2c285ee1046e9f085bd"),
		nonce:                 decodeHexString(c, "6b4e62f5b15ae3223c3b73b8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "71a7bde9c0de7944c0e38460c7004819385b24e88fb2a384"),
		additionalInputReseed: decodeHexString(c, "d190b9b14be08a77f05ab71e3f27bcfca3129b09dcaff8d5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7892ccb258e758b2d67448166b8f543219f63ae7d51c05eb"),
			decodeHexString(c, "ae60ca011bab549b1c349a8449ac87db4d9d0c9a0ebf52ab"),
		},
		expected: decodeHexString(c, "6a97ba88bf73e415e2bbd07d541ee6aa7d5f5a87b96bf55850b19a7422a9676c6d7809c1d3807aa43babb47c468f1b8efe3d6360b6fc1b1dc28f71cb66c90fc9fa8e6f5843dd0918801e71a5fc8a0bede29ea8f977a2c3de41316ab4f96269372b314900d354a137873bde40d8a5f8e1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "57ac65efd64b57b2b9e9e48acbf9a77f008811244cc1bcc3"),
		nonce:                 decodeHexString(c, "ac13d6534631a03506e0ff47"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7c844d5954d4eca49215d58b5db571b32171099c3aff4725"),
		additionalInputReseed: decodeHexString(c, "ac94b68edc51edd55276dc4a79ceb0439ac26aef824b1c3d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "76cacadca6d7402546413f923ebbf9b533ad4df9f0bdaa09"),
			decodeHexString(c, "0d0bdfda9c7162ff5f3cd9bb2e30a5464a2a978c13126ccf"),
		},
		expected: decodeHexString(c, "de12e11e042aa4aa3e2f4c2559e2d084887267ab260cfe6f482d73ce59499006ed1846a459528cc6981bc0ca963d0c7c70970842175096e94d509c1dde65475df1b147409d27fdeebff03a5dfc40b1044e837388c4c7266a93bfa792089d731d41592acfd995fe152fe9b93a23007158"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed81_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed81_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6bc57a30e3111ced90156998d6b9ecae90567318c509a734"),
		nonce:                 decodeHexString(c, "f55a13e019976eb01d886cc8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3426a9046f4e288ea649974b0ce5766fed59e16e2a55567c"),
		additionalInputReseed: decodeHexString(c, "19e6ec90e11c450e33b89ddc84247743f3d4feed2514f0e8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8267f1ae6ecbbab8666daf4ac254a1b3d78c0642c69f2f41"),
			decodeHexString(c, "289cec3ed5686690ee2f978798388d134211cae8b995404e"),
		},
		expected: decodeHexString(c, "ab3996fbdaf88f8a868cbb31c2abeff0234d7de6672c208a0ac7546bd50b2924002d8c300b9b0b0364308c60208191e306fa68b78d2feedad9cf4a61e5b3f4c90524f38cc091b11284de7fe2f1f209a01db82e66f169764b359f46428986303d04f3fdac650b3d3bb2931c281c4073ad"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed83_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "4a94d8aa827ba2b0f354e5d20977a488b76201311b789e6d"),
		nonce:                 decodeHexString(c, "6ad176d4a3d713fe4d1a269a"),
		personalization:       decodeHexString(c, "c3619cdff70457dcff4a08e498003bfb7050afe77a7ca841"),
		entropyInputReseed:    decodeHexString(c, "e16e6ce422207a2b8c98fd4137f5f35d5127cb6d0eeb72ef"),
		additionalInputReseed: decodeHexString(c, "738594682f2475217220c64804f231a323e1321cd657739a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7ea2ea8fd7cc306275189d55e78ba809e5f28d58cc5db8fa"),
			decodeHexString(c, "6df7388057a8388f18bff94b5f9c6545e275996a600d8e15"),
		},
		expected: decodeHexString(c, "945c36e2e285da9dcf6ae59db153fc39eda3c5c5a035d68b7565981eb2b6dcbfbd1333a607159fc55cfeeed516e8956303473e07d3ae0c9754d82d4d6833e570ed5e9c548ac8038534bd8cecaa3def4ae86bccccf10fc2b3bf666e8b108cbeb237da2d299aed55d9790329f78a70d296"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "0904c6d8d491d0426a6537f40ff80e49d9ca411ef35e64a8"),
		nonce:                 decodeHexString(c, "ef8c77a9d1da78d31c444b88"),
		personalization:       decodeHexString(c, "5d117127e78c8fbe5e317b55cee5e16969135ee3e58412b6"),
		entropyInputReseed:    decodeHexString(c, "609580bfa4092d9dd964137fb67ccb7ec9601a1bc1c872df"),
		additionalInputReseed: decodeHexString(c, "f6c4ecfe957aa029f38ba791e8852aedcc21e4983ad02b44"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec5538f6ec3646cbd1accef230076f38eaf644759aad95b3"),
			decodeHexString(c, "f5969fba084bc9fa097e7412da650e53eb59dcafd8667848"),
		},
		expected: decodeHexString(c, "61a00ede66e9da95e96a9a60cba9f9873171264254a3d58df716ae32063947964d7f64bced5bf847a3cd570407e7baad960b796d9b656a04ae554ece7a0b02d6857b7690494c20d4c00711ab55c0032f246c608ee1ee094ae4658bf0a0374cd3bc2ccc9f36fa7ae8deee6e2f2794a896"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "c51d286d03135f706324a2cbdc70b25854d725dc7c65deb6"),
		nonce:                 decodeHexString(c, "7d24acefbc5a4c3db2ae0cad"),
		personalization:       decodeHexString(c, "1e34506e9252d830d89ea0eba084bf5648c675fb69a10efa"),
		entropyInputReseed:    decodeHexString(c, "93a70f60e1a3d2375d0a72863267eaca289a70db4f1ef4a5"),
		additionalInputReseed: decodeHexString(c, "e9cfb12e74fe501493179e95f4dfc9ca17a2ce8cad768c8e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cd66144970ecea4a4b69313ccc8715723b004386f83bda1e"),
			decodeHexString(c, "af2b9da08cfb8eaeb987476d1bb3d41437c18b6b3fcac9fd"),
		},
		expected: decodeHexString(c, "09af8875689ca70066fb3470ee9ed2ff4a1fde43af58f36351862dbc746d794d57e17b137d366be5fffa8a6dd480fdf719734dec65e8f934e5980a20ef749464afd73611bf7e6a326937328ead582529cbbe581d4a08d2eeaa9c84fa68a54bc523c45e5556681594f18ffa87663fa310"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6ad916e2a4217e5a6a44a6270e6ec25d6f374d68cde746ae"),
		nonce:                 decodeHexString(c, "878150109f5ff956e7311bd8"),
		personalization:       decodeHexString(c, "cc13fadb0a14b4f6d5cf1ff30f1797c27d032b370a28a5af"),
		entropyInputReseed:    decodeHexString(c, "e973b680ccfb51ce8cf5b94e9b03baded565b268d182949f"),
		additionalInputReseed: decodeHexString(c, "f1b35d904cad45fbdc122e665ebda2807290e364f0f1c6f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e6b3d6a196de2e407f4fec0f74e3661816691ff3d66e80a5"),
			decodeHexString(c, "ad62c59562b4c086683467fa5c0474cbbb073e5263eb3bdc"),
		},
		expected: decodeHexString(c, "c9f2c33ad578966e0e9adccd50fce4529aed241688a86c43db69f064f5b114fd6c08476af6c6ee8fce67200da5f469290dca87c7eac3aee6f04b108c5d5e8d41d6c0e123915f1d962a148fc33378c1999d18590840f246e004d24399eb3270cc063e3a52040630f1a598e871d5bba8d5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "88593266dce222bbd4f655f8fe0aec1e5f6650f8bc4deb38"),
		nonce:                 decodeHexString(c, "356dece5f0482b4c803ddca9"),
		personalization:       decodeHexString(c, "82f6cba24f023966984e6ce106cc34841b7c30c72e3c1947"),
		entropyInputReseed:    decodeHexString(c, "a10d03cdd37d8e685840e00e76dc21817371f51ab55070c1"),
		additionalInputReseed: decodeHexString(c, "ab51b90cb1d780d6e63436e4a3bbc297297046ba0e9ded9f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e16bcb6a719ff2a564d56b7d3548ae8e2cb668db6d6e3605"),
			decodeHexString(c, "9c23a3c496fde05b51cbca630455b0cb1b1e056908a38184"),
		},
		expected: decodeHexString(c, "cf4fdbc791228ddde7c72179da8719c06e6a9d10ab17df33eac483d04050afd8b17b6fe72a66d9847822a3d57516fb62f4c008096612141ce33d977bee4f52c2498fe9a05270fd84e9137f10b2e0c5573825ee9c8e5ab5379b73856d863990e40709871cc979524ca2bde97a2b43d80d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "b0ff6e0251724c632d62787d81ff4e9467a58b5a291b0196"),
		nonce:                 decodeHexString(c, "a89b311f9e12cc5e61c79c9c"),
		personalization:       decodeHexString(c, "8e3edc84fb01cb503959111e65aab552016f0817284c6153"),
		entropyInputReseed:    decodeHexString(c, "5383c3afe96ff7117612c0251b9793f61510ae77c192d068"),
		additionalInputReseed: decodeHexString(c, "cfbbf18cd67a8ef4d156a354f3a1e60a44beae3774747939"),
		additionalInput: [2][]byte{
			decodeHexString(c, "399d3f1d8441fc2c3cbefea2055704dd26bf909299d877f6"),
			decodeHexString(c, "9063eabbfc43fe3744dc2711c48754dc06d7a606e30bea5b"),
		},
		expected: decodeHexString(c, "c311e8625a3bb77824dc2fbc7ac1f19d50c008d1c353d1a0f133c64feddd985b85e1865456bc003041810da31101c3220b32dd5966e2f53f9a91c1d18d9ab83dcf89537d286c129986e26248bd50af0931e54933ed563d4b7e594d9407c89f51f0c9933575a99c671737ff682a53bbdc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "77c7ba088c60166e73c92de357fab5b78a148aab203b2d46"),
		nonce:                 decodeHexString(c, "a3d9253512dbaf7a73dd1432"),
		personalization:       decodeHexString(c, "70112571d94db2391beb16e592bca565994c245e931efd00"),
		entropyInputReseed:    decodeHexString(c, "4f815fcadf6875f569f8297570943df2b9fa8ce1b4c58c60"),
		additionalInputReseed: decodeHexString(c, "5bf9a9dd478706949f85c3441c6e562bee5c3e75d5a95cbe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7a4901d05dafb4fe492fe6411bbc1c29aedeb39da911a112"),
			decodeHexString(c, "911275a0dd6ba306b19ec3bad4b1715db698e15dddb867c5"),
		},
		expected: decodeHexString(c, "ad4081f67d2d92b15429e3618ec615767e964d14f00089a133e4fffc7e8386aec7cc2658f0bfd9afe496005997210f1bd24566aa5a064ef43b7366d377332b6b2e953584ad675ef48cedeaf83a11dbc767c2846ab936eb61ba291b1618b7c120587a5c6a9d460405581fad3992394ff2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "349c92aeec0a35080c792425bb93ba845a7bbed30bee7bc4"),
		nonce:                 decodeHexString(c, "adbe966b9a6305a97d3aab24"),
		personalization:       decodeHexString(c, "2face675e88bf00354d80ad86d6aa8e636cbdcb5dfa87b05"),
		entropyInputReseed:    decodeHexString(c, "dbdc97dbd13e7c1b0de6fb44aa1e1f5aa8b5dcceb5f18e27"),
		additionalInputReseed: decodeHexString(c, "3087f6b4b9d6331b2e3df9b41f56882c15e27eea016891ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24c6489eed7f1c0cd2d4712bdc5cffaf5b7a04133bd9f98f"),
			decodeHexString(c, "dab73c99329aebd6e29bf1e28eba3a3877cd83bbaf0d6bec"),
		},
		expected: decodeHexString(c, "903d8e811e278a88a6fb34c731adf394d3e0c6f815bc574d2ab24b869cce3288ea3788ef625f9ed954c954809e64faf6aef0dce6761742cf7232bae18b812c394f31171d217f1dcfa1e2da63111f326d307e46f745774b91fbef1637dea80d876fcdb46ac413181028fb8cacc2222531"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "44636fac8e351ccae387d7bdf949b168d0bd518874aa8f6f"),
		nonce:                 decodeHexString(c, "61a6b35479503ad5a0181875"),
		personalization:       decodeHexString(c, "51e4f46e312d4e68d09aeb35cad6cda216a5f8747197db23"),
		entropyInputReseed:    decodeHexString(c, "8538e05849482ba371afebad9b4270c8f5a726c36a28a8f6"),
		additionalInputReseed: decodeHexString(c, "384d6d0a24b28d33b8a597bc440ca75c6fe24866a7e6f03a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5412bb19a80f2f528f4675aa0b00124464efd7d1abc22b73"),
			decodeHexString(c, "d04f1645121583e6f9a1b1e0a8cc6af24451e970d476fd1b"),
		},
		expected: decodeHexString(c, "b4a27a0e6e4537deec4421305de9f133a4dc53e81dae545c0c67a82dc416eae1652f21f2dc56fd89198ab25827a0bff0571429ca44ffc07073fac68a178f1b8f306be547e187900be50883866e906de8095629c68280ab9b3fbbb98de53c3175730a68afe582adb41472d3456914f73f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "81151f9776d8582bf8c3aa34e1f4c457b837ff8abc3e053e"),
		nonce:                 decodeHexString(c, "e255f55b6fb4ad10720de03e"),
		personalization:       decodeHexString(c, "4dd30a4ce06bab02d8ae6f260720694a79bc93325d66db92"),
		entropyInputReseed:    decodeHexString(c, "183acb35005373c812305694f3ed7ca46ab3f97e49753f2b"),
		additionalInputReseed: decodeHexString(c, "6d7d8e4988432fa687cd5f9a9232a23a14f80b1b1738f9e1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "789be40a3156463dbe74b5b87f44ce199a9d31111a9d97e2"),
			decodeHexString(c, "4dd1497a743e56236efbe8d956e1d18d8eef98e8d4ebb5fe"),
		},
		expected: decodeHexString(c, "4a322a23e19356d7c7dcdb95d472cd4da76927f6ac015227146b9372d23f8256195a32080a353fd1b087f9d55bef68123b687d7102ac6eac55cf1036a9c4249a97dcc7c9249c03b63e94f7d7d91236bd672a752cf5d0643d2f4e42f46bcab3b5aaaef139ed2d87c00592606a3a082d2c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "0d533e5718a9bc593ce5d7b5e851d71b720124e73907920d"),
		nonce:                 decodeHexString(c, "a5967d8198138cbd700917c0"),
		personalization:       decodeHexString(c, "ca2f83f4e417c33eb5578245d0da4eed213fac6b614b9d06"),
		entropyInputReseed:    decodeHexString(c, "cf6fd97e4251960a1642d991115e3de192e4e16e13462592"),
		additionalInputReseed: decodeHexString(c, "1c49fe7e4313af0999b5e6ada620593ced8b15f5567c7357"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b0d89536aff7910d13dce592accf218352060780caf0224c"),
			decodeHexString(c, "d84d45220cda4584d575ade1e91a0f81776c864ac923b007"),
		},
		expected: decodeHexString(c, "46dd266518c1f1ea06cce8dbe5d4f8343cccdff87563fb5c33f8698fb23450e44ece62db618d5daa49058ce8fa9c0192490e40a9a2cc592d81bfb4dc811460394288d2472aefdc239ccc4a77b0aab43eab248677992db7b95d2e9697db1bcb31237fbf147c1ce572ee5cd383c27fdbc1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6999da9cf94c0e873ef8e7a5fd69807f10d7019882103454"),
		nonce:                 decodeHexString(c, "98a217b025f9c0f5cd8028ef"),
		personalization:       decodeHexString(c, "a9f5b47ea02819be41a5a64c3ce24f0168803b2e5b921891"),
		entropyInputReseed:    decodeHexString(c, "8a5d97d71aa824d6954aeeb86ca59d7dbf8ef392686a0cb4"),
		additionalInputReseed: decodeHexString(c, "b032ebd5f664add9e8ffb40003a2567ac7452e84f07df811"),
		additionalInput: [2][]byte{
			decodeHexString(c, "167f00d534023e8165e5284a2c32f49c0dda217db664a43b"),
			decodeHexString(c, "3cb837b13a48dba786934eebc9eba39ffe50b56cd1ba52ed"),
		},
		expected: decodeHexString(c, "5b3d10ad6bdab91dbd9e5242bc1a93aae13eac6e3d46566e4624855899e1ebceedebffd7d5769ddb193f8cc34d54c391851f0ad8d8ea937303485559793b10b3fea1c82418e4dfe898164f2f68880e8b06a91daa85f51028032125ce44ab0132cb42d9dd44aad73a75d3facf9a63c43e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "22794fffbf6897d2c6948475b679063f904f8f35d89a25cb"),
		nonce:                 decodeHexString(c, "12eb1b0874c9841383638135"),
		personalization:       decodeHexString(c, "b9e1911f45806b4f84ad6d103851c80c288f7e1e8af3db84"),
		entropyInputReseed:    decodeHexString(c, "49412f51a1f47b19ff2eaa0dd68eadfa4b7a75617a0556ae"),
		additionalInputReseed: decodeHexString(c, "3697a2b90bd289b33d9f2ad92b8414d8cb14887c8f5322d3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0f6e6a04fc967e29df56a8438479a8753f586c38589e1299"),
			decodeHexString(c, "19982e62a8660bb62e1fabba151201f1709b0a6470ee229e"),
		},
		expected: decodeHexString(c, "d78eefd63edbbf1d7dbce75df512b582398add5f310f689d68bc518412990f1d4afb16f0283ace28475c17035e919ade97711fa50569ec1036fd56585518fc5e7bcd5b4b8c54f8a08b6dcd7632ae5649c4af2e778be00a65ee228b1ff907821f323937d8561ffb611d293574740e5560"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f446bcaf0675a55d51a8dfcb97d8e3abf715a598fd6a04f2"),
		nonce:                 decodeHexString(c, "312c8b098a9c081fac608a26"),
		personalization:       decodeHexString(c, "056e8f1855d8d95b44f35eb3d5dcc02ad56041f75b54cbab"),
		entropyInputReseed:    decodeHexString(c, "666cab89088406c31cde3dbe14a70288ecb980c45df593b6"),
		additionalInputReseed: decodeHexString(c, "6ea5f565f1d0a3e9244eb3808a41d9d2d522a70317ae0516"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b2113fbf73ce982bc3959d4d1d4c9fb3c53d3987e5465c11"),
			decodeHexString(c, "3c021c0b2672710bb0fa075bbd4737cc134c9428319a5b9c"),
		},
		expected: decodeHexString(c, "0e535776543bd623debd2cd1d0684a5c133123844cb6cd9af49229a81a8ca92a7b7560f6d54b0aa963a5b0f5fbb4e24dc9ba714b24071de62f9d952766e040cefcf025db781ad57b53921c9fc3e5ec2da6988dc4b6cab7a2f27e8611661ba73c32f61a1f46ec77a7b76515de234edb25"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed83_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed83_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "2b70ff655eb2e4541a5ecab13d25551ce658a6d753d13a72"),
		nonce:                 decodeHexString(c, "461b829287f7b065ba3dc0c9"),
		personalization:       decodeHexString(c, "1e17a7283a82ab408e27dae228c025ac8daf4c3c781be3b8"),
		entropyInputReseed:    decodeHexString(c, "173df680fd61fff7fccacb8b538ff40b252616290cec6e78"),
		additionalInputReseed: decodeHexString(c, "c68715e5b2517c324cbeee93837f3633a490cf787ae2e4ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a3de9279e1abd88447b1703e913f760f8484900aed46a041"),
			decodeHexString(c, "fccfe51e0ca21c2a3e70028c32f1bfaaefca22ca842705c1"),
		},
		expected: decodeHexString(c, "b237a08a113ae7341752f2bdea1cbcd40afafc995f7d8f7e8a25c48e41276b21200b640f16284374effee04330b04ee5d7501d3772e056be5a7069f7437fcbb4f4530373b57ed05041b4a354e809b5b6b32a52acaf61d445c716072b3dc9336e969e43cb55a92cdb62f17968b5a8cf89"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed85_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "238559325f393e8309c0083a5a68c395a2944af88abfe788"),
		nonce:                 decodeHexString(c, "d9b3a68b5e56dd6202b241c8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "de7f19b6aadee249fd592d07e0f07c6c31eeef5030375991"),
		additionalInputReseed: decodeHexString(c, "1fe991d409e87914807dc399cdf744abe38015f5aa1af442"),
		additionalInput: [2][]byte{
			decodeHexString(c, "628a78950c36ad58e9c5195a116a9845bfe10df14d3fd260"),
			decodeHexString(c, "bddf48e5fe5e64f304addf93a1fba2117344654d8501bb4f"),
		},
		expected: decodeHexString(c, "db86c8344f7b2ef65a5667f8e2f6d136eff0a21f22f240ee5c33a26ec1d62bda3e7a21f7c19a3bd18ea7dcc21d25b9b3ffc51a63e920fdd9520fb564473f2fc6b301af4fabaea913984912bc05816129f47932c90abea85670735fe602eda24feed0af51fc4fd93248c2e32d836c41c5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "da777f06a3c2da6b763786cf2fd83f6e708197680f4d86c0"),
		nonce:                 decodeHexString(c, "5f8913509584d3c662f46115"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "13afaf26308b5fa76b76e3a0f4e9fa10659abcbb9c610d1d"),
		additionalInputReseed: decodeHexString(c, "c6790f20e47812db27ac978154a29bbce18c3cfa3bbe59e4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "80f58dfe818efd5d0023a1379c9e9754528109a452f7c730"),
			decodeHexString(c, "102817d5613a7c7568ba8c37fd10a009d3a0bccb73faddef"),
		},
		expected: decodeHexString(c, "4781b241db29c34cfcb1d8faad51d9f0f6cff4e7cf9be10609805e3cca059d70e05abe028466324837bc41c6c47b3ecad46d39479bbda8781804d33cc634093f343e523fbdad75fe960ca5eced2f1cda0bbe984dc008b84f178e21b0a0f88c223e9c4b288373b89271d02cdd77694b65"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "b7464cf28a7c98665184b98b55a42f551ca128b6c6bfaf3b"),
		nonce:                 decodeHexString(c, "0c752e89573a5f4011886312"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5fece24a5ca17790dd13bc2ce29e5f3d110711c5348a6b7b"),
		additionalInputReseed: decodeHexString(c, "ae1a01e146f59f846cf212d643805878deecb89169429508"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aedbb54a97641716cb0b3373f9ecff1fa4269dc73de30847"),
			decodeHexString(c, "5ad35a1087682c80b31993ff8a4e035b29412bb5ce331a4e"),
		},
		expected: decodeHexString(c, "497d5e5c4054844d89357d86db3172849cff88cecd97e8b92dfac0545faa34883c9681f12a68aff0d5841731ba615a1dd316bb3c304c975ab23996a93a8c092adf4f43fb69da8a81dc44179e73680df089f650026f2a86de9aff7dd284e341281cf9c6adf39df9a3a964107585550d45"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "853fe514dcf00746c8e3eb161598077ca2e4c22dbba76e44"),
		nonce:                 decodeHexString(c, "83362be057190dabf0c3f536"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "79e805b808caed536d7e1ade22d1f95fa611a1f82ae54236"),
		additionalInputReseed: decodeHexString(c, "b9930701e00f62b5217621cb038039ef5969f05692a03f8a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4e235d1cee79b92868298b2558b44638fe6f05782d265cd6"),
			decodeHexString(c, "9da9b3546017fbfec6e0288d993ac48cef219e27606caff6"),
		},
		expected: decodeHexString(c, "14fbe7e4249380cb315397227782a1f775e7e58e8f563293af89aeff9fdeec9a5a04cbb93105837b02ea1c11df8ae627b833a71cbf8a880decd9414b526e60ede099b465c158fe7daf736d37cc05cefcd12be858a996fd277c4b5af49c44e48253e3e1df61a62159945f1ed64c4a3cd1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "33094b2d1ab430ddc45c8ab03e84dea990b5bc8dfe16d9e3"),
		nonce:                 decodeHexString(c, "26475023c7ee76c3a4f07d81"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "898befaffcfae3ab8e8fad6f95b4b4b59f1e4a34a377bd48"),
		additionalInputReseed: decodeHexString(c, "adcb2188d5eceabe4a5dd6583caffe00ff22524ad01b4a7d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bddae49c52ada0e462a48ce24b7a96e17f6f75006e470e3c"),
			decodeHexString(c, "1a5df68a9bd047e82ffbef8c1a00b6d77dfc3ed93051c3e9"),
		},
		expected: decodeHexString(c, "ba13f1e9a92666004f1b6747cf6ca93ffac82e8b6be14e981014bd39bafe96ef4f02ef98d2fc9ce5147fe5d625a8c78028c4da00130f434ca654ba204029b4af0b5022d2089911f3de7bcc8f45acbc5c8cbab46bce221daa4cd605f7c097b6b5dc4c87f94703b6f6d12ecb8a9d4aa6ee"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "c85667b0890e1fe2ccdeafc24b192433e7447debe7a59bc2"),
		nonce:                 decodeHexString(c, "e5583f79702477773936db4c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a7c7b61eca320ff64104ceef27d93fa8f5eb0dc8c4c6e811"),
		additionalInputReseed: decodeHexString(c, "2396a52896c9f2fe12a859b4b69cb452fdd35f1b800cccdb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a9b9b85994f7840432c855bdde248169c0231a0f18a6505d"),
			decodeHexString(c, "9f0dbf06148694a8d1d6e53cf1cb78b27bde9ca7caf709f8"),
		},
		expected: decodeHexString(c, "ed10d96a23caa1d74ea218feb7a6b9386d3ee17c65283eaa4ed40721b9ee75fe13bcdea03cb954abdba5a6b7c3254b436c693ec096611c01dca93d13a1de65b989c2c436b08a1e2f7cbd1f9784b7922a0e078bb3ab41fa79e92d7f1f3c4417fad350af39992885ed7a7d0e2f531f4163"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "41c1cfca005ac0fe9e0319db4e08c143b9b48de19c447986"),
		nonce:                 decodeHexString(c, "f726a7d8719f0da81607a060"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4b01ebea0a17819dfec20e187c81409b38094fabd2d0ada3"),
		additionalInputReseed: decodeHexString(c, "654098a948f8981094541463aa6d6ccd82f7cde31e38a49d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "085de17e7b99c0496114f4f8c292b4e7cd88d24af30e61e2"),
			decodeHexString(c, "9af273008ab0a3d4c3dd9baf66dd467646493e4e320cee21"),
		},
		expected: decodeHexString(c, "42eba0cdbed7f50647c5cec0d2055f850263a8074eaad3823f20dc6eca78c166e24ddc7436850cffb7a25f2feef5d68233dd38e6205ba037d491e7129734017c2fcd468f38b3ab095d94e05adbec0f3a9cf4aea2f11071d2e5a277ad4a518c0965de872d37721dbb82291fd12f870dde"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9bd0dab28b44f2875daea49803dbcc87b4be5538371d4d2c"),
		nonce:                 decodeHexString(c, "97d874c0658981c3d6ddf780"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a227f895d2a9900cd9b9ff3902cbbfa9c08830e07e074f16"),
		additionalInputReseed: decodeHexString(c, "a76e6657aa786c81665fa6e70d5a7457624ccf9952157537"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8893baab46686e00a52a147b87f7d86b26e8dcda35e1bdbf"),
			decodeHexString(c, "45f530d4bd1a02cab76aa3c617cee5efd3149bcc944f6c51"),
		},
		expected: decodeHexString(c, "35db1d31e81a0c8e3a45f5574c978b9d82446f577ce59b31c3b9e1ab27f818f3e8bdf0e1f227c7d7a34f4d9765615047ca884873c78bbed98b9254f79a9695930502236e23fb058ac6bf2aa5f1e5309bb495293eb29099be45ced3e458b4bc267475b7305b3ee63d7017b8b43cd9934f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "c046cc98075c1ef4c99eb99dfd7166f021caf31fb625a078"),
		nonce:                 decodeHexString(c, "61df9e071cf2d2b22e8bab25"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "21b43d5a5ed6e7fec4ea5c3a7f5c0d1ea623bb324c5de921"),
		additionalInputReseed: decodeHexString(c, "57b31bee0723a5a0e4bd65f26437b0519d268140a134daf4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ad402e86c29a1fffe755db6756ec2a533d981fe566fe4d6d"),
			decodeHexString(c, "ee35a835a50d6988f731839da7dd81f0d46ea4e078bbecd4"),
		},
		expected: decodeHexString(c, "fd68efc2b87453b5fe6b1668570365958d9ccfa1e1d3ed4e2b680b7c6257a83f76334850f688505ba898e5623318e966008e77f6f759e39143894197fb7077167f01d2d2399c36543eb45e6354517b449c658adf472c3de5a0ba0e5df45942337c6b273e2c4a478a0a6be3c4d4970716"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "159586d878c7ab5a07bb3c17870d8cced1e659b3908e2ffd"),
		nonce:                 decodeHexString(c, "c1ce5836959327c155f2deb1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "69f03eae9aef56129ca974aae537bec346f9803356b7ce7f"),
		additionalInputReseed: decodeHexString(c, "b3b42efa5ef6618f1c3309a9c125a739f70a652343c9b16e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "66503d0b01382eb3664b4d296472b2d1d977c8febdd69411"),
			decodeHexString(c, "5c8945dc8694050db6480eb8db682f8cec35a1a377471d2e"),
		},
		expected: decodeHexString(c, "2d415a5bb202da620f9f487c8380807e1af027f253ff775ba87c0693ee172fe28928962b8945b6104b949fc4023cb807f90b44e83359cf42421dff45845448dab8d35bb477ed7c919eceddf00524f7d5a5bd98d9c83c37f345f7c56c8dad4374cbfea95affab94a417b06e01ee566a0c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1292af200e9a59479f7e2489b886741c4dc27708402bb30c"),
		nonce:                 decodeHexString(c, "a7976873bfa145b1d5f2d0bd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b037f9890797ea6624cbf53cddfa7651e092914b978de871"),
		additionalInputReseed: decodeHexString(c, "33d7347c0881e383a09446f3e3472aa89dfe85586b3e04d3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ac89e28d81c2c67e240b4f65cde536d2758a4b62fe6f94ab"),
			decodeHexString(c, "6c2301c38ee2fe6c405c7f80ffbfc7253b4d0c2792d63272"),
		},
		expected: decodeHexString(c, "aeb28621e3878f3e84be41c5ff570a8c754dac9606a794ec26c685efff8bd615953c20bfbf4e361b7df76b7bbdee0056c21cf8309f0374eeba27286df9706beaf2b2c3baafd1245794a12eb5184dcb90d562c6fde250a70c738d9602b3bf514b9f9942fc60fcf96dcc9f0d9f1bc27151"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9e7e2731157a21eaf007b05f9f9244a77aa8840d54d2a31d"),
		nonce:                 decodeHexString(c, "b9ea31daac9f1e4d058ddc9d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7294dba58485373091e20ad7b3c7cfe949a67f2578178fb3"),
		additionalInputReseed: decodeHexString(c, "07b98989f1a419629cb46d2c973edb7d808a26fe2802c320"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9c34bda90f30c0c2aed5dde0777f7bb7fd48a38e9c929340"),
			decodeHexString(c, "dba99b479ea832be597c65e343689ef9393a169358f2b69d"),
		},
		expected: decodeHexString(c, "fdf3a4047b5e912173e6454b409d5afdb5b161bcc1734337d157ab57f41c6453b55204a4a6adc286f1af9d37dc2b48b4a56148acfb0220c3762f20efbd3f7fd94c2ea9cb45c6e54d62128387f5e22d9f4b003b7ed9609336f44905ae93b4921464735b12c06016dd4824ffda85beb176"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "2fa98eef080dba6ebb35d47d9d070621e7acfd5bbe60dbc8"),
		nonce:                 decodeHexString(c, "7b3d2824695b055ff38de526"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "9d348392dd40455a3764b6bda37d57a3fd180e384eb6f1c0"),
		additionalInputReseed: decodeHexString(c, "45c6806894978dc6a78a42ef3b8c0550b1b6f3c138494a33"),
		additionalInput: [2][]byte{
			decodeHexString(c, "91445b48323db9379feaba05a167ef19e61c34831161a905"),
			decodeHexString(c, "9b698e4dad1350ad794aaaf170e1cd20aabf9dbe40d40bc8"),
		},
		expected: decodeHexString(c, "53727c0d49580df8bdd71250797350b8d424fa0dda419e3a18266816d61fb5c824e9f8c0be1e7689a98d309a228b4a424eced3fb8fe310464e38062c01d9d27a2900ebb61d11e20c1e0d1e216a7f4a1b4e6b0af3ec0e59076042048039022779646a4f841c4d8c4b4a2d55f2a731f14c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d94b6d02fdae375a79e1ee3489b933b83546fe6430af481c"),
		nonce:                 decodeHexString(c, "e57274d19a4ed47961106906"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0527ae54360af63dd76b0114724181b8393867456c72b86a"),
		additionalInputReseed: decodeHexString(c, "b3d88a66a40d60a62706a16e829adb0ccd6930ae0c2d3992"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b789c64191cb190e11d95d72623e048a2375e6bf9bee900f"),
			decodeHexString(c, "88ae5458dbc5f6123a2bcecece2008ab14d49013590229e7"),
		},
		expected: decodeHexString(c, "2cc1189295f6556a2470d3044e896b319d2bd37b8088fdf6e23659cdcfb3a2a9412e1ef4aefe4a55bfb33792bc7edd078630b3e3890a5f499a6550e028203564df30a650864a94fab305388dc2d90aeecd85c14483b9cb2c797638183209be73067c8f348580b215ad97b1f5ec2ba239"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed85_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed85_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "21d586598068c5f622eb3c8e15be8975f2ef39450ce90e38"),
		nonce:                 decodeHexString(c, "3853a8d032fba12dd32b6fe6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f31b13ac9002a71e2d62b1c0ded7a60fe82bd752a449e71e"),
		additionalInputReseed: decodeHexString(c, "43d005320af0b83eb9a0e73952508828d2a65f910de063c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6c4ee7af22bdcd4bedeb6e510f97615a0409ade94e1d585"),
			decodeHexString(c, "734dd60c81e1d7e0b4540251b7b1c1a8a5d4dc5e2119e594"),
		},
		expected: decodeHexString(c, "c8ef5772a86b25df7a2f997c984a33fbac6a6c680f773aa8c874117fbf8c93d86cb8e069afaf1e51ee23982f8b5053de55622242012ab28bd9d433ce860a440bcf30f901ae5cf4f10464a1c41c0e2416bc576391fc8e78c167d357eae2ddbedd02a21c7dfbb2cbdc9344c692e8a77361"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed87_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "4617be4a300ca35d10224b4b9259ad83c271d7768dac8154"),
		nonce:                 decodeHexString(c, "cfa4d649c4e2709ede1d271a"),
		personalization:       decodeHexString(c, "7163efc8ca9e10febd6bfa4b1131794b9ebe1053fb90d26a"),
		entropyInputReseed:    decodeHexString(c, "ecd1c895e1f341d26555aacaed1cfa1ff71e64ab2522de76"),
		additionalInputReseed: decodeHexString(c, "c4d2a86b21236af447bfbaa4682873892002a9fdb38b15c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e6c23d90aed598a76a2b2bf3acb16715d16be6d52eed2e6e"),
			decodeHexString(c, "3296c6bb24ce10d08b27a5b19b30a0fd52cedfccdfd78b29"),
		},
		expected: decodeHexString(c, "1c85b0b26bffa602ecf5223ae61e866e286804a3bcc71109849acb7d02d88656acd4c0303327b9a72d1411098463c4a6c34b1a4092441cbe925dcfc70f50ebd3a3053ae36bd68bc62c266d901f18bf1c93548024ac3deb0c0dc570fd7d5aee5d8f7a43e9f1f4ac4a4dd88f2498a8c1f6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "59a8aef3932b1ac491e8542dadbaf3d724b2c62a3ca22e68"),
		nonce:                 decodeHexString(c, "96a9954dd3894a69808701e0"),
		personalization:       decodeHexString(c, "961940615dbe3f6351edd3e1fedd02cb430f57b69f21cbf6"),
		entropyInputReseed:    decodeHexString(c, "160ad901de5623d35fd7d279b62dc53837ef7927386a4969"),
		additionalInputReseed: decodeHexString(c, "99e82b0211e3a10980ff5db8482a8ba847e7c5b8ace6e852"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b74309816a9215b76defdacd79a7b49030a0c80c407ea1b1"),
			decodeHexString(c, "b76c786e9dd6378401ad7f94880b5a604d149fc0f0fef2b2"),
		},
		expected: decodeHexString(c, "64b54cff7161b04fb79631dd7e2aa9c9a03f63d8ee003c38d3aed6c264b79b431e6f568a21ef2c8e47e22bacb3a9391e9c161b89503dc25c51fd55e3c0e32076b50172d5d851318a42111fb5d846aca592cf3a2e9cc29aec2f19ea0e90d0aac8f130aa332689c435a64673c64c012a35"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "25f5d0cf5a689e597234dd50f12e655a8e6d39a16ad1bb55"),
		nonce:                 decodeHexString(c, "ed923f7c90725b56862addf9"),
		personalization:       decodeHexString(c, "558be30ab907a1d0c995f82d39f96a8f22f471f717accfab"),
		entropyInputReseed:    decodeHexString(c, "31795b133aa7c391ae6f09873d900f8f454ba3c9dcfc62e8"),
		additionalInputReseed: decodeHexString(c, "ab37b54a0cfc94ef20719ef9d2ce78c5660e7d2b9ad91a60"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2fa921cd9645f6a67540203424fe0f43c14f16a78a4c8e96"),
			decodeHexString(c, "719b92949e9c99e726c152e4ae2a5bbfe35e7ea308fc26b9"),
		},
		expected: decodeHexString(c, "6a8d802229ccfc18a635725172b3fb79f54673ccd5787ba245468d841c1b8e3d9598cfdfcd2b3934d93aac7ae9ca326821db5d2a7ae3bbd17433cc4741094f977fb08d26b6deda10064977cc5c1f87f17bc82ac47387c2abf33eac743b53ac7f5c2ac0beec634d328f27ee9005d18936"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d6803c591e756aa371fd58342021592b2727442d3f47e9d2"),
		nonce:                 decodeHexString(c, "f9c207bf88e548bdf0f0be38"),
		personalization:       decodeHexString(c, "c5e5d55a6e3f0f63013ba908777a134e30b5693d785c364f"),
		entropyInputReseed:    decodeHexString(c, "4367756100a29fda1ff383242bff371d50cbba0b9eac2dc0"),
		additionalInputReseed: decodeHexString(c, "36dfc1704eafbcfffa31405b20a0bce6cb45c4b1d9b8b61e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b1bf3f8577e7d9ed05e4f6292d987e46843a8350d4202593"),
			decodeHexString(c, "36d7d9d2d19ec8c94957f8a6fc814119629d49631330421d"),
		},
		expected: decodeHexString(c, "eab708f4ce0cc0ed824db20733a6b9f33f3eca2abfe774c958c1b6d5a2c383e48032324d2f2a7224c4e484ba62e7a7ebb3a158906bf43a3df748212347d120c0852264743ec90106553545ba339a78506c59f3abf041184061199dbdcb2f559cf2dbbab03c8a660ae668b0f865a654d7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "adbb274b3e4114151ef855beb0302b21cdff76fc426a1a51"),
		nonce:                 decodeHexString(c, "fc4d9540f91ef6db5fdc19f9"),
		personalization:       decodeHexString(c, "cd046ca2381fe42685258eb5c972897e8f0e2f268f13c5c5"),
		entropyInputReseed:    decodeHexString(c, "ae7775c8dc6444d03ebaf3960ec35b862961a7a16358bb4d"),
		additionalInputReseed: decodeHexString(c, "945f0d05a6408a5375b5934a06361876c972bdc38767ad40"),
		additionalInput: [2][]byte{
			decodeHexString(c, "800163f7f697e5c9f97a14dbf31e72ea88796bbed8d741a4"),
			decodeHexString(c, "df3f3f6c69aa40d5c9d2f3ba4e6899f62c20b71677610ca9"),
		},
		expected: decodeHexString(c, "e96ec8c929fffd55f57abc4661a6b29cbc242679b72b4ab9976c5be9b82426a22cbfa70061866bc3678fbe07c576007ae08f95fa77a37b3923b76ffd52a2844b8a6ad6182601c8e6a449f0e7fc1fcb69bd09bd47981852ea2906754d41754b82a3afce212a730069fcbdd28a46b70aac"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "722a7a3f82dcb209e07e67e7455dce1b8d98b34c66faa763"),
		nonce:                 decodeHexString(c, "425988aa7979bfdbfba4d980"),
		personalization:       decodeHexString(c, "ec1252ffb3ef0d998694a420c1f6176bfe6787e6468baa57"),
		entropyInputReseed:    decodeHexString(c, "340488817cd6d934ea51960241a5fdd22257c55473ba9275"),
		additionalInputReseed: decodeHexString(c, "4da25e56ef5f1d8125522dc36749a5f9eb4799282439d13e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d02b1ebca5e6abfd15b367a543367839394c4a9e5d0a413"),
			decodeHexString(c, "d37180a4f8f28b0866c5a9a48e647f537cd045c664d7562e"),
		},
		expected: decodeHexString(c, "bc3990c0db906bfbc3d5cba975c48b916d720c214b5582cefd9903419f82051567d79111692fe5843697b3fceb80a6e941ae7cb2147eff124143beb693e2aa1973c68f1bb52817bc9ea35743be1d1a5641fece4cbd3f48fc65d06762f96e9fe3aca50a2444d47865262b6df2980c532a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "50363290b4e9c69dfd766af67b55757d7c61379fd7930119"),
		nonce:                 decodeHexString(c, "8b9234fe29739bbd8c2742c4"),
		personalization:       decodeHexString(c, "b1e024b1e430d217d05be5f89225ea49f83b0aeaebebc98b"),
		entropyInputReseed:    decodeHexString(c, "5175ad24caaeb3a44f110c9ccdfb6e452a54a3636de60259"),
		additionalInputReseed: decodeHexString(c, "c81416f4500f322192619e478985e72a01aa8162a669d21e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c9d3d96daededd453748476411757e37f7120861e4b6559"),
			decodeHexString(c, "f331de9c8ae671acfbc55c84625ba384a3d1382698353aaf"),
		},
		expected: decodeHexString(c, "e67b1dee73db5779357da0f94184c77694d5342128a686c17bb0b1ac953c234c808055060d532ea3680b8cc9f6e9de19e7b7e305ff511aad6095d24695b0c0584bcff945796bbdd774088e2455a96a525d301321cbf5398cebaa853172f4e9232eae46b560a546a899b2ca26840384ed"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ebc330565af8b37be487313d90385d4cb1eef4ea099f0ece"),
		nonce:                 decodeHexString(c, "66ccd0bc522cb4d5c2ea0403"),
		personalization:       decodeHexString(c, "6d375d50b630ed2d967d43a0e0fd9f1ff1cb14a96f45c028"),
		entropyInputReseed:    decodeHexString(c, "17eae9ae482eccee3a7816f0839e56eb709d25b5fce4d5a0"),
		additionalInputReseed: decodeHexString(c, "06ff033e96511e0a8d12dd6fd1ac34da162328274e1dec16"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4c0424662ca10950f191a539dbeb804c91c6e919e52cb6b3"),
			decodeHexString(c, "1fc2eedee9fb3669a89461b73134629640e95e52407c9b1e"),
		},
		expected: decodeHexString(c, "656f6b390bca030b029c9989965d0ccd2dcf7fdee0c3cd52e78c20b7806c71ad935e5d8e8206a230d9b2260b637a37911056c3d6ad75761186931e45577ff6aa29f35e41964a7376e7d0abe5737508782e254e0accbbd1c207e9076437a9217066bcc41025e8bcfaff04ee061d613b19"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "df9c4ce0b551d4cbfb5d54de4f872c8d2ecfb5ca9fdfb6d1"),
		nonce:                 decodeHexString(c, "604e29e3b0b27cfb019f9e83"),
		personalization:       decodeHexString(c, "b0425421c612e95faab5b009eb85cfb666db526d5d62eee9"),
		entropyInputReseed:    decodeHexString(c, "9f46b356b3dff8cfda4457a1093adaead07e0baf0bf16a50"),
		additionalInputReseed: decodeHexString(c, "a14866a7672796fb73b9a99ca44ffaee4374e7d82ed68768"),
		additionalInput: [2][]byte{
			decodeHexString(c, "64a7249204bdfcadf36be265c122bc80efdf31ef70cd5e70"),
			decodeHexString(c, "61e8e958d9f4a0b8765bb1f9a57ecdd423f21e456f033e1a"),
		},
		expected: decodeHexString(c, "0ffe60e0a1388fc69a7342c165f9ac0b78677270ae752629958a1e44d10cd03bed623e2a787be02abb0c3530738a7fb43de537340acfd9b1f3c06296e8acde8a0136d16246da03f62c3ce8f44704d86f54b50694d7248cde7d4743699f9625d689dd39e228af6269bbabe0e6fa32a20d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "e97cdc3911015f6ba49c02fa251c1dfc7439949a81455ba1"),
		nonce:                 decodeHexString(c, "ec76d6252b3ae7b6ca0ee7e9"),
		personalization:       decodeHexString(c, "68edeccbce19a4f0c786e76315b20e277376129b954cf39f"),
		entropyInputReseed:    decodeHexString(c, "bc38e84da955be0efc583b81453eb5fe1a4673bc7d5fa046"),
		additionalInputReseed: decodeHexString(c, "bb70d8d370ffb47c2ec9c9b823dd1832d027a46d975042d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "02b9b11076da195df7ef3be3b5c1fc406faab96cada458f3"),
			decodeHexString(c, "453f58d228c526ba46b1620b2d584b8a91174300040f3912"),
		},
		expected: decodeHexString(c, "07f97c3ecc3889894805ec531a6e218ff02ef3417711d3fdd591a8ea836ce75b24d87f87dda3506da2831d27e7d49aab88092d72df12197153c78fdbd9b82b9e99a9186630921b241edd333206815cb068bfca91162020bad55d7abef4c481d77b0ba4498d4ac9c60b3d1122e8df5609"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "554b4d1c9d8b37ec0e985794ad677a3885971bc51339642e"),
		nonce:                 decodeHexString(c, "d024520a2ea80649888e0235"),
		personalization:       decodeHexString(c, "57811afc75655418fe6b41bec5ce0ac6b85a4709427b462a"),
		entropyInputReseed:    decodeHexString(c, "cd831f875df850eae085be04dd62120d92dfd4bbe8480278"),
		additionalInputReseed: decodeHexString(c, "30759411e3a78498dac81fda2d229b5c94a1b968fa7030c5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a79430618415596286495b11010cbc4bea9bddbcefc0a098"),
			decodeHexString(c, "5bc9cc19b1302ae01a5d94134d41d88d8645f1e8646acdb2"),
		},
		expected: decodeHexString(c, "2e8047f3c2a3d419d5ff4b83eb4168176daeadc48087acb821921cffcb03ffafe74137b912910f3eed6826867dc36ac67451dd1676a65cd9903184743485141f56503893543e5d3269b9bf5fff67004bd81d6592e5a6736994544b79e643afb8b193ea461ab9a87a5bc8f7087d8a265f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "34c8953e7ad014c75ea3265f520ca193b30e6eee4bdf3ae0"),
		nonce:                 decodeHexString(c, "af1084ffac14685dfaccf0ef"),
		personalization:       decodeHexString(c, "fbb56eae2e6bc87208f6805bd148b63d2b03452c5cdddf45"),
		entropyInputReseed:    decodeHexString(c, "7603b97540351b97c1607abff96d18a77a1d8cf3611f10b3"),
		additionalInputReseed: decodeHexString(c, "d4e8102516d0d4b6bdbfde91b0198c1910f25e0a5a9a87e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32c22b5193641b5d2574459d152d8fe92d9066add84ee18c"),
			decodeHexString(c, "be25fae715bf9709562d6770de1d1ce29eb4caed184c12fe"),
		},
		expected: decodeHexString(c, "0c2b0bd9a58cb7db93e887dda8c0cd8fd5b49ad3103049b38a15cbfb321c2b4bc100777549938dbadfbc1dad21c760e67f256c76f8ba5cb0af5ae7626bcd272786908bc89271c822a67e2abb8a691a0adf7143f9efadb1ae4212152349c34a73652f889d0fda77869c1af0dc85c2cdb3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7cec973b9302ec919e1df8127229d2b7c2f39280c2e4e309"),
		nonce:                 decodeHexString(c, "3764c7ae6ac644ef015c3afd"),
		personalization:       decodeHexString(c, "98f9d53ad8eed4c12a0db269ff02322f18bdc14310942d3d"),
		entropyInputReseed:    decodeHexString(c, "7338c051de6764df8595ee9656c870be0e79617692a3aaa3"),
		additionalInputReseed: decodeHexString(c, "29592fed8f40f5ae073172308c50ea5795b5bca8a64f1916"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2b19ca40c58974f2224dfc6074889f29d21689a50c899ecb"),
			decodeHexString(c, "02e91b8813ef852dae28d9f9e9caca430ea8d223029b6ece"),
		},
		expected: decodeHexString(c, "a80ec61199e5cd1e096ae74ffab5c68cc4dff21b0d3e93ed2cf5b7b0573a2b320135aa3056906062e9c211d0af6858b594f9e6f45b515dee2e6d5237ff0973f5bc61dc1296e23acc68f8308a9cc7deecfd820d984e89a3c5ba354247375c6ac6145c890ae27aa0732abaa0665b1567fd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "e463ce95fce1f164738158457e2a76f80ac8d2a6149594d0"),
		nonce:                 decodeHexString(c, "679175b6abd03ebf008eb87e"),
		personalization:       decodeHexString(c, "7fa21773b0c842748085e7d0494278de315a489d4190cb36"),
		entropyInputReseed:    decodeHexString(c, "aeed449a9dce56201795b3f0e9db6ff2d95c1ccacb56369b"),
		additionalInputReseed: decodeHexString(c, "0fa1ba8284e2d58a5702d3927762aecdf7dbf5f25a4c4f23"),
		additionalInput: [2][]byte{
			decodeHexString(c, "912c23b384a1816550aff6eae59e0b897fa084f9b7fed7af"),
			decodeHexString(c, "275c24f679753107a4bef15bc9278f6813c0ec1c49d91759"),
		},
		expected: decodeHexString(c, "a9c06dba6f80be04144032f92ef9294897c2951b395db8d64b62f71e13b22471c59fc3c3d496a5feca30d87d16e4d2feaa797b436444319e990128fd50cd6f7821c90db101afd877fbf061cee2ac46d7de6b1547ffba010be9345200af2d7e5076253274d417fc6e3ae018ab52e871de"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed87_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed87_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1552d8ea865e6a061487558eadbef3de8e86b86e4a3e7f1b"),
		nonce:                 decodeHexString(c, "fd1b06c1ee732ef8aee69ee4"),
		personalization:       decodeHexString(c, "5db001536f3841b37643657536e9ee30a339e322505c902e"),
		entropyInputReseed:    decodeHexString(c, "a488d0207e57b4e816a931b6651ce0359c46d6b25a7a3fc5"),
		additionalInputReseed: decodeHexString(c, "2e6035f3136561f9d132a9296cc521fd36ee7c4bd7986e22"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d68feccf638852d884e503d35094a6c803c2b1c22cfe1e0"),
			decodeHexString(c, "9bac00c0729c3fd8b4662db75154a8d2722ad02aff2d769a"),
		},
		expected: decodeHexString(c, "1afc4b6bc25998615b522c910626dc3fd8cd63f7eff280a3861863aa30809e60ceab8e5c3a97d0fcd581164f187e4a4110bf56d3db3fe780e1f30eb9502b4ffeb46a57efd47c9f3e043b3c1a9693ff059ca89b8f43665b69ddcb151152933723954218391b6fb59b52eb99cdeb01d482"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed89_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fad885e0c66f621a763d4a9a3778c83c8eef30a25fe88d29"),
		nonce:                 decodeHexString(c, "c248b79c91671f135c1878df"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "57b2e90496108966ec69abdaad0fada4179fbfa6657956b5"),
		additionalInputReseed: decodeHexString(c, "229cfa582c7d51d617a49de12088169e3099c260ffd2247b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7c18d74d17a0883135a0e9e5f7efa3603b7beb766746279f"),
			decodeHexString(c, "b48049b80fae84f378ff4a67489ab6cd26a2a429e9015114"),
		},
		expected: decodeHexString(c, "b68c2dc5dfb779ded8e2acfc0074eb1e92a54acf075d26558bde1c78564cdaed6578860274c705b81ba3e625f47d3027a2b47a07c87b04d5ed43d67295ed07b0b072ea354bca18a83b6e54fd5f06d91a1427fa3610268abf291fc7930ebb852c0272bb08c4f01bc2ae71e02ac9f28627"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ee1f193658f4936cdbea25d5e1b86af0d56157dcfaffc3fa"),
		nonce:                 decodeHexString(c, "26c9e026f06b2015052ca4ad"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2825412d47b72d610105863ecbca10cdbb520029ca2e9ab8"),
		additionalInputReseed: decodeHexString(c, "d601eebdf6453686a73b893cf4b362dad3edf3c3db13fdde"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cf499e18faf1d9be3572af7c2035de65d84cc0871a0b7805"),
			decodeHexString(c, "7febd5d2b19746caec3dc3b8a0241e5f2f8df3d1bc1fdd54"),
		},
		expected: decodeHexString(c, "4e1b3174f74c0e0d24698db6b492f0012facc508c1dea70a565937bd28b915d5254b9802e0b32c7bb128871d9bb8d8ac6aeb79fc87ae6e01c26d7a506ab8c15e16017d8effd792e945b759a59f7d21272f66753c4d530353122458faf8ebc75634fd3986bf1bfa93d2e447ac941ac9f9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "f81f01a6b310a04be907bcb7c729ed0352e16d515159c7d4"),
		nonce:                 decodeHexString(c, "99adbd4a5f2d801c2364cd89"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a95e16abce8479eee9ba139525ceea38e98a8c302c81583a"),
		additionalInputReseed: decodeHexString(c, "af710041dcc8ab84b3e7cac33b70a5533b49254f2a20ccc6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c06c08a34da60cfe7e20f9df5e94633e2829a1b7afd852f6"),
			decodeHexString(c, "1e9d5f01f12827d39a48eb718519164c140008113a658bb3"),
		},
		expected: decodeHexString(c, "1629bbe34969f2b958d78268c42f42f63355c67456fd6cb1112ada7266071e3c7384c17b4caa5ac1f966c688979c7e259bfcea17dbade6b7c50306cb345b5a9d6ec71acd7c1ca119699793a86b3dbf7593f6c250cc8eae8fb2876356777e07bbf34156d9ebba9c5c6d0bcc51f5137303"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "2d398cd152b7c385e8f0769a87ad5880f7720cab755dc667"),
		nonce:                 decodeHexString(c, "8f5146a889c2c060132dfda4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "84bc35a525555ab09a901031fd84f3f2f8f3420d92d53940"),
		additionalInputReseed: decodeHexString(c, "2d59b6998affb88a93c93f048218a852cbab079f852a6aeb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "37232c1d45eed8d5b27fd5473208cf4424412101699fd38a"),
			decodeHexString(c, "6196d3c7a51e0dda906ff747bf2c6367f4465f10715675e5"),
		},
		expected: decodeHexString(c, "0caf21bdd05fe496998df6109be62e554d157263500e6c0c49dff9bf9e8c2b525f290729821b692c8f9160975ec4d4f8d18a1f40cdd30a07ca9bf0d8ecd7c1558e56386ba9b227b897fb8a06041766015ac06030628eab87bdc5a71bf0dc4a53e2a130fcf94c79afd84c3e98237d5f1b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fa357799ca4ed55d2412daa0f14f7a9e2bd60d1f805a682e"),
		nonce:                 decodeHexString(c, "0c58b4466a2384430aa74321"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3eb9cd4e401140c8cbfd52114df58a2e78c2cf1f6b47887f"),
		additionalInputReseed: decodeHexString(c, "d219a507e837dcf508dcaa5b1a503a8b3d223eb10c0451fb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "95dcb201728f246b8e78c053ad4a69528b64e6ba0b1d4222"),
			decodeHexString(c, "0aa51af6f1c60ef2f33434eb534bd68c138fdbfa720f1824"),
		},
		expected: decodeHexString(c, "82f574511ea2355129fd126d12a720514bc5aed5292db98c40795b49935bdee13fd96bb7b4172001003e5c09a2136ad8d3082b67e4459b0f01bfc36b73432f7eaf1d0e8a8152e8e9cae96f9ab62305c0f06edb3b9433c4408021b89369659a069964017b6a5e49350140b752044c8713"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "4e6fd7779481dc86c422ad063d0a36b145379f1126ad3f6b"),
		nonce:                 decodeHexString(c, "d78e8aacaef06929eb593502"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "999f28eb331bbabb55ee3536c427a20e4e9547ae252b734d"),
		additionalInputReseed: decodeHexString(c, "e5fdfcc35195ee3c93ea9d612e9b1e8c95a1aaa75768fc52"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9977817ffd579a2e57866f8f6fbea16bb9eb302043aef068"),
			decodeHexString(c, "bba1b99e675677cc5913e0a62bca9dc3e66fe7223e4180cb"),
		},
		expected: decodeHexString(c, "2d0abe7707bbedd2dc7c524019cba6602b243582e20ad9080d0f9d620706218d197066b29211d44f4de2be1c41faef07129fd3da5dc76a5cb73dc9e8a6708841e53b4f6f8776f516372838c645e3bbcf348d02da9231dc1ec23b577b97cc554487dfc5c88a6dfc70a354caeff839d00e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "cdff418708481e6e7db777fa3e7b54df9aaf448274d68b83"),
		nonce:                 decodeHexString(c, "37998974f087a4b5a428817c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "f9bf7d7234003c5a6bd9498f44218577f97eefa6e91d3875"),
		additionalInputReseed: decodeHexString(c, "097ef5cc39fb2181fc0475e944107fe5833fe837420b72c0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "42168291b8fff8079c6932c05850362fcf1b51927ac50187"),
			decodeHexString(c, "0674d377da9cc7841ab6a71a7308f3ed69fd0c0d88f28543"),
		},
		expected: decodeHexString(c, "4157f879655620781f70efccc79a85ebee020ce025543f0093f6402b1280a17485c1a59329fe3fab386b5a0a6b510288e7305a389faba325946fd0e6c027efd1c36ae2d472ffa6a5e25700def11d7abb9f5a1c99f0e5d1a9e36802e869ae4adc110ad766d75badfdef864abcfe483b7e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d5c355b1ddd270663b57c395ec5f43d9ec9d60fc20b6d4b5"),
		nonce:                 decodeHexString(c, "5aa0b69448b37bb99650fc7e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c467c5a754d165038b8b68ef2503d044d7952d02f79a58ae"),
		additionalInputReseed: decodeHexString(c, "4f47678ceeb13a7522f16aaa6c977506ce4b2fdce81b6cd8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1c9a76aa52ba22d1626ce66fba84d3c65998ef731ae756f8"),
			decodeHexString(c, "5ed3052c68e1e42a71b93810e5ac98c6a6896089481b5ca8"),
		},
		expected: decodeHexString(c, "a10c32dbff74e47359a8f0a45b6691939375dc06cd6485d2cd2feea6237cbf58641709c99d0a26b8e241ca23c4cf994965f58d06f8ef6a9698f4ca1dc06b4cd1f9b2a2bb1564331e8c8dc2d1dea4c7daa3fd79854ccf5298ff571aa6eb84e0e8df2e88753dbdf5717f8ee94f27381a08"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9b540e2bb8170d11ff757a0c214ed1667190309e0b470784"),
		nonce:                 decodeHexString(c, "c0a83779c18cece4c60be6f2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0dd0413095a249476b620d64dd564946406b5006a48a90e5"),
		additionalInputReseed: decodeHexString(c, "41b8e2721dc38e983214bd328181edd66ae9c6a488b154f1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4dcb7d297754e72f1f12624c662fe4a319d0d6ba78d32231"),
			decodeHexString(c, "7b73a49cd0bae1840cb0a6b993685ba5cdf19fd75426c0c3"),
		},
		expected: decodeHexString(c, "20b96bd80abe66419937b258d8c2cb883baba4eb27d3b97aa4468fa1a417d663ce8c7185cf93cf58e844a19920a1284e5057f29900334a769cd0daa35712ca1b0bce2c750a7289ff7f6fdef4486808042010051f01ecbe386ca6477105375eb8540eb9223a4af8abd5760043ccf6a50b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "27ef4f5ff27cce8ea758ef986e9598fed7d8662b6295ea69"),
		nonce:                 decodeHexString(c, "ef3aa0daf6d482018510c20f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0d336b2fe6412718e2c19dfaecfefe3fd12e0d2860e4bb73"),
		additionalInputReseed: decodeHexString(c, "fe82632966f2b41322595647597498aead9b9304f0da25ce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "433fb7b3ccc486eab6f8d5fad08ef540091b1ed6f2e767d2"),
			decodeHexString(c, "5e2b37cd8f3aa40bae0b289902ea11ac4c633b759feb350d"),
		},
		expected: decodeHexString(c, "d9bd14d709ab5aee138733d799275842620aeeff2cbc53f728e1e25a4f188c884d580b59b361aef507b2aef867198daf8b67d7547e18547735fc8201cdff048296d4019a1ddaa18e7ef68557d75ca3e073513415795b894fd11345eca93c812e3971bc96386b391450d12577ddba70a1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "76e6a7fda1e20f4c86a66ba8e31bfc16c615f1356eca15f2"),
		nonce:                 decodeHexString(c, "341913c9a1b01e86bfa9a833"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "be086ce74c37ae6ecb255b2b3971e1b756b78d7fabcf6ec3"),
		additionalInputReseed: decodeHexString(c, "89ba420d853d343fbecc9c53a5196645f3003f81dee4727f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "60f43d61783fec1aca7fac3a1f5b985f339d3f449df26053"),
			decodeHexString(c, "25b901cd8957a7a63f626b1292e6b98bfcfdef27ee77adbc"),
		},
		expected: decodeHexString(c, "975da45545647181d428c5371b8226a688d0c65e01feb84aa53f3ec51411817ec9ad1596a809f765f1ba2af910cb34958c499b87d1a44c726d8c3ffc1d08475a12c0b59472fadfa0f1090a6018fcac6f481f37c057e4a465ca36b3a2c6af0229dc093048b5ff09f9bc04ada420b56365"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fb4548f4ed94e39bf55919597c37fd5ba1386e100132802c"),
		nonce:                 decodeHexString(c, "182044d8488ef08ee1163d3a"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8a71182cdb68d9356384139350d2c980bf5d2fd64f0e1770"),
		additionalInputReseed: decodeHexString(c, "807c444bbfbaca243aa982ce9fea2ef49f7f2383c138a762"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8d46af199b2b3463e13b07cfcff08352afc90556a950f164"),
			decodeHexString(c, "e9a3ebc4dd711cf218bbeb7705405e8efd4f65b895d8594b"),
		},
		expected: decodeHexString(c, "f28f9a31511fa144284a5cae255da7f2eba1a2343784cdb4c11c7812cfd9798b790f479c8ff9c06acd458f2edb411000a556979171c23918232bf482c5a2d9fb2d3faf1f7c6af4a3654da207d9391752f2975daa22d85e82de7766d4a5074208de12282cc0e38550accbf4279f7efb4f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6af9ad11eef708d3e3332b66d0e02d4c049225050415701f"),
		nonce:                 decodeHexString(c, "27d0268faffdce20ff328f56"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "70e2e6e007a4a3b0164fb849f8687843d6ee90fe93cc49f3"),
		additionalInputReseed: decodeHexString(c, "8974269fb2a42869a7a4abc91e5c1c534e8cffe7781aab6f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f3e67593eb2bf8fe069829849df15609b6413c6ec8530880"),
			decodeHexString(c, "3ceb7d46137ae3021ac72874a7ae622495dee46cb15b59b7"),
		},
		expected: decodeHexString(c, "6bbb178f56bed67a776596cb2c988de8facced72b4a34e11aed0897e018ad94d543146585c47fe7b43a2c94a8e5388514b35a4530439f1943d4c0fd7f55a3bf13ea16080cd73bc05fb22aae74f5796d9d6b83c805960372aef38be1b6de44032abf3bd23481e834830a6de1d4c0d1572"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1b526509d5341f07451783330867655dfda7829405fca78c"),
		nonce:                 decodeHexString(c, "3c5e0d93abecb924b1235dbc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0a665697372c4bc0f06dd56cb04c9e14350cf2eca9006c13"),
		additionalInputReseed: decodeHexString(c, "fdf180b8386572f5440ee2f3059ba7aa4985c67103ee6b15"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef871a19bf9ab29ab895501182045a8e5e899875111e4571"),
			decodeHexString(c, "77ee24d58e0c0e1ee52cd29f8c2bb4d7566f1f39020f7250"),
		},
		expected: decodeHexString(c, "e0fae40aec21aec73f81040dc73d3e5304b3d809823a1bdb07c697dcdb37611c053abd057d13a3b6a5a4280bddb4970bfea7d26d628a08b97c970df9d8e3c938f2ededd02e25d934dea4ebd7a49aae5942d32b3935d142f4b593efdfc251c6136bc0927e80e1e246ad4081528ec39b0c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed89_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed89_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6c6f5adfc58a5575bedbdac04dd76a47002f7b2847e537c4"),
		nonce:                 decodeHexString(c, "633c991ed42e24d4cb1a93c1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "92fc2275d7f9f171f99042ccda9634d3480869ab4d0922ae"),
		additionalInputReseed: decodeHexString(c, "99b50d9e2fb9d17d7e17b53b0ac513eb05423351091a1e97"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f5b9acca5c22015948457287ed15aaf5f04cba4f6a6e2a0e"),
			decodeHexString(c, "56329f12213226d58bace8dbad203535198cc471ae628e16"),
		},
		expected: decodeHexString(c, "dcba95cba6d779d8fee09bdb785db00464910d2097225fbfa4060ce67ad30598d1e60d9063da02422b68cb7ea2102803ecb0f35439d4a1d60e67f4fd5750ee460a5de89a4b9d07aad72b3eb91c14cef2fa041406af954fe0d1ae8448bdf31ac45072435f8f0d2b40f7e3922e28ac536f"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed91_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d9d333943717fe6456bb862e6abb2da873d956bbd251e6f0"),
		nonce:                 decodeHexString(c, "8e337d3f1e8a7952ceec9cf7"),
		personalization:       decodeHexString(c, "0bb2f3c6f64b282d216b6d8a99297f6179af2ad8c8bfdb67"),
		entropyInputReseed:    decodeHexString(c, "bd9a821ee73219153679944a6b110716f87f5a64090fce1e"),
		additionalInputReseed: decodeHexString(c, "7e2dff2759e9a020e95188fcdeda0b7f24cb789d39a7e447"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f84aa3e6e46ca8aa7ac473a73e339691ef058da942b1c128"),
			decodeHexString(c, "3a94eace36c567f86401b8df0e76db8bde693742d1f699a8"),
		},
		expected: decodeHexString(c, "abdcce745ff6636fc9dadad32cdf004e1d72f298421709eac295780b98bf4bc7658c56e0865a1840a02eca53145aca320164346a64aba2afde7c86e86a28149ac0a8da114af9a342c4a26dfacd63bb0f3414260f6287db9eb8da3d7edb82791feda5cba7503665c955a62ebe21b26fe5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fb75418a0d60f7893421994882e11cb41dc66be51ae2cd5c"),
		nonce:                 decodeHexString(c, "5e48c27e85c75e2de544d0f4"),
		personalization:       decodeHexString(c, "f7973a5dee9c92bd8f0be30208919a27c3990ea3264b17f9"),
		entropyInputReseed:    decodeHexString(c, "baacc8acfe9e05bea0cae875089ef9990c3d69678e9a48df"),
		additionalInputReseed: decodeHexString(c, "bceb919c51f16a95c335bcbeb4ac1c911d29151906c41dd4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b6428a345fe7b7feacad3c93f277799b1d42b16856eb7130"),
			decodeHexString(c, "b022eec8737b3128b5964ab109605748ddd9e1a29db37b23"),
		},
		expected: decodeHexString(c, "c5a9eec1a948ba7d02a1d8ac2d193e8762acfeab0cb963eb5e3539cf2f5750c469cbb9a295e54799ff4dec0af7faa8cd69b039e55d5538ad7da41d30328de0dafb5f939143babdf0457907afba35b0445519d126ab835e4eac40ae832eaa54267f9dd99d8680ab0c339c99f849f2fe25"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "0679aee2c7f181c9f772b9c021494097409303a3ee942a5c"),
		nonce:                 decodeHexString(c, "974960fb8d4e541a17314de5"),
		personalization:       decodeHexString(c, "339bb5b49ce83512dbe1169cdc59e0491942879f75855d66"),
		entropyInputReseed:    decodeHexString(c, "e40bbc8b4fff94792575e90086adae6569188854a5595178"),
		additionalInputReseed: decodeHexString(c, "5afad9418ae3af35c35ad159a4325329e92b061d7f0efa5e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "abf70c5da2e0431fa5945f6bfb31b62ed272a087288fde1a"),
			decodeHexString(c, "9c7b4c1bdfa1324c2c7458b8375ed26a398a965da2a58cbe"),
		},
		expected: decodeHexString(c, "7dc96efac17cad090342090104f14f27dcfc5799f734c25b14e35ead5342272604b246c32c2d1ab837866ad89c845ff4ebd91b303806c0fcf96d0ecf7798f0300f09e320f0658bf5653e1160d71efc8724038e7afdc0d1879973d54a3f5bb5ed946f69af17071bfdd3cc5bf5722d6ec6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "2f1f60fc8d137afca7759a44a386385cc76710d8eba3b94f"),
		nonce:                 decodeHexString(c, "e7ec00f81b21d08f2f47da63"),
		personalization:       decodeHexString(c, "5167e0bb29302e7fe9bccff887a9a7ea93e3728c23a1bc0e"),
		entropyInputReseed:    decodeHexString(c, "58e3ed01ad599e7a9146dd55941ce8283806779dd342134b"),
		additionalInputReseed: decodeHexString(c, "ad0e83e7b4e06122584051d196f99fefa95f7aa6f541bcb6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a37b6ea146e33fda07741db8fb2f29c62280bb4c82dd4090"),
			decodeHexString(c, "e01256ad8e7153c354c00d536de9d36640a06b6be8e2f1d7"),
		},
		expected: decodeHexString(c, "49b68499d221a052167649038f61b4ecce9d1cbb246dfee84c4d1b20a8ddcf4c8a9c3178cb17cfe43a1cefbebd79b7498fc242d59515fc0c50c08385f0a4efb570c47066965a0aa5552bce576a1ba009fffdff762676c7ee457d8fcaec5f46894b040367411b235ca38167fdf6cc0a03"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d860b38e61dbc4c9c035aa8abbb77e064f20610984f5a14c"),
		nonce:                 decodeHexString(c, "4e4fc976768111fb65308596"),
		personalization:       decodeHexString(c, "6945439f28d1cf904e0974375aa435832edd590b003ba70f"),
		entropyInputReseed:    decodeHexString(c, "1e771a807de6eca469f69960f8fdfc8c37e0dfffd72d2d43"),
		additionalInputReseed: decodeHexString(c, "22fdcd5daef6c86f5b1744c46bce561fbf57ddd5b117d02f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f6e344c827dd08b2a2d9400d6180ccefaead2c52010d0114"),
			decodeHexString(c, "9073f7113a46e6909b16a33574566f1c0ec2674d8a75e0b7"),
		},
		expected: decodeHexString(c, "67259053f22c2d6649bb0366581489dd02eca1151e65ed6f7509aadb4c0e5c9faf019db798cbf963b4bd53bb87508e82d1257f9f569c9b12b01ade95ff9dab8c5b1bbb5932ae740ffd43027bed87ac8041655319c7fd1e3b3ba9549c49b59dc1a72137312ff3efd642d8535cf289dc0f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d45d0383207d782feb219616a98c9e45255d378107ef837a"),
		nonce:                 decodeHexString(c, "fe696a927be58c5f91f45c24"),
		personalization:       decodeHexString(c, "b91068d9ac144f309a445f18ed40b082ab745fc3445c7421"),
		entropyInputReseed:    decodeHexString(c, "4a62006aeb9723886f80e054eacc8a62fb6439f0189cebb9"),
		additionalInputReseed: decodeHexString(c, "2cc53c602465ed4af0f5a48badb9dc44f403c2a109655fce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8bdc87f6b2f96d73cdaa3013fb3d8c5514ed4d6e1b53635a"),
			decodeHexString(c, "9c5d4c19675757b934c859d4235d3dfbaea14f18eecb06f9"),
		},
		expected: decodeHexString(c, "d36c3fb8cfd2152ab9e6e41c6c778a8bc174639bcda8376c43b51b2a2e539e006de7e39f109ac875e478871a9e5b5fbcc366e0f00f3813b82c35c7c9652e97c3eefa1efe5b7bd85c65f5622d8ca91f50ec6a760467fd2a3fec39f1ee0804e4f900e0bc8e4090128763c67af0978a7ab1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "5d8b4c555ff8c530e6e0f9ea2001f4ccd7f7116f0df693f3"),
		nonce:                 decodeHexString(c, "6fdb3d4833f07d1858adec74"),
		personalization:       decodeHexString(c, "46b38381ff4807b270cfa59d9fd02f84bcc795c8b3aec77f"),
		entropyInputReseed:    decodeHexString(c, "02a1a27b8ad744169cde58735b56b30dbfbb722ad67cfcee"),
		additionalInputReseed: decodeHexString(c, "ef735a28c55a5dbcf8fb4dd673dd39da0a87d58ac40a78d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3dfd5b9ddf0c4e71f4bf05e5659178f57d3625536397cda0"),
			decodeHexString(c, "2da74060a74f64b2c5866d525ebf93c42b07335a3b7b31d7"),
		},
		expected: decodeHexString(c, "5ef8a1ed44e845291240101dbde2448d1c1270876be105551dec2d602684a425dd38ae9d1136b188f1a5786d344b2f24f4b7f5f1961c585c1e2d266b29416d988754e68dab230ccca223113430fd12d8714ef75bcd793180adac7b7b706f1aa2756dde6463fb13d8648b99d548a33b93"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "82083d92c8a87e869a1a7e0b17a55316f464239e6033d998"),
		nonce:                 decodeHexString(c, "443b3d6d57a336b549ed88f9"),
		personalization:       decodeHexString(c, "3f9cca85521a420d316456fc38b5dfa6007aab31043d0e35"),
		entropyInputReseed:    decodeHexString(c, "e32643d866c537a1135d12536db73fc80af2be295d611ef5"),
		additionalInputReseed: decodeHexString(c, "921acf0a5fa7e85e545ffccb026dc0f762a17ffb3fb6a977"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9fe643a37d9028273b75bc2aa780e3dd4c8f6a0e9dfecd8f"),
			decodeHexString(c, "2fe01a28d13f16bcac19cce4e4703b04639c7f6a6f0ffb3a"),
		},
		expected: decodeHexString(c, "7e1cf6cc16252f3133a9fd7295d555100be5bc378a666978ba992bf4f8ccae7e89f2c7fbc13ffab4cdada0b46d367313a52d11dfbe23872b4804ea551c69743ccce27e3113aaf9dda6b99046edb697b3dcc3a733bf92754aae8fa76099e82eb472d0f5ac86f3dded71025ead6fff0c0e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "45426fe3c9f747115c21b8d317e52d3bf3096e07ab60c35c"),
		nonce:                 decodeHexString(c, "efb888aed4ce283cf0a92d51"),
		personalization:       decodeHexString(c, "63a9710a01baca0217b5d926b03061432dbcc8c7c9f77e00"),
		entropyInputReseed:    decodeHexString(c, "3239d03846e6d0cb575bccbf5a564fae07a8eaa855e056c9"),
		additionalInputReseed: decodeHexString(c, "261d7136a18629d1f63579bb5ceee6406d39f6113bc591bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "18b4efa7dd48c063a17db55b6ec160c9d5224910dd6d3883"),
			decodeHexString(c, "b1dfc2c97c44c6a6ec344c8f3487f5b8e4eb75d135618b69"),
		},
		expected: decodeHexString(c, "7afddaa4edc02c95a60225676baae8d226ef0651cbd26e60eb2cf943948ee7faf7181c1e07e83a48e98918e9c323e4c0d3c4097699257ead7e64d26e0232f0282b5cc67b92b935ea1d5b40df9837c633590c45290cefdcf2b4df1d3af3cc94a7d8b15396070d78332acc5b3e037278d2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "0fea4d8541c23a5174ad95620d91c87527669419593978f0"),
		nonce:                 decodeHexString(c, "bc9e389501478d0357ed1f63"),
		personalization:       decodeHexString(c, "4f3f7ab05039f1e6b827ffc94f3ee2650846257a1719a03c"),
		entropyInputReseed:    decodeHexString(c, "a722627ad70407350263fbd5352c43fbd85797dda7d3e30a"),
		additionalInputReseed: decodeHexString(c, "b9f8593db79b55cad5032b2e61599341cfdc15e6dde39efa"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bda8d2e8cccbabc1021f827129664d6350bba4d46f8e7fd5"),
			decodeHexString(c, "6a3b96e68955a33fd9ccae55f9e0f6910c4c22ab01d13674"),
		},
		expected: decodeHexString(c, "912c7eabf104b0aee7cdbf9fa350355bf10d5f64a14f5678f07f563bf47d7fda4fe57a34964351dd42ad31d5a12c7c71135c600004766b5ea4d92756fe5d15b1e67e9ee49790043040f8dc61fc8d6b6e2d5f5b6e36c6c07011fbadf6c136d1a840bf012514f44a2ad4fac606e2fdd439"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "878c4af663e4400f5b29627d3191116e422af33b22af6f14"),
		nonce:                 decodeHexString(c, "9c6752c982e3953fd9dfaa35"),
		personalization:       decodeHexString(c, "fe8dbe050c8865c29ac92845f6f28ddb77c6e40c336d8e6c"),
		entropyInputReseed:    decodeHexString(c, "9f3ec933ecf6dc6f57959619531c2119ef0f776b1bc565e4"),
		additionalInputReseed: decodeHexString(c, "1efc05522b91e6f28b35384143c3fb730954d645acd8e156"),
		additionalInput: [2][]byte{
			decodeHexString(c, "93502a9fa86d8eae25d6843e04fe8c82a0382fc2ac0cf8c7"),
			decodeHexString(c, "f9aacc8237b260a126f95b3c0b8ca62f0ae4d71f74521a56"),
		},
		expected: decodeHexString(c, "85866f935318ef1573036656f62294453225868925c75c247548877cc38e9f6a1b4e66da422f4fdde3e158b08e8197b52594c89dcdebab79f27395cf0d942225546fd3fb96db50b03ae6c4bb1886f6f759b54f8af663357f17a63e524dcc2887609124c70a7a44b74893c9b06c8a4e34"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7da2fc0977fd43ff9eb0321d25a03e4cfdfc80d48fa14773"),
		nonce:                 decodeHexString(c, "18ccb30b5ea5edca2870075d"),
		personalization:       decodeHexString(c, "7937f081519f39eba8766d16c5339b7cbb45c6273dfbdd76"),
		entropyInputReseed:    decodeHexString(c, "285063f821d95db851eb84d5a3d24de811543d9646263cf1"),
		additionalInputReseed: decodeHexString(c, "c9239379b7dff6c1df78009b0ac30e80f4e10b5eb330b1f5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "db17d0c7f202857eca471584b5a57542abd1aebaf8b6b9f2"),
			decodeHexString(c, "a900149d9d5236906479ebd89a72c0b878db02550242f3b8"),
		},
		expected: decodeHexString(c, "008a1f7143afe17713df02654a36b284a9828cb0eb207af47079c399840efb5c74dc903b0f2e1fbcb0ea93ff290327c60715567f9bae7d67429ca6cc67216c1fb7a0ca5818980827fc20bb1c4b666fc82a9c09b8f09c2a6140f28f5ba36b7bea6d9bcda20b6a359a29c16ecbc5c36d0c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9ecd1f90d4d5aea4182a75fff938d8a8cb86484f2c878d26"),
		nonce:                 decodeHexString(c, "471480fb59da6ea72ac4b603"),
		personalization:       decodeHexString(c, "ce45e03b16a00072714200cca6efa748fca19c25c3b374a3"),
		entropyInputReseed:    decodeHexString(c, "0f86a95e24ddd59c1615e9584c845d13f94f86b429c452e8"),
		additionalInputReseed: decodeHexString(c, "5dd9f4315df76923a3ff7bdac6eb0c1f6d927dbae2284a6e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1e5ac5f0d10b829f5add21649a75a04fef80068cad75d83c"),
			decodeHexString(c, "d741a3ef6707c93bb8d65575cf60a313e3c7494fd126b995"),
		},
		expected: decodeHexString(c, "6490662dc4779167d70108b458ad96ef8ec4f677215ee5349c90d3560c843dbce947a9004d45066af72066b211be874a28ad01edab4d8c7e807821dca3f9234da621fdfd7c8a180478b36b3fbd011589a116a3cc9fb8c53a13e3a4de3e19f5aa6c5e0180b099a0db7efe5659462f51e6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "bd6943ba78fcc032c7a9e7016fc498ed379f670686a60a1a"),
		nonce:                 decodeHexString(c, "84062f178c87df67f56cbc0c"),
		personalization:       decodeHexString(c, "548a3b8fb0f8e76f2edddbcf95e9b7b3aa7e9720279ec4e2"),
		entropyInputReseed:    decodeHexString(c, "d3c48858521f837cd6a157bda0a4e59aa4d4034cfb63ab4b"),
		additionalInputReseed: decodeHexString(c, "3ab57b7c62d5472d745088e4da0439002788ba29ae2c891c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4e200e05b336e2d9dd72be2e41529ce92c1ee54d5e04190f"),
			decodeHexString(c, "8452979fb7f2e3ebc1f8fadc1a55c980422e7bb2db7b24ea"),
		},
		expected: decodeHexString(c, "3ecd062157a85a061e276a82df4aab55b5e37360d87484d6c276284d5de4c6a1d7e1676272110c8331882163d3f4feb6b4babcb85b4fe780ac0c52937997ab439f46f3d942750fa081c2d7fdc4a518b219218890318f14336045994ee8b4379b2aa0543624ca45f265a13990db7c4f4c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed91_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed91_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "31fe2e570cb3b5367fe15263a11ba4a600cb04b476bc2633"),
		nonce:                 decodeHexString(c, "314cb5324246325ad47d2335"),
		personalization:       decodeHexString(c, "ea6b64a87a5ce9473c189d2284d325a1a414d5d769bbaad0"),
		entropyInputReseed:    decodeHexString(c, "a3f6bd21dbdd31cc195f58856f51ad3ec3549916d098a53e"),
		additionalInputReseed: decodeHexString(c, "ee1cf9b456a6d32292c1c085b01bd9cd5b2a7f2badccfa4c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ae9e04fdc01dc3d0d1e2ca2164e4fd31f298b3d37566cbe7"),
			decodeHexString(c, "350292c86c266d0cb5fbd155fbdc36e5f5f41c98a60a296b"),
		},
		expected: decodeHexString(c, "c3ef9cd90afd3fc84397886267c1759820817a298556cae2d5af2533c2448440bde8fa76990ce57dc3d28a902e34f124d09c3a1e152ab6c369da511de9d2b820fe6788dc6c0a4eb8915ae91a99797d7709c53faa7d647a386f7660a9299e30de2f67270f299ca66c3f273e871145955b"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed93_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "eb9a891426241d5a86c7dcf932b6557c7f86144d8cf2ba4f"),
		nonce:                 decodeHexString(c, "14d156e3053f949c1fdcc5ea"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6714875cdcd975788e520f7d5c081b91d3d5561aca0e982b"),
		additionalInputReseed: decodeHexString(c, "5abb328f83310452c3e7d0d90af1af5513ba397a6f2f8933"),
		additionalInput: [2][]byte{
			decodeHexString(c, "22294ad638b7c35c5effdea670b3ff8ac304eab7f5a92f49"),
			decodeHexString(c, "53602ff330e2fcced5b42d7adf1c241667d10ab7035db569"),
		},
		expected: decodeHexString(c, "fe6b5a3b09f3ffd043d9c961d7c905e942add00c6f22a51278e9cefd9eb5ea5979869a5a877782c8dd7a3325c8afc20bd524f39d6e90684cf0e0d99bdcaf09fc2de83d867786aafea90d61b6497494b208b5a7ba3e4377f7453333cc03f6941595b68f51b8f6170762a86777d06eae95"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "5571ed42a924fa07272a3fc0dd8b6089b5f7ec7139e536d3"),
		nonce:                 decodeHexString(c, "f5523d4d01d80ef30e2851e4"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0b11afa6e1355c62bad0341ee10eebf89305e9dbe9bd6939"),
		additionalInputReseed: decodeHexString(c, "73439bbb08d80b16ebf3473c2485e6211b2d3068fee54786"),
		additionalInput: [2][]byte{
			decodeHexString(c, "431bc835c430fb2cafe29b03a20c9bc6f101ce64e5397d3e"),
			decodeHexString(c, "8fdad9f89e02cb453206ddad4eb005bc011b6ee714277b69"),
		},
		expected: decodeHexString(c, "292cab6f6dba00c433eeec1a06381da6feaa10c83384255b3e65599221da1d797210a0d6a3cea1870586b4bae7b29dbb57b575d666c1ec2eb42bfccc10300d189a9139c0f2151f1561a092e87bc4e98fc0d2acbc16513e3d90cf733f24291e1a53f77906aa62299ab7c9e5560f646ec5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "1028facfe895046cc77b00cabf2ffa9c3fe24131db5449f3"),
		nonce:                 decodeHexString(c, "9b3e6d8576a19126bb3fba0c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7dc0e1df93575813387fda56257fd5f47b51f2b37292aa5e"),
		additionalInputReseed: decodeHexString(c, "f2150102d8b47a97a4e9af8b4bf5d38e957c3159a07e051e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a2ee04b4fe1be931ef82f07070788b82f9afebdff65d66bd"),
			decodeHexString(c, "9ff5cbb00d307869d959f7ac74bbfe82439953dd15a23527"),
		},
		expected: decodeHexString(c, "c568dd589a58de8b080cc5f8245cad2fcadca76a5ff286b679172700e77f74a0f260b17ade2cbd79b1212ea2a7f2c8a67e188db3823be23df6798a561eb3c8164cf139f02eca7c94f127cad26a930378ac67b82595b53885e96bd1d6e3badfda8af88cef2c6195461e15b7c6b9f8abdd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "0a1f6f29e0e0fe9541298cd934ac9eeee125e143be49a587"),
		nonce:                 decodeHexString(c, "d790a6b0dbbf2e6d2e62ef6f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "bf4e18bdacd72b70bce81fef9b02e5e9fc5948e593c8c450"),
		additionalInputReseed: decodeHexString(c, "2d4a12c1a36015082b4ab3c72687ba4f3534ceb610ad5ef6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ddb9d93a8d28234992cf18b701b14992d9e82fb234378d96"),
			decodeHexString(c, "e752666b8a4a7519aefddb895755217c06735b167949c2e0"),
		},
		expected: decodeHexString(c, "3f863ec90782bfeb1fcab93618af3c3be4892cfe9bc8b4bb9ff8474ef4ae7a213229797dc440c0b6562d095fb5550b7095adc4673630dcb50421fa9635eb6ba06c845c3ce5753b343a6aaef5dbcc73a3b823a9c864a13beb431ea2e3c71445a978a4fed6fb7768f891c79c02d72185cc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "80996e0ef7ad95c46a107872b8ec1145baf5a03a9a66d952"),
		nonce:                 decodeHexString(c, "c60ecf948d5684e0f425d4f2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e23fe488d61129a53137f3b23c0dcfd9ef02830439e0616f"),
		additionalInputReseed: decodeHexString(c, "b98f927515769b21bc16b3892bc7131c14e75550e7a5a3da"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b508a1d42231088fee137415beea39b4126d3859f175abc"),
			decodeHexString(c, "ece79b1c7c5b7c6e9a25fcf9a000595b57674667bfb3b204"),
		},
		expected: decodeHexString(c, "e5467d9306763f439571ed32f970191adc17a531ffc7c6604382f7cdd0c63ae9a3d0c9f129e53f683377f0f52deb717ec1bc8897ca22f2e63a192bdeebb7d912cd2a5f67c632fde75884df0c1144589f5dce0ecc77393233c517c405b4263beaf577b71aa1c497e84988fbf36dc4e3ba"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "10d018dbc1094c9af6f9ee864bca900db0202fd7a76188a6"),
		nonce:                 decodeHexString(c, "e1f8c5229da819edded6d5d7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66fe0a09afedce07ca560abeaafcf472c60c2af6d5e147dd"),
		additionalInputReseed: decodeHexString(c, "ee7ea52eb6bd33a6086b2533209157b614605b58122772d6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f200d99885e92e85e93fb0f6ef369374dd109f9c92e61a05"),
			decodeHexString(c, "2ceba42d44b77e0db6325ee7168e3b6b45babe8827d50631"),
		},
		expected: decodeHexString(c, "1829e5f46f108bbbd7350c0a93c6035d9d86032d76e32d2e56ba7868e332cd537be9c0de33043f6625c24aa070611c74bb0be325e1ff566978cfda89f5a5857fa40b96cc46888e5694301852505162f781da09740c08b8d5d50a01597ff8b6737b067a2d269a1a2b0efa1e3ca4c05a67"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "155cdeacbe0218f4d6b82371ccb20a0cfd6d49557bb1937c"),
		nonce:                 decodeHexString(c, "691d8402b16e9b12ddbb5634"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2f71df597dffd043d2793cab07ef877c4587b9cff0173692"),
		additionalInputReseed: decodeHexString(c, "ee9a936cc67c162ad7ed2f781a7d9c7ef6d7c63ab163d567"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2cdce7b7c943d40f9cb27e76c2a9e3e68cb73818f29b6889"),
			decodeHexString(c, "359151559d8e1315017aa72c0eb4e528ecab9fc40e34ce31"),
		},
		expected: decodeHexString(c, "ede50c9b420077ac604051f21fc63282bee64de5263da16f048df98121f822dc4079765c317d9a45b465aae42fd7c23bcac0990049eda4f5afee0385a3f78acb96ca74133689ac9f949d05199815f497dc0bef6f3eadd24ca572bcbe7d08db9655e41ab5cd963f419b590e741f63048d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "89bb4d3a7973f495e25424c92c7753a6fdd6502be1e77dfe"),
		nonce:                 decodeHexString(c, "b24bd9775c47f2a045876758"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e9ff5df08707a764b4da25d52d42550171f4d5bf9e0a02b0"),
		additionalInputReseed: decodeHexString(c, "dded519547bce80f963e4281e0dedcfc20591eed1946be89"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5d8e9ed604bca5dbdee89de54144eb49157b5ee2a3a46ef9"),
			decodeHexString(c, "259de34687678969795fb7f20fd448c828ad50177adc3355"),
		},
		expected: decodeHexString(c, "023710c89bfa5fb70d6372fe7ddfb3d50c9199773ac1f7a2faeac134c5b6d22b3d86201820c910f5c1947ebc4388ba3b7c560bf599b193a90be13a7bbc7a302fea6e6dba516b7fe7512eee1bc246340882a3b26f3333d2b8a0a7437007f4aee4791f863b4a9f66caf0065001a1e39a03"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "90693701e20d455a7079ef8fd33a7c7b6edea174d737c1bc"),
		nonce:                 decodeHexString(c, "96aec4e48381a9f943dec370"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dbb754bdc170002fcceef9cce1506b7946e6f6d45287b8c3"),
		additionalInputReseed: decodeHexString(c, "797ee86e68966e5d72878171a81fc67d4a778831f9dbbb4c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4a56fc282ba5f239b23c942e46b577f0659c0e77cfa763ce"),
			decodeHexString(c, "f4b9234778ff47fbc28b47266dc0392d5637eb4cdad2a116"),
		},
		expected: decodeHexString(c, "e33b556f97d8a87b6f00eafea411ca8335469659e97e22a5438c5aa33e8194dc407fa59b04f02d6b156470b5e7fa5ddd39d1d3d4e80824031420f0816de0d46c9d707b9f3e25ce917a4bb051782872134de9c4b7e866706b7c1a36aa2315b4dcbb7f6fd0bebe0ca4d71cff8219449083"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "465e86f76d7568e2d4b9d4b716554c67b26df868be7e9f95"),
		nonce:                 decodeHexString(c, "2f79d508c430986b01b1a08f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "662bb0d8f1040fdde39ff7cdf817da9658425c2b1920f556"),
		additionalInputReseed: decodeHexString(c, "1f13aa4d219b6a767e7ed0242e66368221203ed20bcee6e1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cfa8cbed9487c1ae8b813a8e8c99086773bac8704dc77b71"),
			decodeHexString(c, "e18c9cb0d87006af1453e0baeb22e37210cb9743a209b326"),
		},
		expected: decodeHexString(c, "0b44c3feca5f48d515a43bf2d05dce8e155ed5b99c082744e7c529c98d09991f07200bec149affe6c989cc38f268abbf4722bb3a41b25bc4aa1be8afbac4dda3d9696ddfcc539a03d1042002743722efcc07a7899922da61cc621ae91940c49b58bf436ffb7ebcd92d0d681ea10aa41b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "246dcaf0c46e05f7578c14cf46882412887399e6002e83ec"),
		nonce:                 decodeHexString(c, "e73577d09cbb867b68b2de90"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8b2001872e9b14e2d1c2f8cbcbe106365d719e575b8fa6ff"),
		additionalInputReseed: decodeHexString(c, "0659e58e7a62fbddb5cfeddd2d11071c4845b73c110426dc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b64b1053681055055c6b01055d4290b105c9d368cb546eb0"),
			decodeHexString(c, "cb18271a562d3ff7c26182cbe3d7a2440fcd0db58e4514e8"),
		},
		expected: decodeHexString(c, "0ab1c7cada2c8c3bc335843000084d3b24a6eb4cc5dfa930f25b89e163e9c68fab1c0f0e78d235e940174bc0bda3362f5d55fd1709f19928602cf3fcc1eeb8485200aebd0a91ebb889d78fc94fd1bca4bec405f8e226a05517f83e7023774faaf8057c216a8f37c7a4bf91faa1478cf4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "553d744c4329a04c6e1f8833d1074146cfcb212cc08fb1ef"),
		nonce:                 decodeHexString(c, "e8f5c5514039ba4d25cda95d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "36bec82b2944bce668441802015e1fe14a2bf91356cac52e"),
		additionalInputReseed: decodeHexString(c, "b5eb000f1dfab7d002d31b4638ee86e1fe0c5c8d96e16473"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ad6ffcdbe5b496c1dfc93c931427ce20c47615c243c0252"),
			decodeHexString(c, "65946a1a8d37ee67e14522d866e511948a44cced77ed934e"),
		},
		expected: decodeHexString(c, "c1ca38b337f14aaceec18a7bbf21daf3efb4242b57b6ea6dd16f995c22a3a831b57d438968b1de612fcd1aabb90cfa26345068d90a186d5b6083d8771ff0e199daf715f409159a5794f2c1e6a05ee9c31b24491e60c21457759599cac4e56feebf40cb090fa9f4ccd59260256a492c1f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "897efb68080f2ce465ae08e19f4b3947d761b8b77a5a291f"),
		nonce:                 decodeHexString(c, "8c7d40e98310a16f394dbdf2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "66fc2876f8c3558ec8b98d266f272f5440d2866222d1a6ed"),
		additionalInputReseed: decodeHexString(c, "277597e6a468d0422dfb712cf7d0d8b095b033a62130d41c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0fd0d3454288c3b520b932cbd692595c29c119a9d1895375"),
			decodeHexString(c, "c5427b9eba81b269e4507a9918b66d1bf9f4108447c49a5f"),
		},
		expected: decodeHexString(c, "6fc92c5790ecd366131ddf27a152a33371061da6c8e430fa17d94b9a332d69df8369aca30a4f98306c86baae69629bbc2e48ac2a69b91f1114be08ade586a6e60052eb751a405862de5c6435b4717f69dbdea37638c07524923ddcaf42d1968e8ecb5cb50523469b7635d0b98f6ef3f8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "c9f2e09ee494acf8d426c5abc979b1ae01827270ebb76ecb"),
		nonce:                 decodeHexString(c, "fd264f5a699b9631e513416c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3ec7d820cc91178a4720df599fc5c14c85d2bb156c5fae1d"),
		additionalInputReseed: decodeHexString(c, "47674f6508e5e66ada6ab404e77476d026e2b4948a7b4076"),
		additionalInput: [2][]byte{
			decodeHexString(c, "351899c573c494f97f060abdabb840f7afce818b2461dc12"),
			decodeHexString(c, "aa8c50cb41b3fd625367e6c31b91e422ce56e87ee8b51b2d"),
		},
		expected: decodeHexString(c, "cbcd9b83504d459d28536f630cdc8c13de029539d372868df48e8999e28b4e3d918f4d2073d40414b577c7517dc05d519e39837531afe8b509bcc7ea05af8cd95b6bec4a86e74ede455045f196708aa3a0ca885838d14587ab3a53a759f6d584a3b1cc77bc75c6b308d8d739475ccedc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed93_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed93_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "d86598676e66b75d0058fbf6ca79d68b1446532beae7df8b"),
		nonce:                 decodeHexString(c, "b0c2dc48c592738255b24869"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ec63fed0de3f9b9319797f9748fe987294032f90d55cc513"),
		additionalInputReseed: decodeHexString(c, "7853c789f2eb81eff58940a6ad3d0d05c146a85453dd2cc4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cca77ca08f756dfa91d7b0d83b2d1155031a58dec52c7a7c"),
			decodeHexString(c, "32b130f5b098746b05e65f4f93dcf518ffb044f3d56ee091"),
		},
		expected: decodeHexString(c, "9a9ad7e3fbb2a12051e06f9373543a2259ca55ac75c37830f4277eb157b203ed8f7874bfdc0916a0b55aa3e4cd37db521c8e7fadcb105612bc62ecddf3dbaac21685cb31cdd2b72395769c668660a7d72e603e6e436dccfaaa2fbacd89466131baf29a45d86e2730c1185c9f1dc9464a"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed95_SHA512_224(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_224, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_0(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "6e42e3d19c0521a079f0a432852e418ecab88645a74c8d30"),
		nonce:                 decodeHexString(c, "ac32ed505751b0b25afd6780"),
		personalization:       decodeHexString(c, "62d28a14d266c887375466ee5e9fe40eca3bad0c68405f58"),
		entropyInputReseed:    decodeHexString(c, "6725b17d61db79908948db4369623ff2040e59c2ee2eec83"),
		additionalInputReseed: decodeHexString(c, "02e5d9af19bd1aea54d09a379c83ab6dc7a9236222701359"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9f618bac413f620cf177f617e51bf0f77f845a3e265b987d"),
			decodeHexString(c, "d65f6032405a812ccc81f422fb12efa0b07bd4f6a0c43955"),
		},
		expected: decodeHexString(c, "73e7efcc8d61db8c764dfac4c83e54664c029350ebf653178ee05926f340f22b7569f02d1437dd371fe28d4c8e6f72487b157e5519f6b38a188a9cf92a1c8d4b5c5d5ee137daf6de203bd488e433803091a338f01574748cd6c624ca1c82d36d1ff71142cec9421eb114238f6c12b765"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_1(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "518e8f4f41a3264258081b7e5bab19277fac1f0df2d81c17"),
		nonce:                 decodeHexString(c, "c8d896eb764569fce258f05c"),
		personalization:       decodeHexString(c, "5708b7a10bc0b22b32cfe89961091ffc0f26d3e3377355a7"),
		entropyInputReseed:    decodeHexString(c, "3b657e73af4fbcd5c9878ab908f0a24bf355d3eb1c3f7092"),
		additionalInputReseed: decodeHexString(c, "3452392f23050f2cfc2984c5d3bbd38f0c8ffa870e67219e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ed710e5e2bc9b9030acef3a54a4c41fd0c6b98a1f85d940e"),
			decodeHexString(c, "4de0ad2a6aab12e5d912f07858f8d656c9d187e45ea9a2e7"),
		},
		expected: decodeHexString(c, "60fb3668316309b885aa27ed4da49cac1b3d0564557a6dde1dda878f3c85a101f26d94c2b73d344635f6319807c669c2b6e119f2da4f0955e34eb6d5587bb6fc695df5beaec3804f90208f34c25424e946f9c7431f11c55763a9e79461a2dcf89bbc32ea36bc59f7ba2017c967ffdebf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_2(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "a3f32e615ff86bed6f6d4de4c9eb47481314cc21fc86a343"),
		nonce:                 decodeHexString(c, "94a05be40b07a355bbeb3ea3"),
		personalization:       decodeHexString(c, "412c995345154e80803fd9d191e578a284245c6b4d2227a9"),
		entropyInputReseed:    decodeHexString(c, "043dc317266cbfa7b2023780f58b64acaed838bb69bcfc4c"),
		additionalInputReseed: decodeHexString(c, "0f28063b9db829619fef2fed2805c4ce96f2d68471bc659c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "733b106da6e7aca102a5521fba45788afae41040424262f5"),
			decodeHexString(c, "cd92894bc5f8e6d87729b7890267e4527dc4d725780f41a2"),
		},
		expected: decodeHexString(c, "461c06e5f04688cb2c82f7626343166a3caee3aa5903c08fdb10bc93f2770928f2a55bcbd6cf198b38e21851ddd639740a6dba90e8763ac830452a7213bf2002d28036b59880bfaaafaef16ab26aaced7a51a01ff84482751d0378dd6477f2ccebbb54019a24f60f3aff3028438a7873"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_3(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9e526ca4bc0e0a0f42b027b34c386d80233a6e28c53b9079"),
		nonce:                 decodeHexString(c, "6a2aea87bb351aa65cda363b"),
		personalization:       decodeHexString(c, "0d3bb3638d8da12fd9de7d23e3214b29d918504438615901"),
		entropyInputReseed:    decodeHexString(c, "9302135dc7de9bf5b3f98e98f8003853198d62b1597c2c00"),
		additionalInputReseed: decodeHexString(c, "bb5863bbc155aa084e8d00fdf779e38353ca6756765ea246"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9b0a93bc4a75f161e5b0207f66405be6cb7bbec2bdcb77a4"),
			decodeHexString(c, "e1c5381be169161ac2675209b9811f41ae28dd7ebd77df82"),
		},
		expected: decodeHexString(c, "384573d0fbde5d5babfb0e2a27bf760fa5aac7ca401ef43207a88d210e65543a93a1565451948d9226c58f7e3b61c194b193c440321a0d7f282923242ca8f1aec3e02b86e3f618d91af7376377c094d62fd5a23a9541a77560d4edfe4f60e245988dea0f79f5297e4676977fab142ebf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_4(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "fcf7fdda4f1ee2acf2d849a6eeaaae7a2cf56581ae43fd47"),
		nonce:                 decodeHexString(c, "3e7e753379e4a522205b5768"),
		personalization:       decodeHexString(c, "f6554031382d7da6f02651b5d81d0eed01396fed1290c1d4"),
		entropyInputReseed:    decodeHexString(c, "fa8377df3cab75d6f17afc43068cc770f322d70f4457029f"),
		additionalInputReseed: decodeHexString(c, "1de7771014355f0e4155c874f40d72cfc4e7e78142e42d44"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1a22a454fbacbf6b9eeae2250e64fce58704bdd9f65a366e"),
			decodeHexString(c, "857d30940a9a242b936c0dc0b2656b2c5dd2572812f5a1a5"),
		},
		expected: decodeHexString(c, "9b5d1b98416fe52d1a6680ec9c7ba279c5295ebc4a73be92448d449ab7253c97d9846e558ab7b8fd3565019dd72fd1cb90e72e68516513203f454f20dc5f38b7e3ee6c810188d414466f7db5652f381eb6070dcf3aec099a0ba2f18a62ce9b7314368bd8c7e56a19032b1af75e98de54"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_5(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "24bbc99ed64e385ccb84ef04ce6a21adad55fc1f30f5dcf6"),
		nonce:                 decodeHexString(c, "b6852a94d5f97af8ba988696"),
		personalization:       decodeHexString(c, "e7e47fe1526ad0367ab4238f9e1bb8e3552fd8568f85d383"),
		entropyInputReseed:    decodeHexString(c, "59ab4bc3fbf8ea0787f537102490f3a7b6bacc4312207d39"),
		additionalInputReseed: decodeHexString(c, "2e31a1c020676213380402272359b261db226df3d4b7edeb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6968021729def430d1aba33dd3ffba23295fc076582b15dd"),
			decodeHexString(c, "dd830cd724f37f2e79bbbc2afba136140c6cc93ae807207c"),
		},
		expected: decodeHexString(c, "a7ca0fde7961b7d472cec6759e182d0e1f1e3d6593be4b70d8043ff62d07ef3b2f66c9eaf15ce08629468a6b7fc8ea6e89b750abf3ee46dc3206fb35ec630102b78257e2c36495c189769d47ee195e73ff010d31ff018ed34bf868f0e57614b6e882d017477108ad669bb5f198d90977"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_6(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "7665e81681c3b88af4b2b9fb5deb5bbde6200c605e3f84bf"),
		nonce:                 decodeHexString(c, "d07da1b39a10dc236ab1fec3"),
		personalization:       decodeHexString(c, "8d5997f382d59fc926173c30b9faff081fbe27a106545295"),
		entropyInputReseed:    decodeHexString(c, "1bf81e5d37cb2919d4120f597efb8efe925206b7cc7c7580"),
		additionalInputReseed: decodeHexString(c, "d0c84c33176c9d58bda4baa9e4879839cba3b2541fbef595"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ec81d12ca2b13baab30ee79b15097d9be2696dad96374b29"),
			decodeHexString(c, "7832a39fa8a0f375694255d3755aa5e76835bff2236ceb3e"),
		},
		expected: decodeHexString(c, "07861cb3216ab8fad021a0a894ee39cab7ca3004f85422930a53cc37e2c043881915f45f3714008d7da871b04cdefdc9c351e6d9750689ce4333369e99cefb4d399fd731219a319acb4f4b67c9db73ef974e429ae3cb013fae4e48c2396c14a45f151f36ecdddb1f0b0e136cdf3b26a9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_7(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "ad56ce13874b738b970a01a0f02453c302a76674e6651347"),
		nonce:                 decodeHexString(c, "1d17075300ddd1c406c6a8d0"),
		personalization:       decodeHexString(c, "35167dff556f02e12fa71a3e27268391ff653bd2d0bea772"),
		entropyInputReseed:    decodeHexString(c, "8cad31d45513a017f50a3fe0b6d9f899499025b396fe7d45"),
		additionalInputReseed: decodeHexString(c, "2f05c322bd13a463264499c2a0aed737be3e33e7f85276f2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c87636844d243faf6324df31b89aea05704626c335689efc"),
			decodeHexString(c, "416cbd2b175ee03e63e2077f29e7e29ff8346566d5d9bf4c"),
		},
		expected: decodeHexString(c, "1d698e572f09dc9aed5eb8748f0b735c8d66e2146324547fb0252bb5dadbf8944d4de32f9f3f08198df3636dd0f092110af687ed36ce1ac506586df053d8fd3e7c58dd8db6074ffec4002e80260116ae46616ce3efc1fe49046ee3e77c399e52cc8bdf73bf904a84f2a5b16682095e49"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_8(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "79be524b0328ab43ef8f2239907fc0dee3fe3e5fccdd0270"),
		nonce:                 decodeHexString(c, "e1152c7e6d0b9c3540a89f63"),
		personalization:       decodeHexString(c, "376136e81f8038c6f029e757c4a8c9c975610859ba023e0c"),
		entropyInputReseed:    decodeHexString(c, "d807115286192359e9df8cb9e7daeb149ad10a2a5330bf97"),
		additionalInputReseed: decodeHexString(c, "0969eb37d39ee68a81491a133688db440168baf55e5c0c98"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32822ad85e56a5ea9aee92d0e6a6f4af516d93eeb89e6421"),
			decodeHexString(c, "b95d9f3c74f1d366c91f5fd18afd56a5ab7f2084c775ccf8"),
		},
		expected: decodeHexString(c, "f4d16c2a2c9b6f2c6f9335935c6aab6bee8585e2c521e4a8211cc997221039ae7604883b0c1525e7a9822ac8fe0befc23d29187e6355bd204a74f8c9f1fadf2c4e5928b82f99d010a52b7c81cf28195a3fc9cdd224666048285342f357738d1b4c0f3f62e67271d28c431057919a4ee9"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_9(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "79a7d7c087e3ca306d7d03d8794a4b4d92fe937c410a094c"),
		nonce:                 decodeHexString(c, "1f2a6877d1a602b79dcfeed7"),
		personalization:       decodeHexString(c, "e342a6495978482dcc8d3cfe2eaecdc50d41b377c30cb868"),
		entropyInputReseed:    decodeHexString(c, "f574cad7c3a3acce32b6e94143a3419aa7cbfa7be5bfc363"),
		additionalInputReseed: decodeHexString(c, "50166f17b79fe48cc5be4864024760ed8b8b2eb78c5f3334"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6964419fad4dc4084ad74dd9a44f1e714a19b817be10c888"),
			decodeHexString(c, "f50a3709540a9092e0ffdba76ae4bed12f3da01a440a059e"),
		},
		expected: decodeHexString(c, "4a97844ae600417033a37b90421dd0a556b2e1fd145714cd9d7e35442cc5bb7c0aaabdfbefeaa4267392ff89299edd0a689276a664292aa7ec1c505db34c6dfc7918bfc956219f9af21b6409b208e1c80b4b4a85800bbd7ebb7c484d27943f6171a796cd44eff6bc57ce684e6858dfab"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_10(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "3548e7917355dac079702269d8fe13fdc0828a68cd7f254d"),
		nonce:                 decodeHexString(c, "609027f0500df47c73f8994a"),
		personalization:       decodeHexString(c, "1c79d5c06a2aa3a35c21d168b9628d58640ea20877d6d5ec"),
		entropyInputReseed:    decodeHexString(c, "29b0a7a769a37535a2e22326b0c689cf79611e420def8f3d"),
		additionalInputReseed: decodeHexString(c, "ff7429b698967e4cb6730eeb3ad7eac6865a6601ccd5f7d2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a700136eb099e333becd2891ab9815c39219d906adeaedfc"),
			decodeHexString(c, "b182d34caa6797ac47601206e920edd3f9759473fbf8b156"),
		},
		expected: decodeHexString(c, "7b88452ba483f6b305418de790f8858d3898639da7935db2f3ae352b62cbd50a26213b2556788b9305a919c2d370ae46aa8054999527d1b8765a4aa086462a310de1ce5a0ef6ff005843b665577c1e45f83066e3bfd02e7d03694b90950e35a3cf759aeb8a353326bd19a489b5b8cffa"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_11(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "77710bfb135dfe29f471771d57e8e70e4637ce70b9e2bf47"),
		nonce:                 decodeHexString(c, "56069a6f32699fd029189003"),
		personalization:       decodeHexString(c, "bb286ff69391c645ff8f02a4771ae5efd4df693d8e9fd334"),
		entropyInputReseed:    decodeHexString(c, "7ede65400e62e452db9a6ca39ec13cc5a223de50fc1fb5c3"),
		additionalInputReseed: decodeHexString(c, "7029bcf0d9572bef1a29bc77f15f82e6dccf639b0517232a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1245da17aa76b793088f050aacff153f7f848e71d84b3d22"),
			decodeHexString(c, "41c3c19acadd4ca660793ccbda3215fc32b0beee5d17aad9"),
		},
		expected: decodeHexString(c, "b07bf3e24101ee6c9dfe8ebb8868484e28732ea505f03702851d5e9ea04141a98713f1de1e4489c00e5773ca2c51c640b1fe227274db722279cf9e93d97274daf75b7de7515b83371282cfcdf2f2ff826d638824b1f905160327f17668cdd039f8bd7b4143a069c6eb195a6522ed8ba2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_12(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "39ecb4e8c62d3b32fa9f4e03983a6eaf3170c5179a856d86"),
		nonce:                 decodeHexString(c, "d6b1274262f2ba9726d1246b"),
		personalization:       decodeHexString(c, "8f220686c4864616cfc335e10e3bfa46a5f4de9bffb4b4ca"),
		entropyInputReseed:    decodeHexString(c, "b0b27ae6979cb11e92fc8b85cc628118ce034ab8f9058c67"),
		additionalInputReseed: decodeHexString(c, "78a532099948c7834807da2d1ceb62bb3e2185eb45db9036"),
		additionalInput: [2][]byte{
			decodeHexString(c, "63787b77f5abcae651021b74b6fac64951b4c9f94b29f8b2"),
			decodeHexString(c, "8a53104115156178d48602e3d8a50b2222e38c29c3c8cb76"),
		},
		expected: decodeHexString(c, "ba2507a6e51f0e8ddf0acde14c9f39672b63708e5ed70b512f9b922c93d5385ab0b3efdda1ef5bfc73edc716c1d69ab0c262ddf98313511cbc2e16dd840485b97f61453d12f22298fca55b0db26a0194331724261d761c8faa07d5429c58b6411dc650048c62f3fff09dff87a563493d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_13(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "9d260005673708ec1cfd09dbc9565ba26afd82dafc6d21b6"),
		nonce:                 decodeHexString(c, "9e7a897130f375ace18c7237"),
		personalization:       decodeHexString(c, "0161bc5d9d8f2f2442a6993905584ef4c4cb64a5c2688b5f"),
		entropyInputReseed:    decodeHexString(c, "697b24aed1cc0b80c7a184e58b6f5e43037ba3c1a565daec"),
		additionalInputReseed: decodeHexString(c, "45af4e1a67c875ab7cfb45f2b0b0753157e5e83554193749"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8a93cc3b2d9092b94333135df0b6dc8da4c72c349c2c58fb"),
			decodeHexString(c, "cdb4b1b224dd48c2eded73551ed4955d9ce4edb4ff7c118b"),
		},
		expected: decodeHexString(c, "ed6d911c60f0db25fa187308f10a24016806cd0d7c5c4864c34160b78ce4baa7fb814766e5769c26b619f16481b2e9b2384fa6059fa63c2ef6b6983357af123cc87dc37420f824250c57fcd29290140e588e29cfc54abdd699b4a5c3360705a064f7e7bafe88c74e64cb91b4f16148b7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed95_SHA512_224_14(c *C) {
	s.testHashGenerateAfterReseed95_SHA512_224(c, &testData{
		entropyInput:          decodeHexString(c, "195ec9d40c8027860bb3253b1fbcef75ee27c42473b46917"),
		nonce:                 decodeHexString(c, "1b48d29fb81f80b11fcfa5ab"),
		personalization:       decodeHexString(c, "83211f13d40ebd2d3e2363b52186477ef8ee3a7d859b2e1f"),
		entropyInputReseed:    decodeHexString(c, "1d99fffc5ca6496c96783590632a7e4705b876ea8f50dde2"),
		additionalInputReseed: decodeHexString(c, "5224a4b038ed60a5ed152ea243ac71d4056f6939559150e5"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8e79ccd8692835c5bbd07f10803670f9602f1594cfbdc4a2"),
			decodeHexString(c, "24d28afd672c518e76a556e665442c8e27f17f1ae7c03a46"),
		},
		expected: decodeHexString(c, "f9efd5a56af1beb66bcc002fffc1ffa8bd7c3de520dd6ebcad3c2928b8f74d2678171faf505c4d9ddb6e1603471abbf9c3937f48621f4042402a3fca4ee9e93118af3dc87678e2328d163a8b28127f3b2d1de60814689cd1be4c754443615246bd046d256de7f6dc5381442cebf847f1"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed97_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "64af5c3eb7222d00484dd3203c09bdd4345120dd2d68c5ed1f073fdc45f35320"),
		nonce:                 decodeHexString(c, "b337103a5a3eb8e4ac9460fbc44dc5b8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "41b0f0f24d914f2b0688bd1edc7928efad8d9d663e95028a6cd859457e057822"),
		additionalInputReseed: decodeHexString(c, "61982caa36be9694b3c05fa18df3b859f2130bf775e023be4dc9698fcb27ecbe"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bc696bbefdcc8bb62488418695908b60da8918e9bc6db9e0a8fb90481341ba67"),
			decodeHexString(c, "023955f0f82f071012034b86a122c12d7774b8318e01de6f5f27a25346738969"),
		},
		expected: decodeHexString(c, "2a69fe7fcc6e2fd7d63f272de821d2ff81b04a1907c07597e4e130ac9e05f4be621140c5a1f2f9c3d1ea992a1d54f466033ecb786538d3722807f11ecd158b9f54c8daef9c0f60f306144309025330be8b4edbff5e5cf0ec7b3cbb5e1cfd6d726ab4fbc6a596ea91aef91e55f9345e9dc0e72843299dcf861c3e857bf29eed3f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "60dff05d77e9418be59839b3084bad17fb6a15db5a23faf4d32161766dd53a37"),
		nonce:                 decodeHexString(c, "65f8f89a010cdb784efb91de88f8d9c0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cc94c0c1c04b7a7c81e39e7c118001e281b61945908345fbf94c9962bee121c7"),
		additionalInputReseed: decodeHexString(c, "609f67b86c5f8d267c084dd482e0cb2ef3c02554983bba677a5c0ce3bc889877"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9eab7d6c57928676928e70172c41887f5ab170260a024883898127d6db3cb91f"),
			decodeHexString(c, "a1918aa64d985b59f62d6520a51b553395da6d8036edfd58927a0e73e89b82da"),
		},
		expected: decodeHexString(c, "adc36223c60053343f8bc226fdcb6507d1a058410800dbfcd0b20bc7212d4c01507472ff92fbc1faa7465992d9d208ff5c3e512ab790873423f47779d061f7a9b21c3771a7d86d7e79387c8a4e10188fe8bf64cb55cf7943edf22f3012f64f88dd06c2e50b6e6ab8cdb1bc2cce9ebed97327ad9729d09ed147b0501ba81a3930"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "9e538a66bb1e1cab88bdc5a5cb2d6bf72fd0571f4c7f104ecbf6e1c2b4ac43e0"),
		nonce:                 decodeHexString(c, "c5624ec3c5b2c1287620f35cfc75a448"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "377692c2b986b12b092690fe5d6d886430b4b32621ded6fe4fe85a917cd51b09"),
		additionalInputReseed: decodeHexString(c, "79a1bf12ed855724eb61b011f2bfb346cfeccfc1226d7ad0498a181dcdcdf33f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e3a4e8f8db698c703307c671c17f4287eb9ccdb376fc0a2d0882eeb0e8916825"),
			decodeHexString(c, "1a8c420abbc2e2b84f99602f7e96951f0f0f4a56d33f628f9e9dbf4d0ea73206"),
		},
		expected: decodeHexString(c, "1e32da5ee66876a94c6a7e1d895967b6da8bfc0839883891a6400e46847eed407773af29276a47f387346b140ac84e77570376f782dfdeb6458fa875480ce9405160486c400a32c03bd93291d6b2e171e03445f380b01ed006477b792e1a6369cfc3ea1e5aa3b619badae18e2fc76921d86cbbdabb610be03abdcac0421614fd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "037fecc968de34bcb369e9ec6cd58d0e1111d14e69dff6509c6ab74716e9a026"),
		nonce:                 decodeHexString(c, "76eb9573a01848038e7132931c3c88ef"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "792941a0ccd46b63a03e0f5d0bcfc3637c352770480d1b9bcdf7f29e879ffb6f"),
		additionalInputReseed: decodeHexString(c, "bfa3efbbe27640e4945c3bf274b3a6426c5591eeec708a509e1c47af4b71d0f9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "184fa46017ee0b759dd76462c304ba3451d29f9625627703e25b3c0a9110ded5"),
			decodeHexString(c, "f5b7d8ee5fbe3787ae0380f153da4e239ee6296febda15d9bf596199eb1df202"),
		},
		expected: decodeHexString(c, "2385a2e96e7984221997b396f52d9230a3cdd09a642225976766c669eb4a5348c5bc29e2365ee2d9c1e9ef339a7ac288da20ec026d74604361bbe250f18e5c5f0193e604e8a2e349ca8766380d423c403ef41162e469eb42b75b0e43e9e5965e3d3473dcb86f02a494bfc34061ad6e282a44ac71b23e95de976d436f4c956dac"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "9a073f4d56d07370650f1fb8ac472decab88cb3f27d728e76fbefd9f29bfce2a"),
		nonce:                 decodeHexString(c, "975b59cc9723b25b856c1f9c79e76ca2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "46e5a9ddcfa9b4c1b61531786bd99b44c19b770ca9f28316089f33d6afdb13b0"),
		additionalInputReseed: decodeHexString(c, "ae01a36eddfa7832c532c04c0a7da692db6d5fb75d841b09626747cef22a8821"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5bc8ff53ffdd3f427ef43d4d5e7d272c2a58501a794e48fa567070978342a50d"),
			decodeHexString(c, "7cb55af2f3d03029caefa36fb6b1e5bc04a69a595a31a3c78ecf8debf8f87e98"),
		},
		expected: decodeHexString(c, "eadf1d0d50617aaf0ffb31497890f36540993d50999027b2754b73ebcf137476a3b51ef68437d647d6df658d9dc3cea1dad7c7c6863a7db6890ebe5688d2633d39147f6d8cc316b85695b9ae766d4b3a27dcadd443073b816363b6350d2fff3894a4df4e92519d3ed33fa34f123fcc4bc3eb3598029dd7f718a1505a128c8b21"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "5d097201960905a6fcac5833eed29feba2aae5bb99869bf154ba97c8a107e5e6"),
		nonce:                 decodeHexString(c, "bb34831d92c32a7cee9369bb593bcd94"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ed7975b097f14a1bff59b8390c01a7f814c754b7fa2bdb4e80ed1e59fc2cc49a"),
		additionalInputReseed: decodeHexString(c, "bdc86d7ac2429517989c1efecb1a42bc500e052834b6dbf239b530bdf52164ea"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bf18d9e54432c28ff7f140f550ae8e7ab8cc8a9b17be0f4374eb5722bd30070b"),
			decodeHexString(c, "f3311fda92a73422d6e22a352e0bf9e00831ddcf51ad46cbf028b3a772c66fb3"),
		},
		expected: decodeHexString(c, "05bc5757cfe935bfc5624c1050651e9c8245d286e086ae3020819f2a8b047fa1c74f85b505f61f7797bcb15828b62aa28d0f61005f31c0120aa11d469c204a92e73071dda27052032631b3dd27d5bd27f72b052c5019809963254bc3477853f8f4b6304c7e71107e99f779d37ebc504e1770674ac5b7ae322e2b8efe67cc3519"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f16b63c57fe53a9ebd36773c1ffd828022dacb47fe66d63dd00ba8045aab0c5e"),
		nonce:                 decodeHexString(c, "d96c33950d8f1926f207b76a20207f58"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4e163f88f780e7878f1993c84bdb1fea323d0a7abcd6b484a1e1f87f43450f52"),
		additionalInputReseed: decodeHexString(c, "6fc7d2c881b59d73d8547fc9e2e7113e77c05c76c77bf4aa694b8073d233bcca"),
		additionalInput: [2][]byte{
			decodeHexString(c, "84a7ece7eac72aec6372517e57a9238d3f91af923378adfd970e1c787eb1590a"),
			decodeHexString(c, "fb0e59f4a9020a7fd11a3bcffa12891b3bb16443d9f45dac59f5895553dd6ffe"),
		},
		expected: decodeHexString(c, "63369d9d1dc2b6fa1fb79ca080241333556be87a680fd0514c5290cc37091d1451877f54a700e1b79a34266e53f0e1e19cd39690c4a3347143c8658d4376306c7922f14760e411d9ba70672916ee9d6f9658486809f3a22176c43777df60cc608d6f8f7d9411aa2b883e1d40ca84c37de5991eadc4b43cdbf045389227104765"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "3031927fd8fc528db90977bffe5aca14267c9b380240f96648546572dba8f3e2"),
		nonce:                 decodeHexString(c, "95589a02d1aa8eb37cc4e195419a2611"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a0a3f56b4637ade1ae53e8c36901029fef17021e6d9e53a8d31119c57bb77ebf"),
		additionalInputReseed: decodeHexString(c, "35ca0e1d3701c99a7cdb4f547032df29e8325e37c9832862be2ead3193ee7a1d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "659cdc03e6650cae64924efec0916f9daeeedf93c4c007382242b9c02b1c4882"),
			decodeHexString(c, "185dae5021545b706b608b7e3f22187a187a315360b0a370241785f534b4ecfb"),
		},
		expected: decodeHexString(c, "df85b9f90f7109748ee4b48c99650af4ae6066ca6d66d7e5357abaed71204b61b847b93776a1739342a032d64076bcaa857334979c9413ca6f6bf589b8706928cf28aa1c887b7c7732574adb70b32e207b5bf8c6336dd99ac9ad3487180c4d29eea4e4525d2a3f316192c735f80e77c009642ff654538c3b5f33cc5e00b99201"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "17f6549d617d845534130dad26dab37858d09ecf1e82204328fcd389904b574e"),
		nonce:                 decodeHexString(c, "e33a3bf8e024c1ecc88b9bf187c55933"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "498039b69262153df4a5330339a72e81af1c4c915e80cd3eba058ea7f3a8163d"),
		additionalInputReseed: decodeHexString(c, "e185a776b9246ecb9b172af270b85b78ad9f2f46d1e2b16fa9e28488f258c2e2"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d46c4d8b58212262e2f5f9cb8ff65d822414ef6d2c1cff27eea8f6c9cac0285"),
			decodeHexString(c, "34162d27213a35d96526158d8bb8e48de9833ceed4feb8771cb476a418d8305d"),
		},
		expected: decodeHexString(c, "7d1a13f0f8a36ddc73689978a84f6321a27d0d34594a6c4da3676ad9097f73eddf137af847ab38ee569a86a56477e82c7759b8fc6e697f8b8ab271719acc625bb603dc2bf9e37c5b00282551fdc14e9dc9edcff137e469d2867f9436ffdfa1b14ee34651d54664d0d43947277eebb51fc14af223ecda2259bf949b5bf1db40e7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "0d546b4b3cac4047e6215e1ef672b85db12ed87abfb3680bf886be37d9b98ccb"),
		nonce:                 decodeHexString(c, "747b638625c13500965f02835fc9c654"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6e6f8cd62aa98df3a43e137544aa80a8201dcd607e3f37608b578d713a1d3744"),
		additionalInputReseed: decodeHexString(c, "6e17b33a316fa6ff538253f4a83db9534cdc861f8cbf156ee0c5b02b6f54e37f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "333e1fa3f0d92839d238f66e9f5f790ade07220df3bf3232af910b9d135f9e54"),
			decodeHexString(c, "6f6936a44fae182ab3a58908974c648b4ccc5f0d31c77b715aa04caa1cf4dd92"),
		},
		expected: decodeHexString(c, "01242c8100d1fd0fdc4c3e21a5fd882428e657ae562b309638c5b622225820a14e92876b4b0afa033f932967ec0867cd7fc556d4d1f821d24ab5acceeb190654aac1e306f3621a0890f21f9ae141b659b7c118cb020b24a408e7096b2909b484d865cdd8c9667dd821d0d552d647a429fa67890baedeff5007414fbabceae37d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "3df63aaff558195ad9617a958ba516138f9900a19c224902a9edbbf3095765ea"),
		nonce:                 decodeHexString(c, "d2ae16da36e9248db5381dc1b16a02e6"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "d9572dacc37e18986ee9e7a33c5d1f54ce92b83667ff0e178c9a15f12cc40033"),
		additionalInputReseed: decodeHexString(c, "940c892fafa11779671152a64c499340a6019cb8343d8633e8b5827128a992e3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4f59529c1300f2617a659d2755f6757dee1ce0ea1cbddb9f4a01fb04bfcece8a"),
			decodeHexString(c, "cedcd256765dea40d7d2cf7646fcfc9654b36f98a7b520cda5dcccb2126c8c3b"),
		},
		expected: decodeHexString(c, "cd1ff6e75794b1b49f014d5682a379f61f78db5b393331deb1502179a8b5e08916669789073717a768fcd5b85fa141d9216d759a6e0946fc8900d6da1f579c2d1857491e620292173ef9886c2326529ad85b5161d31106a257bc7d56f07bea30010b5a0d523395e89a54e3cb35ec2d466700cc3425b3130fc194d6077af6d962"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "5860fa8e80ff5e80f67e1f8e468683d24a9bfeb3a4e1d6092b1d84f49c72e476"),
		nonce:                 decodeHexString(c, "93f1364edb87c165e43579691b5bc164"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "8d1c7c6e7f1bceb5a8e6c47668931d4cc1ba84412b18974f71ed2575e3f746f9"),
		additionalInputReseed: decodeHexString(c, "f8545aa9c091e28ec3f7e2788d4b235b505c41d105523b181482ee8dfb26de6d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2e58139f339e1924bd7874832e6028813f92f9e827c307f490ab343c0f179e80"),
			decodeHexString(c, "f24fdba1f96318f0adb6db6a75f6579612fb37b558d062ffc67cc6b8a34a0d74"),
		},
		expected: decodeHexString(c, "b6e77fdf3dfc9af768148a52dc04f9cc309b3a97b6763a534cae19c04e2db2fc9b88b58c728b85ca77e64da8015c5999f95bfc92cbdb40e82128462f737751560023aa4725e93229e2e2e596a8ef36a23640d83a87c154f53b17f0ec02c4286d078360dbff26ef387995c511cbfdc6274d5f36e97e6c996ca0fc3e9d2fb04df7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "84435f1379e8137575140ee5d144ba6fbcdfb77e877e55fc9374d96c7e1fbb0d"),
		nonce:                 decodeHexString(c, "3fd559aae9eeee800cc729b2fc917303"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0a7154dedf5572a22c62c8028e51d3f96140b72285ffe1c31cde20706a1a2a1a"),
		additionalInputReseed: decodeHexString(c, "cc34e7f9a1d272ac608289f080fc683d71a3619e8d0d8449d2c2854ca6d3b419"),
		additionalInput: [2][]byte{
			decodeHexString(c, "72c9493d3695ecc93f8d049e7bca178dfa7950ff5db43db178a3aec39af2eeba"),
			decodeHexString(c, "c259e1fae1963a22744ac11594503d3dcebc792a5809c64d0ec40c4ccc0efa62"),
		},
		expected: decodeHexString(c, "2574442ce82cec1fee9656c967ef53a8902feea6f5c9bed4c401f02be1c36d955a3d7410fd5d56a60af4bfcf063e36257a0ae68fc7dc55233c9e484a1c175363d3b541024a4744f0ac0269574dca8e65ff01d0a25f94a17c1d1a86ce0ea2f36cfdf564c388d5a4916782623526f3324d1558167aca837927fd49a05b1f3bb233"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b4f17f60358e09f1cbc1b481d16a91b17ebb1eb4a4833ae07bd16a72bab4a23c"),
		nonce:                 decodeHexString(c, "1ace4429d4421da16afb7c3caae3a2bd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ae6e6421e90a710905c686dfbf3abaab077702e511a3bfe9f11d183933c31c59"),
		additionalInputReseed: decodeHexString(c, "8dfd6a12c50cc9732b860c4105729ca7e17d81c69c8b81f1a0c729eb5924ef96"),
		additionalInput: [2][]byte{
			decodeHexString(c, "26d1aea563b369271eced9ac07abe309ac474e7fa976a4240d6a3503f941c86e"),
			decodeHexString(c, "4af99b0916bb8c149b33dc667b77ee8879d28844f38593c78666887eed4cc535"),
		},
		expected: decodeHexString(c, "9c688cf305358c4bf9e8ac67365cc00340ce9e32d6fefe4d800f336fe6f8fc48fbfcd18c1518a90dbf00d65c8d2d245a2afaba2d68e62d7a470391ca377fa72f08fa8e0f2126926db96f2fc8cd882aea84862ced6d5d81c382604de73b9a847bddb701f61cc3fbd41499f1e95bd4c46de1235e4210f1c8ccb15a4e7bf5e75979"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed97_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed97_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7fd9e2c09d4e728b255e7728d2c36df4deb61bc4dc73c563604c8b6f96912de7"),
		nonce:                 decodeHexString(c, "c2eabfcb887e0f37dba0f4138f7d6ca8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e63ed682f3c1c2f4851f489c0913b850a58895798207a5676ccad9d36485e669"),
		additionalInputReseed: decodeHexString(c, "ba85dcaf7d9fa072788904eeb437981f4e17db6e26a31e5d6a880295e538aa66"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e896677e4d8a18bf9e08dc6f1815c3becbf62ae8dd8e3add1a222f2a67faeca9"),
			decodeHexString(c, "f276580020c7a55fb4faf24e1b93e380e4a8b36fa43c6679ad3a9c3db40fe263"),
		},
		expected: decodeHexString(c, "0a50c77e30366b62a911f3ce10049465b86f5c71d3cdda3d364473893f1526d9b892311a76a767a27a7a15befe940eb2b0d18592387af34f348fa2e7c1251e4724d624fb1f15477969ab224ab177eee1d19ccfb0cf59dce1cdc418053fb9923bf0c9519fd39f50f90c29393e807bd3b20c53a428efa34b069d90c9bd2d475acc"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed99_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6990734750a4e9b5c59374ea4f2ff4695817ffc94d166ce780206caf9f8032ce"),
		nonce:                 decodeHexString(c, "9167fb62fb5bf1b1c32392adeb3117cd"),
		personalization:       decodeHexString(c, "1f7e7245fea86f9abb1999f6638a2e5a4bd1121f52960db80dcef970b6696f1c"),
		entropyInputReseed:    decodeHexString(c, "85727d6e385d55878dc10b84d38937db6a7530cea27530d6e3f41c30e60defd9"),
		additionalInputReseed: decodeHexString(c, "34471bfc6854d46d5da8d624680f2d9e7ea7a2e7e47652245b1a3569066d5e41"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2a02ffe392da0577f3a10eb5a86be2ea8a7e1cc2ee69be0570beba7ce672bc9b"),
			decodeHexString(c, "79b451e4e97b14610ff6a8a80ebc9fe05b0fcc847f327416b8f5dfcebdaff3f9"),
		},
		expected: decodeHexString(c, "08a1a80fa014eeede9f74af9232c65e32605ab2bdcb5402386b04abd6b839fdf78d5c86b970f99c3e48bb83a9dcb60f108910c3026efea635e3b5cb1513ffc3e6d7601b0e4f9c7a1a2d8bc7b287aaf9cb441fdf5d57a8fc9c37a61be19a20632078ab2ae36bfc243934feef7e3d670bbc7df3d4f08458be0102f648ae23c8ce4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "5175849ff1a3e214c26254c011b0c72d30c4b8322396f891c1745bd018a596c3"),
		nonce:                 decodeHexString(c, "272d990d8447cf9b57a302fab8f1d25a"),
		personalization:       decodeHexString(c, "875fd556e46e9ac8a2274bd4e3a3a73e8d818cc55c0865445dd1ea5e00fe0e92"),
		entropyInputReseed:    decodeHexString(c, "b0d3b3718d7c521e48a1c4468712cff657697c9e0f013c762561a338fcab5d93"),
		additionalInputReseed: decodeHexString(c, "f3cd1d650f2fc203cf60e8911f12c5572ae80d6b695265a7ae604cf0da9c1ec1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "da0fbfd8d002b5769dec4b8fe5980a10fc6a8b6e5b85f191e14f5836351e4d18"),
			decodeHexString(c, "384c29a9faf4302d808efb3bc081b2216ac98bc36b75d949707c9a4e87c254f4"),
		},
		expected: decodeHexString(c, "7ae718f0765c97b597b05b44ffe5ae491620821ef95677b09caf20d62e9fa96557af49483dd0b8ef879ac39cba108d4dd0e676075def58a3451797e7365d87bcaa059353d9355071ab625acf872f2658390250e42019a2f01a70f226c0325b3d74170ed178859e27edd9452eeabbc48d76ddb516519dfe1480d877d971f2232f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "41fa07443a25ad20bb685e85cc56731da9570f1c74b5080518a03a2ee54d81c7"),
		nonce:                 decodeHexString(c, "7b27def4e68d8fa8b79d364f47f44675"),
		personalization:       decodeHexString(c, "3704b8f74aac12ceff56a2b82b6b9efa3442551c71defcc7a859e4b55bd2433a"),
		entropyInputReseed:    decodeHexString(c, "e7b9ca3e969b19e190d1ad954d026c686cab97b4dbc21e3632dabf53f8262051"),
		additionalInputReseed: decodeHexString(c, "3ff0994ad653e1019c1ad5e95cbd81a060bf3863e8bd1178609f9973a2325d37"),
		additionalInput: [2][]byte{
			decodeHexString(c, "aca60296ef555cdcdfcc7139ab92f505f30fa181a1f8931a37d2c29cf2c549f7"),
			decodeHexString(c, "fea6a89023827c18de12afa2e92dd56e93e281cceae89310d8f20ca09240d385"),
		},
		expected: decodeHexString(c, "458cb686f73772505872d68ef9ca019804256677de02cefccddeb8be4cbb866b828a7f2c0eff717ff5e534892f5f0994c2642be1efd2121f8e1a31c311ed595a1e7604b4e0549d546e4c6ca69d2b7150eeab8a34b94b9dfd7b69621755acb0d3b8eb55f482ca53db6866e4c49c2f4a2f801f72c97ee775acf7c77c7d4c443f6d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "ea4dc7dc2bb8710c5a159cd315b8e02b841ed0d877ef53701c6141f2db80c865"),
		nonce:                 decodeHexString(c, "849013a9f7563ce4d2b71df7a86458d4"),
		personalization:       decodeHexString(c, "a9bf108c3d22bca5c548f22b0f81937068142a5546c7bba811e1ae1e98e455aa"),
		entropyInputReseed:    decodeHexString(c, "962ab681315c225c119f58fccaa0d26ad929712902bbf4273617dbcb4e451689"),
		additionalInputReseed: decodeHexString(c, "8d6b4695344e29ec97ebc85e6288187794d422a47bc9bf3e522d73198bcd8b05"),
		additionalInput: [2][]byte{
			decodeHexString(c, "46d28298fc6aa313b0070c9e4e8bd55cb528c2adde7649cdf623841ec6b07449"),
			decodeHexString(c, "3522ff6c3b02d6909b9cc342096e94e12f83a7d305c6a7affca1938be0831217"),
		},
		expected: decodeHexString(c, "c2a6f115934e4c6161523640773cdb17743629e7c2a328f91f8038abccb7d26001408008cfee9b1f8c2ce4970b6937a4fec7439369c90930df80e1713ae666827c1acaad0de4aa67c944419d20c8b26b1919b7b1a9fd960b8fc31d2f02d9a91b73d01c75202c88e54f9349c22b7c7f6a56d9dd70b1148ce0192f30068b1b5539"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7cbe691b40c09ac0d4e9656eb8dda705ea798bd126c914a6da5988fcf1f4888c"),
		nonce:                 decodeHexString(c, "65f07d2ca8cb42296075b09070d2de20"),
		personalization:       decodeHexString(c, "68aa6607b69c682da5e6ec8eaf0b34a7d7674dff5241bd23a01443224e1980eb"),
		entropyInputReseed:    decodeHexString(c, "e0ca4f5071e78120a578391c8372e4d47a96d0f53098ad89ada98e908a7044c4"),
		additionalInputReseed: decodeHexString(c, "1a8e06247c8e5b34bac5efc875d88bc1ec261355d87a8dfc66f78ad5f0bdf36f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4bd78f0830d04cf369d3068f520ab109f212e0869381bf100bbeb3c795f3a3e9"),
			decodeHexString(c, "182cb2b90230b36a6ff49e8d01825cd11bdf533ceacfdf90a4570628a5d13133"),
		},
		expected: decodeHexString(c, "07a72c27c416628e28a5dc34046e8d8a5d979bfd1e8e46a443cb5e9465e74151b60b905194ac34df0548e214e02adbc4eb113a4110084c97bc6f28c401b3918bc012b3921c69facc5597af1c24725b7cd266367fe0f9430996e784b61cb656849b6181616863448ee9401c60aa520a841b0858974eba7095f9883e99111c7b04"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f7d4f3d64494caf72850bb57d421e36bf290176babdb4582ba003807f1c827c9"),
		nonce:                 decodeHexString(c, "ea0103719ad6ef7da692cdbac1e1c247"),
		personalization:       decodeHexString(c, "7a5ed50ff21914936697415a02471b272ba1b0989df7c2a9d2b22333ed1296c4"),
		entropyInputReseed:    decodeHexString(c, "9f8123bda186305be88cd92743bf0d5daa16778146029846c52fb0d1c53425f4"),
		additionalInputReseed: decodeHexString(c, "6ee5477eb509e66f86044888dcc4cf6e46ffbeabf673f52e1dca43e54f7cfa01"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7d47fa0cd1efe85b1e780d78f4e46e0449f360bf8cd4c92e3d5065926331bfc4"),
			decodeHexString(c, "8269b3e4aa0f88c4b2d11db86a16138317f5082caee100badf0be13dc5b65c1a"),
		},
		expected: decodeHexString(c, "a38784fa14f505d888c6c2159c728d105c0cec32739c043ba04b8dc21e0c06e2b15c54217cf3326c668687ec17e13cc7219e24eb19bc60cbc334a4b5ee149846d33f602c8560538d718879f83b4a72ead6591553a5fccda6bd5b1fcdc248022b508b057d2976664a70b5ea5ad8b2e61ba737dd60a492713cd629e63ff0f0b70e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "8468d148b0db195113adffb7b119d8b0e91a03b29bad6b3401b8326e9dc2154a"),
		nonce:                 decodeHexString(c, "11f38ad6bbb5bf8599f561d823ebcd41"),
		personalization:       decodeHexString(c, "aa900748dac7a660d249c2d132bb03fe6ab52e581d6a953b29909d258a305afe"),
		entropyInputReseed:    decodeHexString(c, "8097887849ac53713e2af2733b7d35153134b8f42ac3ba39af06c4d270f0a7dc"),
		additionalInputReseed: decodeHexString(c, "2da8e5b4eedca1190283dd31d8113f255fd0551699d95ed24c0230cefd458307"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4423133c011719246d138545444ddfac09f96832449f2525d003cf468c7a267c"),
			decodeHexString(c, "d7e30913de892acf4f56e1280b71bf9013cb1fb761d43d891fb81d659530221d"),
		},
		expected: decodeHexString(c, "5e533fdf45f7e4dc9b6af088f0619b8034b75ea25baba3cd42529535d4bb3753762b7a7b91d353ca9d339b3b5a8e3cade90ab360ce4f9e0b6f982bdba3308ef7f8ff74d936ac980f7ed24b767aedcb7df37e2fa5aa973a11ce483c0e6c05b8482aecfffb2df5fda686b82c9ea07b520bdf0d3efbce7ffb86818d773803386aec"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "be0b982448d333fea2e94e41de700666a4a74eaf65a0e6401c541c61d530df73"),
		nonce:                 decodeHexString(c, "db2bacf0b219b90f5790350599a7305e"),
		personalization:       decodeHexString(c, "d049d8cae0c92ba1ed32505323c944b5875968cf3bbf4cc0094963e25a82dcf4"),
		entropyInputReseed:    decodeHexString(c, "dd9628832c0282dc3280386a8f89ca5ba48edb2a2a35a952ecd476e322ad962a"),
		additionalInputReseed: decodeHexString(c, "f03133cb78b284d5151721f241d70ab2d3264124cd130221b6c9d28b243d594c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b7b3f9dab15c8930eba3d8d9e08cde90a80c4eefc3816092aabb36a8d62d3fe6"),
			decodeHexString(c, "af0b63f411af3f97db3302156117d736b1b9c2d8be193532e368214afd2e1f74"),
		},
		expected: decodeHexString(c, "7d70273063c51489aae2235349a0dc81299e460d5ecdcb7b00b596a5e423757b6cbf4b2ab18efc14bbb6f54c5da4ac7effabdac6dbc3adbf3074dac35d2a3086708dd2a8dba3dd71de97d008ffff00d5a5c3c52f60907a9a488b72158dc66422cec5e6e4ba2544c9d696729bb042bc44df0a00187761c4aa76ec8896a423f5ad"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "93a9fd5da0d076d1f4cc45dafa133561964cc964ab24b30bb8f7f192bbbfa754"),
		nonce:                 decodeHexString(c, "e6eb35f58adc1e138551152876d278af"),
		personalization:       decodeHexString(c, "10567b6b63a6f3a9c1ec2c39fa0041e7b0283d3c2debb2889fb15e371e904981"),
		entropyInputReseed:    decodeHexString(c, "9845b682ab843107dbfe3fb600af166c30e6803c600f8b35ea342a0a628a021f"),
		additionalInputReseed: decodeHexString(c, "81a84f906079cea5b532db29d0ce7e282d81fbaa8175591b706d917526a4cf38"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9d32cab75ced653db5d56d902d353020e05e8cd8fdd819892be220d873514faf"),
			decodeHexString(c, "66ad568f713f4bfaa312801eb5450420b8e8b8c9050ff1b7743cb3da98173887"),
		},
		expected: decodeHexString(c, "78846481aaec97587a87b121fb35f8ca8a6f539fbbd9da00103d3024257cafe28ebe37105d8d8382467e7b3653b86bdcdcaa7ed3a9ac018ec63aad57f4ea1997d1203bd3895a135af8f6a38ebd6e0e366ec1075c05cbc93289633125be314969e9facc1687502e238168b6e90b2cf96f2ecc1562316bf7c3501bff9e8d785e33"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d1b191bb689770945030a354b2b34d10b1efd017751ed0e536492c36a1922fba"),
		nonce:                 decodeHexString(c, "312bd4e68027a51d35e1880172d4545e"),
		personalization:       decodeHexString(c, "84425f04f3390d31ce4343ad6457919f0e26858f85711d85937c619fc64a0222"),
		entropyInputReseed:    decodeHexString(c, "6fcbc901b5eb8e5ca64ad7dfdbe2f89b67d527788ddea88757db4c17e20e6d97"),
		additionalInputReseed: decodeHexString(c, "ac9cbe5a1a22ea085ca7dc272ba7281c78e1e69f7a50f77735e7161b0db913a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36678c4c6d9604d39db459754cc0c30cf6bbd8efa24ef5903d06cfc24aaf9984"),
			decodeHexString(c, "71acd0dbdfb8f115715b863f3e6d567c738c0a58f0361cf8bea5aadf6f0de9a4"),
		},
		expected: decodeHexString(c, "45d6f916c4f37bc3dde943c3cd4429b2a5222277738e95144cf76769fd80b806d2271086a114fcdf1a557fc7ca9e8b50e7dc96ab3f079aff0c558c630b54d05716540279c4b081fdf94e0cc2a36a995151b1a596de185d61373dc4ac1412e3bc737ed7f473fb9b43fc429467ddd97f389824342b25c764e58db51572d930656b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "59a6ee705dc019268fe9f237732586c9e09408c671805e48c9724232f3689967"),
		nonce:                 decodeHexString(c, "003216a766aea6371d151625f42c924e"),
		personalization:       decodeHexString(c, "9f848e10f31ef7790c107a35eeb4d2e7872a7c0a7a6577942153a06a5009b1a3"),
		entropyInputReseed:    decodeHexString(c, "75b12bbae7481235d3fb6d49c234b389a56474d071bf3235523c7650ceea9363"),
		additionalInputReseed: decodeHexString(c, "65a4d97780d7842263324da4ae2f1764fbe0bd320122d8bae409879da6f41877"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cc3b5d8db2ff3cea3c9d886f375b39cee2ec8d6b76f14f63d2f99710045478e4"),
			decodeHexString(c, "fa3abbad036334faa5554cf59236dc25686962daddbde91ad790e6ae660e4526"),
		},
		expected: decodeHexString(c, "a110d5c14345dd1e4cc5a2d0be4ec126faea09578ab9dc257732c0645f42278fd99cad25c6909c0e78a548ed41eb18250887df508c8ac1fee8959dd525b7e5f461b65bc5294e89f428d1bd7d2034a2ac4eac435796f2b1dfcb3271b6df2edac7ec69cf156aa1df91a861c43ab713a3adf1f9fad883d200611ac3590e80f6e902"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "ee1421f302ff4864f32fd7abe39ff200ec66214137f7881154c461ec504c1c4c"),
		nonce:                 decodeHexString(c, "fbad3ec66d0310268d8e20cac3bf27a6"),
		personalization:       decodeHexString(c, "ed834befd05a5d647675ea5a01bf57689b150945e68d27c4b2a6d3ce18ad1028"),
		entropyInputReseed:    decodeHexString(c, "37eb246842cb3044ab8fb422938fb4c21e80f50be19f1236782c53a0e7de814d"),
		additionalInputReseed: decodeHexString(c, "bd9e6e85fd97cc39f9ea67f1f175d2dfcce6d7aba208784d64c52b6cb2e5c6cf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ddeeeb2b0c660c52f9416819a8113fcc8dee7a86343de3e6191abd123aa5ba36"),
			decodeHexString(c, "ce1a2880b0aafd50ee5c6a3e5f92d315e9fc731e32d1b9e31a111d0e97b98463"),
		},
		expected: decodeHexString(c, "449dbc4a162d15bf5d50aff660c6adb9a79002a059cfcbd5febfa5a616ad9d0347d6df750ce46e640b4ecdc77ebf722f6e80e9652c12b51b92cad994fe53d0700dc43b635b7c3db734f003df3d6d2b17dab7ce2f96d232f7f4b2d678a8449c9ee593a9d4a73dbd7da1fb73f149a5618477d9a4cde2ed538a307ae217cd8b8d2a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "63cb86d4a92e1883ec0df5316cb294f576304585c425f9b22107552c85ec2546"),
		nonce:                 decodeHexString(c, "66ec3d1ff1c3ca7c90f2a2a384fd87de"),
		personalization:       decodeHexString(c, "358d6de973ccaebd660048a945d014aa73ce5c262c685f9bbb86484bc2fbb10e"),
		entropyInputReseed:    decodeHexString(c, "28b9eb1921c8aa6355270d531dafdf380be0b81cae8253d7232eec88c754cdee"),
		additionalInputReseed: decodeHexString(c, "74b2dd8bb951a4036e2fbfc124166a0626ae3e97991a0a7bffc7ccde2cce4133"),
		additionalInput: [2][]byte{
			decodeHexString(c, "18075ae3648feacaa873a22efe1b3a2890144c950c6a01ed8a065ef972d6953b"),
			decodeHexString(c, "bab9a65c861c24aad23cf23ef1c598dacb1e65a3210fa83405d299e5a051a0f1"),
		},
		expected: decodeHexString(c, "ff791f2ced869c1b6683fdaf518219bb8e9dcaa0f563f713db41626015ac6e072309675ce674d9038323c7c868fef3e76fb807c640c019cbdd6b9a69c03d8c5982361d9d64bb741c20348da150d542a6641e7065475ec8f225c34277b1d61ee828d486c1a02bf64d7b822c4849492fdc46c7dc092d978a055033853d3188232e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "39267160b1234b196114a54bdb3d4d11974b76645f93afff05a0322a33051243"),
		nonce:                 decodeHexString(c, "637a21f1b84c2f7da89a05816f82bd1d"),
		personalization:       decodeHexString(c, "781f6e98f8fc73ade6af7cdbb22744ff44b23b871d4d5fb9b05bd8340f749353"),
		entropyInputReseed:    decodeHexString(c, "95314dc12a4a8ac5048a4ee67e867d3f8808d8d076021b22be9aa4bbedbbfdf4"),
		additionalInputReseed: decodeHexString(c, "167b54ef0949b12ce3351ad29400f39d85e2d7b102f3f6283549d279980a26f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "19e4e806b3c6f9fadfc7ccfafd0bdd9e18b1a18aa7fe6ec3a9c5e925ce03e9f9"),
			decodeHexString(c, "016929cd3d969238f52332cd1f0ce2facd9134211ea961890c14185040424513"),
		},
		expected: decodeHexString(c, "2ce4123a103c0c36633e3249dc645727f731a71a51f612e6199d28fbc041554041ed3f13cfc0dfaf31ca68b2ad581bcd5d9731b5f1a0a7f60d38ad9eb983db2bed30d3b7b620acfbcc05cdc46a81acabd806e1493337f2906efb2e9288245e07a47dbcf583884f6dfd74f0b85aa839f36f6f88386348659c19c00e7b3f5e8667"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed99_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed99_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7a6b45cd1c542f62feb119a58a1dc329623beec892e431758101e4ca8f1a8ae6"),
		nonce:                 decodeHexString(c, "ada3c14f954c94e3a78f6d42beeb7456"),
		personalization:       decodeHexString(c, "d3cc4d3a5302babf92ba842939d7280a46c490ad1ac791daa531bcd967351c75"),
		entropyInputReseed:    decodeHexString(c, "3226d0053f39f452da63dbbc32f73a4544102495dcdbc1982b423d441b8f197f"),
		additionalInputReseed: decodeHexString(c, "9d4c6eab761287c733e5372cf68e7a04c19263d2ac56f75c8f3b914b83b9c153"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9542f4efd56cc5ff4d422a16bac3ea7e2f2c6afd85b6e6cdd9128e8e7d9585f6"),
			decodeHexString(c, "ba4ea3dcd8975d227fd653743be5021bf3c4d0dc3063ba95f59fc3133576fd59"),
		},
		expected: decodeHexString(c, "472081c3e98500c6349c2a0b51e45219e0c12608b9042b7e6b8ee59fcadcea764ea4d7b555d273ce4d9a28891ba54b9ddd9229e9a65a3e3f2ee9fa6bf6df98a119f37f8e7d725743d17c2c53bb0654f6df53d6fa522e5186b5e5c7844c37765434ef0f1d54be41eb8615a27d33c4acf14ac600cda72ab5ef0587426858152602"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed101_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "94450b61ca24d8f4d0a63097f76738be171405715c73ca48b61a8be5599fdd2c"),
		nonce:                 decodeHexString(c, "a4109a4a88f8d52cc382a839cb303123"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "b3b9cc78295a99c34e9e6e2387ab159ba74efdf47e713e9dccffe12444fa3e3b"),
		additionalInputReseed: decodeHexString(c, "49202706f38088327f6331526ac6fa9ec933d6097c4ba1f3adc154e73d296cbf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "980f3f13304900ad37ca3cf95e549563e408950a8304539c4bc8c56a84c7b009"),
			decodeHexString(c, "c8ff9fbc5212b4eaece03f1114c1ecfe47da36013043f14ca164214e17f9e1ce"),
		},
		expected: decodeHexString(c, "3e05d7a574f94b86a50d006d63c51d64f59704a9b833615bd0d99034019cf03b3c9206fc1a592fde416ac782f60a10f1c98117a882801eb8e6c737e1f5ae816b76620ddc68043c5924321ac96be218b78c29c44e78042300d14250b7c688b444789f2dac1e3312bf7e6909b7ae439039770f645f3e5b360a350b8f1ca1a254b8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "4e19b98a077bd3593cd51c42eca0d30e2a4785de0976e827bbae71913691f1bc"),
		nonce:                 decodeHexString(c, "88859719799402a7ab4d74d60806d382"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "73175f1cd3b7322be01b8cf3caad706e9f8da787d26e0ce8bea9ce6c23ad2d38"),
		additionalInputReseed: decodeHexString(c, "6ab4b41b485a6fa481c2e22aed3cbe46559d7f18551cc6ce7a776b4525cc0269"),
		additionalInput: [2][]byte{
			decodeHexString(c, "36b364bacf04addc4792b6edc248b9b62da5daea639bae150a40451e9d3fb618"),
			decodeHexString(c, "e1afbe32e651a76cd0e145f42e6c9749a49c9439df90379d555a29059ffe9f4c"),
		},
		expected: decodeHexString(c, "046b0ae7ac703c274e590f2282261fbdeb176d2cf86bdc0a1c6075682087b18b931433ed2fdb710cc5f54fd226e8dc7bca7ce14e40fbddb8fae4ddbb0dc1199973ab638dfcb1e1280334a03f586c80c2f2d9a0022014957012bd34e647eec2693430268407fbe3bcdf9f8f2d3a433a99b7aa1b22fe0d47b6d6aa3f6fa5e4003e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "03a1f70ecb64aa0768ffeb2d0743113045f3d7e5e377796b9ae8b826024ff4d7"),
		nonce:                 decodeHexString(c, "8755070bd7bcfef9e1a7a3e1067ad3dc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "70266b7938fbef75e77fbc95915f14480f60b1b75b50a3f2a38d17daffd14ee0"),
		additionalInputReseed: decodeHexString(c, "afcc3687cf456129f13207fd031d5248f4b70c36adbbba96047ae960fdb67843"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f155e92a5dc7a9e2d9f4611f150952b6aff89f662ab8c62e5ff20008e5c56fb4"),
			decodeHexString(c, "7f287d793471ad08a9b2798eb8d00af794c4737ca683a1d1ad51b94785677755"),
		},
		expected: decodeHexString(c, "5dd58db1b8bce05c8297694f0e771ce79d76774ec480369cbd6381bdc7f66946aa6c5870a0029c4ac78638b2610fa63700fc1faa2103af7a2fb9a87d94201ffa791cf983c1375efc2e6e7d6565ac423a0e89526efd4fe0df1ff94ca3978e46459b9e90f85737b002f3d3b4d9bb1dec26efca44fd55c484889ac6a55362d489ab"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "586ada42d6ce87bed4e3909f920177a27cf22c5a5def98b65f63560bdfc11d18"),
		nonce:                 decodeHexString(c, "447d4cc5ed6f686e4ec60757ccb0cdae"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c0d5bcc408f37002914e7b5efb1d2177c90f1150a34df5a57c43a948de86766d"),
		additionalInputReseed: decodeHexString(c, "faf6309f2b6935c364dc6db5c880a5e7bd931f9e4fbc0bb83b7be9240c9f9ec7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ab2cf5f613513946668ad75eb928ed80ad1d9ddb80f33ab1a71e8ea0d6290984"),
			decodeHexString(c, "329f6a1444c8ad0756e32d5d99628622d5513beaf1247a4d7bbf693de2e22396"),
		},
		expected: decodeHexString(c, "db9ffb84239cba529d6f043fa256dfde2f80cfb30f74238ed740178a77f71e0d1c05ef70fda03e4a4a8000e1fb2b46be45b6d279e3dadda3236ef36a480245e6b6c5e8fe92b54667aa0e19e0c122e20689d41d2b0218e176d55fc8eb921691c6b8328136b6dc360f1d495a217769a87fa4d182d87ac6e58791087c603f2973d3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c1dc28e3e035abaae6c633dca5e7fd2ba1f3f15db5d40bc39dd45218ddff851f"),
		nonce:                 decodeHexString(c, "1cebd4e3354e886a523e2a84b23389df"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6bf203bbafb8ae6cde82ed77bf2613f9a52483ce2a8ddc26b7c2b96886d54c2e"),
		additionalInputReseed: decodeHexString(c, "85631356a695deb16852fe71b6d752cb7bb7873cde59fc67962060737b1490c1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1b7474e9c607e3f281cf7fc239ec6ca0d88e672d5d35c951060aea1cc1d579d1"),
			decodeHexString(c, "8a67be8a3fe2675ab8bfa530d8b8af6dd5f4c202fc242e140f954202e16f4379"),
		},
		expected: decodeHexString(c, "9e53f08a518358aaf833805bd5cc5f1dcc251380172c75f04a03d69d5e58b1572a3e507223e645c414a5b33719dd695f6926d586387998fd5ae2edf6d4edb9daeadb7478d79354e9120cef2bf709a8771e33e5f89fe749b7f6a22419dbfb3f5c5b0ffbcdf6951149cb08c73fe7773c354a7bd4844f069cde6eac3526172e1189"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f0172bd7e0a48df01c352d0c8cc26bbaa67bd32cd37223b1d0119876ae141538"),
		nonce:                 decodeHexString(c, "b9f8180103cfb6d7352204d35d94a096"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c0e8784d96a0b1a8b32afd376ac4546c6a6120c32384e25dc41d203314905622"),
		additionalInputReseed: decodeHexString(c, "f9292a9e6ce580a559034fb19ad17f116b81bdb1dead2fe1b06a85a53baada9a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "8f1b18ae1147a5be5c275ad9ab47340632cf7db0c99a34949a13ca2909ea18c5"),
			decodeHexString(c, "8f3c2a106c0f22c3f726698e837afb4e06d3ca631d4cc714600f76dc404ed10c"),
		},
		expected: decodeHexString(c, "28dbeea1b0cc04681e3f9932e31f4a247f5293c9dfe6ffaa2d0d1c1edb2c724dd6d31b3aedbf57430abd1632e9a3ab1aec3c0d159adf5267b7a33438d38725f1febc38bd104c0ed1f15f657fed167452b2a7e20ffd75ea913cbc34410f45d27d130e1ff2b83aa800c11a9379a52b1ead74aab1df1e89bf4a85d446aa989787a5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1f11e8c4e20eb5d0c5ef94faef02e9a41c58972e1448c94b8733e177ac9efc7b"),
		nonce:                 decodeHexString(c, "28849cc0387edfe6df8a6f06b252be29"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c882f6fc84bd5da55d0766eb62e9c8f2d96e6bf77446e2212c11395eb64f7e7b"),
		additionalInputReseed: decodeHexString(c, "d1ec6a80616479316596b64b037b4f3695cac535dcf507299db482f96030a0db"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0db1e66549ba325f02bafd460c2750de4a8a7b3710582a4b9fe2764ff9081129"),
			decodeHexString(c, "9a827def44e983606f5f397b734909fb7940ce16535d667aa21b6cd3600707e3"),
		},
		expected: decodeHexString(c, "a408f3c78a34f7af3044f66d3fcd57e1375a52a280d9221b27d35a136943323a7647a5df2ed8ed32efaf2b5cd87ae915a82cea21c4558b0a4fd5124e0628e659e7daf3aa5c04ec2d73ea635e984f9dce6826d3b2e53ede2ba0655353fb1cd06df72d5c11fa792a748180150f457b6017b3fd5ca1d7923ea57333ea02f8903ea4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "e544e6521bb0f86593f62903fb41a3842e2111ae98b7b17d889bcc549981a8ce"),
		nonce:                 decodeHexString(c, "cdf599bb5f14c0742843f74d5b3960c0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "4e5c6b57d2a931c35cec58f347faa96115dee6d6b25e1eff59ba5f7450a89715"),
		additionalInputReseed: decodeHexString(c, "cb9e5d244a1c2d719df75a38ca012d9740c902c16f26f4a2eb3d81e88529b15a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6c1d66cf72c9a4b6cce62e0a5d238ace945bc20a5210aedcdb13768e17e3d13d"),
			decodeHexString(c, "1fb00679086596ce174a046a609f03f7156dbdc48cd6dceac4cd65bfa856dc6c"),
		},
		expected: decodeHexString(c, "dd9ecde9034653b3fb3b318e6ded01d9a543eba622eb46f7e1f29121720e2cdb6d7f4f462adfe1b0c39153db5150f09aa7fc18c686cae9aae4d49bf7bc024a6489f8032c38de422f116c16aa56b15fd80f97830c8fe682b7aaa7cf9eb58dd3c045eeda325f336df5a2ce70a662b994bcc64b4cce86eab0215b70d77a107e6637"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "97a9e6c63cb205bcd67ed5d3282aa35ddfea480369e822c544723dc0e1f9c9cd"),
		nonce:                 decodeHexString(c, "296ecbd6f94e27f028583b0dfd2f83f0"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "94b7b27da9ea0adc34a4f158f1dd5e15eed56dce5408f02ae86c275ebebd041e"),
		additionalInputReseed: decodeHexString(c, "6246a9f14810cf2fe102ff7e9d6c6a9d5da188e3e02b09588e2d701f2eabeb5c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4611b1aeb3a082b439a88ec5542d7b248edbb663e90915ad0249c7a5e6821cd8"),
			decodeHexString(c, "1474a36c6be63d774bb64741b0306d68545cba9231574747409df1d12b9c129e"),
		},
		expected: decodeHexString(c, "42cbb599ed3cafd28a99e8c4dc76661d6b15370f7760938112b0d70d6c2af3ede37ddc27cb557cc608d0155aec44265a239a6ed0d691003d332bf7b2006796b0104518acbdb4b4d181be27fa132eae329225f283f1b9f7f4ad6c3811d5720f5fd65753fcf908ccab261804e0eaa6b3d230c19a15a8cb93069a7d8b9b41e12b2a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "3f8e6bc9cef58ea39776baceae8b732a102d25cdd5122aebcade2b315a5cb4ba"),
		nonce:                 decodeHexString(c, "cd37c2f2d31ede70ede22d193fa4b3ca"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "5367f267bb12aa5ec24726a7c00c06b605ccd8b08bc92b16d1b7580ddaae9f8c"),
		additionalInputReseed: decodeHexString(c, "4b6453678e7503eeeb0378daf5031c2a7778674c8f3750616080e2f1afac93ae"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a84ed49fc9be9761123704aa6f8eba44f4e8eac68f783e8b9766b22891621673"),
			decodeHexString(c, "70e01b607eeb6dcc56a5ae9d04e526463614a8925d6209d864c47b9eda57e553"),
		},
		expected: decodeHexString(c, "7d22552a12bfe973f5eb65a30db49ebb251677b154a5e7d3f7f266b72864befa06bb3c6c2095047277a0766be3d0fadf7e2fd2de0f67b5c0b75caddec9ddef8ee114d21f61fb938e3810f2bd67c4e723f8d5bb83a15facfa8730dca10398c4c66bc97756aa93ac033f3ad89cccca99cb0dc52eb9c598c981869703f7a3886355"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b91745853274ca7bee05738b3c60376059d2bb29988b08722754d0e560faa71e"),
		nonce:                 decodeHexString(c, "36e8860f34acaafc687eb5ddf748c816"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ef1d845caff8de8b780b2c1cc0494ec7bdd05c50251f9b3bdc9616dd7293bab9"),
		additionalInputReseed: decodeHexString(c, "024f155d33d09a20daff75d48d452f90acf22b1eb520591418174526bb0123ce"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d3dbd11aa479723647c97fa6c9ac528cddd70673eb657f8cd98f30f35d7510a2"),
			decodeHexString(c, "7fcb6ab463ff45c9e3bdbce4d508d409be8ad9b3fbf1f7beaabead68ecedf824"),
		},
		expected: decodeHexString(c, "92cb0383c1fd11062bb35970c613ae07f05d7748bb69ff73f79195e7896bcf99fb06974f1cd037ea1cfa9e88b7f2f8c07dafa7ee65b0d950766539edbc9bf7122199ec652f049f3d95a8d7f8e516e54bd9edb913c5271e002e51c3464744439215c8787cb6290794fa9374afe70603647542da9a2a3434a460759a056f0e3b6f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "aa8d8905ae9aec899560766bb852136ab7645529f2d88e2a4189b93e194cf6c9"),
		nonce:                 decodeHexString(c, "c6ac78ae7620c56f8f8fd03b59c1f265"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ed729bbe79e33a899a07bb8781e76c30e1ea06b3035776e8c0f1051f62bb2150"),
		additionalInputReseed: decodeHexString(c, "d1bceb0015d99a43623ef2990c30c84456de18fcde9fd9b5435dd3d8e4f33622"),
		additionalInput: [2][]byte{
			decodeHexString(c, "faa7d4de53547ac73249fb2ecb76500749a62aa7d4e968d64aa2daefba0caa0a"),
			decodeHexString(c, "aadd2dda23b0e3e4f22af95652b74291ee21d845916b26e76bac7308fe7891c4"),
		},
		expected: decodeHexString(c, "c6929e2775218f55b669ea8039c70bd1509be3f03fa43609540d3d8fcc0755c3900c0111fac88990de069685f79744f19ad4de3eeb09f1e6c58ed616ea1b874ef5974cc64262af8451201c80a038ef4a4a155fd25b2a493f87bd75dc5cbdeee10e48823030a7f1577ac05a586b5227e01f062a2c1d075f3c28a59d7f5d69c102"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "171f9d32f44a5cc82992f1addc428ca6cd32327f8e0f53725bfa08cc6d275558"),
		nonce:                 decodeHexString(c, "6145a8d7ec54491711ea56d856157f3d"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "29d94deee6479e54492861c263081d08df92bb249f5fedbcb78be00baeae2e45"),
		additionalInputReseed: decodeHexString(c, "2af19c59e0c230c8612aa66def07632dac1a9a3631d03bfa1e0d8bfd99e2f658"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ada2a035faad9677d8ce3791cb30cc058e5443217a6d44e9db2bf8248b6f4e4c"),
			decodeHexString(c, "ff69251fab740c51656f17060f10b93fea10217dd84658d2a46efd2f1b93b30b"),
		},
		expected: decodeHexString(c, "658dfe962f1b62ca83b4046bd27caae9d7ce40d940512ba593dbe3d67fd5b2532568ccb37eb82d5bed0b5feabb87fd6199df37a153b4964e508eb7601c7d4114ebb24fc647d7b288356fc22ea85722bf6dd41c9b53904f48f4842aeae3b0adc326701217401ca8dc15c36b4e3f754f1bbfa9edc13fbc2da69f433111ec9b224a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b1843352182ccdd5068e1c30e698ac2692e6a058aaf1aca37bf29f51299a03ed"),
		nonce:                 decodeHexString(c, "a736ac9788517b2f02b72a8f19129082"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "530ec9ca7569223914689214f9ecb28f11e86845ef8c24bc1da1b2f3680ef5d6"),
		additionalInputReseed: decodeHexString(c, "8cabe31c6d12ffcd06b736475ae8019a1703d77b7a476444b402fbb4dd0b5646"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c8beaa58639f0b33b8b7b114ace91102eaf8b74576dcb87cd4453845dc3358b5"),
			decodeHexString(c, "2db344fac93809cc98705720343837cada631d3dabde7e60443f566d8ccf07d0"),
		},
		expected: decodeHexString(c, "025007cf5e5cd56de6f21b7df36b1819b7b8efdb4be69394624ef6fff6a90b737b7d1da7f86761249390397977dd0c142b130261ed6496d8e1a2ec626fdcb23b68cabcad24822c535c3242c413d1af83fe3a209a68ff7dfdbc04eab90ac8bb54af24e7ade03793aa8879b534f6ed0380c23d58d2c24cffb55a64798b070175bf"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed101_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed101_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "9d918de3530936dfc2e148e85cc92906eb6659484a2b6cd26d08293704aa7196"),
		nonce:                 decodeHexString(c, "a26045960037e0436a666ed75a64fd18"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3df1449bb4fb73fb1c80715db48d0e421560e7467a348c4442737cca96c43837"),
		additionalInputReseed: decodeHexString(c, "77ba6172706c6c5ef6726e2516ab98d66d963b4ca043f858b67977f24734176b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5ae32e80fc909238acc6d74b99966f38c3ca948de56de842b9cf68e0dfe82d97"),
			decodeHexString(c, "ff951304734609938e04b075b5d2b77605340e94f7ca182217b4441ddd6a083e"),
		},
		expected: decodeHexString(c, "2194aad121a3ff443e58bef142f10536fd0042064051082b83239acef54e07ecbef89bbf014e80d025c3403e60d46e6148d92b2384b4c9004a2162821c150e0c005fe1f865a49869ecb3f68c6bf7f257d7c9dc152b2d6d0e8d0f56a2c396dce2a7d222cec149d0090483106491fe4dd9121a516d7c049a7129cebe156f0d880b"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed103_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "ec3eed72d3e5b6920bd678b579bc9e4275646cfc205bec25ed406b321345f205"),
		nonce:                 decodeHexString(c, "73c83711e56fdbe024e2dd66e10c240a"),
		personalization:       decodeHexString(c, "e76d33d663ead0f2ebb39735590cf1783bd0152f7379a432f8de9cd4e77f59de"),
		entropyInputReseed:    decodeHexString(c, "dfd785c503e1b54e9befbfebc107f13c9ed408d5dae13adfdcb87fe8c5404437"),
		additionalInputReseed: decodeHexString(c, "80c8b783ded40f4e6d0fd28bedd1272700513213f27cff80a3c3399c38b6887a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "51264a43cf673e634fbe0ba5ef2e92510a6f72341c64204fbca9fb1d814f1bb5"),
			decodeHexString(c, "ed5fe0f2d9b39f677adc45e2df2fb8ed7ef0908c1587a6e358ed20be9b5653a1"),
		},
		expected: decodeHexString(c, "4c2cc343798bce0e9aa0bd0480e302b204f631cc312884cc0323f13499f3e91109a576918bdc6baef708de98369961f06c007f3ee1beffaf80a9a757462189e12cee45d2c9a1bf5437d8313dedce437fdf5151e1ab89d570b39cb259f0b1a55777fcef9fc7d5113bd9aadfb8c1c61d1f3d6c6b9173447a3dd1c5ebf62f6a8e68"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b0aec44ad54afe87f2d815b603a13627e571045ab69d9c39973395bced1ca770"),
		nonce:                 decodeHexString(c, "30075c874fae44e3e293056a8727d920"),
		personalization:       decodeHexString(c, "dcffea5ab0e0da14cfa5bc5c7e2fac23fd726a20ff8ec90962662ea52840fcc6"),
		entropyInputReseed:    decodeHexString(c, "f958f779f51a1515d47a6b3479c8cea18f6dff93812b18f0fe4c612d2c9b2ddf"),
		additionalInputReseed: decodeHexString(c, "2282fb1753111e118fe5711ed4a34fb12a07dc53294ea94f34c6250a04a979d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "24a3d6526a02a7627dbdb34304183267ddaf1b9aa6adfed9eb6a7f1e6b938409"),
			decodeHexString(c, "bd87c052d1f3c7c9472c2142f0055deb857d29932cfe9c6c6adf154b1733d601"),
		},
		expected: decodeHexString(c, "c7a6e47a9799c7793481a9127accd459db7516b15cd25fb750f3f0c187d8d4b5cfd658969414ca99cb0206758a7d862c36d2b4d063abc1680ef922df8b9a5a83df5131ca248fc275ef6841b481568c24ea06d94f75b418ff6fd95fe0edb4dc38df670655e0ca557b294dcd0d798ab21850d8572669b29f86d980e23dcdcf135c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "60053fbc255e3f77bf1be4ad7ae6c9d0b918a3bb29ce9d33379be68c4b31bf0c"),
		nonce:                 decodeHexString(c, "480ff14bc93065ed18792ccbbc747860"),
		personalization:       decodeHexString(c, "a4f0886f99bc38038982a18fd2c96ed1f5b3a518ffbaeafd7a5cfee61107df7b"),
		entropyInputReseed:    decodeHexString(c, "de4178679e9302fb0df92ed6b1d23db39a5273e108dc0bd32118f930bb885abe"),
		additionalInputReseed: decodeHexString(c, "c3fb187ced356499c754d0e9a9c6b144d1415836a7ebc025d61c035750ebe39e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a8df923338d2b7e9b878885cc6645f8c3eba7424ee09c265e256d60ad522e84f"),
			decodeHexString(c, "cee25530faa1fcfb19bde20aad356a63362c03b5e8b2c37cc7151ef8af0aecb4"),
		},
		expected: decodeHexString(c, "f711be31c9ba7ca68a3169b2e19f175ab656cd7ed78787d8e0c71dcbbd37b7930acdbd62688fb6319654b204024e649d52d8868889d403c80d49831229894219ba71101a5a1b61d57990d82e9af04e8669810525211b3dc8250189348d9572439d9f1196a22ee0fb4a2647fb81b2e7b03eb109c6833bc4e2d5550d4160666fa0"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "65636a9df861843ba0fc09f5ab08a5a9423fcfe74759c9c507478ba4ca3a8051"),
		nonce:                 decodeHexString(c, "a3a1c4603cde543b872762765a35f1b6"),
		personalization:       decodeHexString(c, "7c0a229a563f3f5b3b6c52f1e3beadd331a05551a5b8311a10b4b7d18c31f296"),
		entropyInputReseed:    decodeHexString(c, "5be4cb9315e334b62810d14e54ae5a776a4b81307640810cb66ff02a1ef2f857"),
		additionalInputReseed: decodeHexString(c, "0d1f481bd7f110561212a9bc4229d5a9384f27c49c7b91c32a3d00dae70b37df"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c96ae6e9defb84937b3283878a92a8d7637b2697231fb687d1af61909237f4e0"),
			decodeHexString(c, "5409f4a26b5f079cb431e530559b89813c9552af64b932518f88b5082c994d26"),
		},
		expected: decodeHexString(c, "d680f20ab27e09e07acd5a65b4c0fe6210e1823305e6ceda61d81a5b232fa7290358656fe2f45f8f3483ecd75b96399db015b67798126cec7edc2b059e9eb1bf49f0a8a1d8dc9b7a74137895eb321d107404d08ee4d4d5fec8feb9d31a17e27f353a5e6bd15a61bfaa64ab2ea3d3151975646eb34083ad8ea6975f80e6cda63e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c46d2328980976e7e88ed26b9356b7ad920659b8dde0ae5629d232bba18a685b"),
		nonce:                 decodeHexString(c, "f3d2c152b4084dc9e27847cc29f80e67"),
		personalization:       decodeHexString(c, "36d7d577f457375a4c6f28e11568c23529b6da98519d41c0765e58c87e89c966"),
		entropyInputReseed:    decodeHexString(c, "a95564ccaed436a4d268b0e13d56295dd9eaa99b26a2e2f87b434e3f5ead4aec"),
		additionalInputReseed: decodeHexString(c, "1126a4fd29374f3acc72cbd11580f5ea29fac78baeff4b61c69fc79a753233bb"),
		additionalInput: [2][]byte{
			decodeHexString(c, "15d539e43398f79114ffbd3bef65e410bb6f8bfb0bcd5c1cdd185ac472fdc15c"),
			decodeHexString(c, "1545428de9393a222712f4ecc58f44741fa0c35e7ea2ed9522f9bb51f1153a3e"),
		},
		expected: decodeHexString(c, "0c664dc6a293a89df0f53b39a7a10bfab425b79f37ceea25e8d1ef05932f585863ee555149f6627e2cecc0101e65d34f9be256e84a1c7dafdb7635636330f6d7d208303cbc8e726dbb94522187cacf63a5e458ea041ae63358cc634610bcc6667328f23003863c2439b14d96b28e91e797b3081a752acccef5e93c6093b8d606"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c7dcfad33626ce1efb224fbf7511d7921bebeea85c6c3213e02f812a623c4645"),
		nonce:                 decodeHexString(c, "e9122a8ed342b4e23651556f43a22e1b"),
		personalization:       decodeHexString(c, "244fb79e02ad0c4934891eb6da4334ece3053594b3bbe0c6a5522d3ca949f8d7"),
		entropyInputReseed:    decodeHexString(c, "512c4b07e9f479f1a8d2e0193561fc9e3bd9691d4040c1a6074d55805df131a2"),
		additionalInputReseed: decodeHexString(c, "91155e07ae25d19361dcc0b40d2ba1e761999d4e0d735caf3a35c3c7dbdf07bf"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dead2113243348cdf9f9e43e80c39bf07a329551cc153482aef40b018fb3bebb"),
			decodeHexString(c, "4aef240553e62b7c3296d37fbc3161b5b76757e503289b01930452325b085f3d"),
		},
		expected: decodeHexString(c, "50c032cd007ac64ef06a1a8f40071d8be976abc49214fcaa756cac9ecad2cbb5d7d208d106d2f8d66231f94560f9a8f1ab85b6480602a3dbe5cde391051574b094d44b4c76f751e345b0039f1d630192e86b18826593dc52dd97b182a38cf469f57a262a48da17357593425a08dad3551cf70da818bcd3b37bf11e287d2f4910"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7c93de4cf817629edbb86d814c3cf286ff303f99dc8d03d95b3a10bb645eb9cf"),
		nonce:                 decodeHexString(c, "4df23a93003d76405a8f87a4b47eaf66"),
		personalization:       decodeHexString(c, "ec10f42ad7097f47c8b1f762b941cd0a0c7d42373a59b955e0c92a050215fe77"),
		entropyInputReseed:    decodeHexString(c, "ff5e2fd1b8b3f5d89a6c280f8966b613d59580f625c139cb888920a43887d732"),
		additionalInputReseed: decodeHexString(c, "fa0e5bc0c19a9aaf26a80be42a549d145e1ce257576e5cee648bdf83544751a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3fd473305fc70cbf558deb5437c660e51170fd59151dcdc90270a59abe12daa1"),
			decodeHexString(c, "ec12e966173fcc117e1c0fc0720ea69a5fb1d3a3d7e1e6fae0e9c864a715a205"),
		},
		expected: decodeHexString(c, "811fc49340eac737349eebedf057882d1f5577a5838a6238a4dc0545a81fc324ae6f31f92be1ce5fa6e7b73a2d9f32955807eeb7227e48e8f491ce5cf6897e50b2518b8fa04671bddd207655d850c9b8d715a2a6fbc7ecbb6056beb3d562a4308e4c3677bf66686774712f125ff19f9816cb52adf3970d10dffe1da88676cadd"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "90a9f2d931e484d47fb02fa7c0373ab91a5a1743acf015afe36c1cd7b7026fea"),
		nonce:                 decodeHexString(c, "dcb1c7edbce714757d64ef8832bc65e5"),
		personalization:       decodeHexString(c, "d85793da4bb56badd892c5958603174062f84df5682b6f135c06a95e73747898"),
		entropyInputReseed:    decodeHexString(c, "6eb93be84285c57afae8eaca82c02ec9658fa01a9fb4dc48ed78e36a125bb688"),
		additionalInputReseed: decodeHexString(c, "e5a7fa7f1b57a1b45c26556a88e2ce959267c1f6122e36ae5f405ad2cbe502a7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "48808171c69ca6f8eb972083ae9db80cfffb0605a20998ee3f870502780ecbc2"),
			decodeHexString(c, "5d46e7331e3adc6430064d433d894753f7af81be464685ec61e1789a6f209ace"),
		},
		expected: decodeHexString(c, "207bbf81e91589c19b2dc1588d3d5aeabe1a5c4f4a28fb9416390aeaaf9507262d0b164571df67b6bf0121b365c0e26fac8608dd3cef97388033d9aeb6062edfce6f05ac3f3b0bd533371541b243ffa8e06e8554a6172fec4323475dc143f4811714a985197fe33050927178e35c549811618217ab7bb177e7d787a282db253b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "17f263b82faaee3bdcd3dbcb2612cd5022238abf6a98e56d44f9d2758c8e46df"),
		nonce:                 decodeHexString(c, "de85546ed98ddb9fc867cb8433f702d0"),
		personalization:       decodeHexString(c, "cf322af5d40d415a0fc80074fd09addbb6eb2cca186bb9619463d91a028f2d97"),
		entropyInputReseed:    decodeHexString(c, "37af5610d361fbb88980e4bcb164601b1e45396cf85530d60bc20757d6207f4e"),
		additionalInputReseed: decodeHexString(c, "d5fe9efabdbde7e2cd44dcfa54e75fc2055a04f25adec371e648e55c37b5598a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "71433d5db501ae0bf7741107158e359ccabea7cc73b9b93241509c09d667c406"),
			decodeHexString(c, "c48398b1a0199aa768011280a401004ec2c4ed4694f196dde26ab71ff304135d"),
		},
		expected: decodeHexString(c, "572d719a01ea7d259e5604f36b8c398ba3396b5c9746617a5c8e33e2d81796fd892d4b7c8672023c958f045a3bd8f131c462845c404f7dbdda05c6383e084f8a08a4719f947ce2516b376502a3743025f3ee97a8211d1469660155043d3de71a3c036530d20882702623cf6901600685e790abb8eac3691a637e04b0e8c8cfb7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "871e2951629768e56f9a56be504b3e4380158fce7c8c8b66fd07389e844bbe34"),
		nonce:                 decodeHexString(c, "bc61b8ab7bfb8f94e3fb5edf47c667d6"),
		personalization:       decodeHexString(c, "8cfaf4b1a43e6e562c7d7359a45baf7ba75133b5ed3a7b277e0352eb0db4fb3e"),
		entropyInputReseed:    decodeHexString(c, "de946c2c71494e6cab384df5817fb35fb1b7817cd22f801143c503dd79ea5a0e"),
		additionalInputReseed: decodeHexString(c, "c64695b2fbd7e4635e9d842354d6d94da05c135621893b0f3f2c5371ce47e35e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "595e7a21fc98b205e2785256542b292385e505e784ec93da802432f9da85b1fa"),
			decodeHexString(c, "d34fdc4140655148743530995a763f84c30dbc5cd72f1b76866598da7e985678"),
		},
		expected: decodeHexString(c, "fbe346d3597eea3d865ad0dcabe1a1a9c5462287ee5d661c726ae0236037d3ca4f46815de4a4759dc55c6e4922740d639f9dc1075b3fcabc390e2c2dcd2fffd5f919a2f6e6e4c3e93c03bc218970eeed8aa95407c3329105a6fe292bf53cc055000079ea8ce502a172f8a3208ca44797077ec640120f6c848d7ff5fb9f8000e5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "369e482d23903d18cf4d8f8172de4164d10fc73c2e3234bc2961b1663d705883"),
		nonce:                 decodeHexString(c, "e75b8c992520c2aad607c66106c5ccfb"),
		personalization:       decodeHexString(c, "cd084840bfe7759af8a6ad8ccf00a2f19eb783a7d69ca776344bd8871da04f84"),
		entropyInputReseed:    decodeHexString(c, "8d495eccd46a698b0d04ea49c3eeacb102f10d9aae40d6cadf84aba63673d68f"),
		additionalInputReseed: decodeHexString(c, "37276f93b489663187f63307b46f9857a845287eb75c5eca5d55d711cd7b39b3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a24e1118aa234c9fb965ae53c8a3153d27a43860db62fc451d8e8b68504b4664"),
			decodeHexString(c, "d9b24cf35ded780c6693230aec604513970a1b0aaa232abf0c78ba89c0e2b961"),
		},
		expected: decodeHexString(c, "f9d814a241ed40176872a0a240dd5996dab5131c9f9b3d44299067a4469d5a1eab060735f4378781194b06794d06e0e6529a9c90f6dedfc802306c2afa8f91c381627897d305ff4c43c841d5256395cc5158a2b34b1c94d1279362317513025273bdc5c073cc52ff036eee4089799440f45c77ad8b230938e996840efea33429"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6ff03b317e5a3a6e958758d8cbc5cc3bf7a49fa8956f2159abf8a71f4302f3f8"),
		nonce:                 decodeHexString(c, "0203b0d4301a2d2e223d2b23b253c80d"),
		personalization:       decodeHexString(c, "3da0f2a3e99e83b37d79881355a369eed200d66f8efa5144fffd8729c0857a6a"),
		entropyInputReseed:    decodeHexString(c, "5aeded77ca0916329bcab3ea5e82c1cb6c0a3a76198ce638d029d8485593cd73"),
		additionalInputReseed: decodeHexString(c, "4d3274cfb861a660345758ed18460ec7cfa371054a36ba0133b3aecabaa84e44"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d25f4ace07c4b272d80db27333dc4642409463cc93b879b93939f7a419065a08"),
			decodeHexString(c, "bddd03d8634ef86daff6be6db8578c957c241ca94dd4cf95d4a503667608960f"),
		},
		expected: decodeHexString(c, "40781405049fb8eeb5e8b145f8650942c03d24c5c4630bea12bc4331aea6ca327bfe7d98df8b31fc506076bf787cae66d9609f088d3bd76c8657fbccf92701cec4dbae29517ff2f71abe31853adaeec693e048d6d3ab37bc299d8e00ea2e98726e178ed77756b6ecf1500e6add5c0f239a39a9b57182e97b156eada784a8724b"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2caffe34d18b475d525585c2472ac3e8b90b37f9be191cf575871fea5c55a633"),
		nonce:                 decodeHexString(c, "f43928c0df5496c8fca8b5d20870bca3"),
		personalization:       decodeHexString(c, "a55efd76b16f9cb0274d400517f5bb2452aafe261dad5dbabdca29f52df66efc"),
		entropyInputReseed:    decodeHexString(c, "f5d06f245b38aced81486777a1e21a3506473ede266e2ac9158a67d83ebc05a1"),
		additionalInputReseed: decodeHexString(c, "4213f864b8f6b862435aeb3e33f553884990788f17f162a68187266253cf9137"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b851aaa00c35ab43e8f3c67021a8c4f4b9effd84dabdbabfaf2d3246e4a79d40"),
			decodeHexString(c, "6e5fec69597a87ee8a3d9d3e479f5b08baa4ed6accaa93e8074efbcda9b54279"),
		},
		expected: decodeHexString(c, "89670c3a559c2ce032d3aefd953fd8a43e51fb06c095760215806f571355de161e13b3a135435fde4ef1ea7be68112e591edd7f2deed6ef40ce6bec3b9a64607bbc2daec42d4a6fc6fc8bd88ee5844596d69243e4162bd925eb1b08fb0f94dd23fd4d4b36cde3c7df065c3a372eb8f1b7122ae27eb5cc7dc5a54d179f01d08bc"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6802fc80622359a3cf86f2beaecf8c582f34885209777c09608c13902a7dd482"),
		nonce:                 decodeHexString(c, "a319ab196300ea796cc532d763200554"),
		personalization:       decodeHexString(c, "dc3c845bc66cd5113d5a6ed28d5b7b9aa638c30dd485c896bd5e4667cb966207"),
		entropyInputReseed:    decodeHexString(c, "46ce8f1d76650dfda9204c17413f5cfa096c70b12077eae36a87c0ffc3c76eb4"),
		additionalInputReseed: decodeHexString(c, "11fe7cb2ed7ed88bef40ea6488a792465677c2261db4b63bb4dabcc78fb5ca86"),
		additionalInput: [2][]byte{
			decodeHexString(c, "32d05e8661f57ba74e7d9fd9f4e9fdf71abe1f074a136ca2db4ae4cd1380ae28"),
			decodeHexString(c, "a9804da0b5f1b8bc490576b55a4878d29ee340828dae75eec2be15aa93bf4be0"),
		},
		expected: decodeHexString(c, "ba029e3f307bd49aa8d337e7e4381aba4d39d9cae9303e2ee160ef60bee6da9f990cf02cca99e5ea0f27b8066ba82f2d6f4e3c7f88e43562ca0f810fadcbb059ba63c0bccaf2d6cc5784627d05a29bc06c3a7baa0cb3f4184f599c7733666e24369b5571f5e9acf10a33514c47ca85cbc6a58bc6fcf1e2c28be73dbde9168c6e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed103_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed103_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "be81a04b75f3235ae432ef1d63a0ac78759c6193653f4419e254ad4f41a0952b"),
		nonce:                 decodeHexString(c, "9ec5d0841c9f157b8db7244dc61ad513"),
		personalization:       decodeHexString(c, "7d799eb6b40be63ba506d6f5aa705d4853096af2f810170a2756f2ba20af63b6"),
		entropyInputReseed:    decodeHexString(c, "241d02cb64229cb1b336ef1f5ce4113f32c88a6e555aa39e543ef66f5b22f3d1"),
		additionalInputReseed: decodeHexString(c, "8c203ad8dbd2e94f86c82eb0224fe9e8a7a7203a7c6eecae71fe9633b94fd12f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d47c207405a6fb497d951a30748830edb4e754c7f2529a474a8f4f45e8fa1b9"),
			decodeHexString(c, "75abb409a8e2ef4e19a0eb526127c591dfd52edd6c8d0c729c102ba1a268d987"),
		},
		expected: decodeHexString(c, "273ba25b0f69e5ea31e011dcc2f2dceb34c8bd32541323a3aaf23510d21d6738ae865584e63a896aa3fa3c6915196f91ff2ad1cc2a7b1659ad04440fa712caa73c41bc47f052a564f0d2150a4cb49a1d15fb9dbf41d0883b2e04471664bc21b9c13d43389f5a7897e185613ca97dbc948be87c74cff94c600700b0bb7687ca7c"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed105_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c6459fc24d16efd98ea1576184f6ceb8fde99607439e6be01cf1dfeba7736d28"),
		nonce:                 decodeHexString(c, "59b8f385c48859f4cbbca3451478950f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "555b190ba0640288ae5d68e2bfd96901155a9f06c030aa7c018356619b79e29f"),
		additionalInputReseed: decodeHexString(c, "93038592b990da2e5582027597cba54dfc3b4023a5ff92412a6f73da8e403a88"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cdf79d3444b9d1e98fd60bbc7447b64583a43e36dfbc9a5c8ef0278a631e601e"),
			decodeHexString(c, "3a596bc7bf1b155506eeb8c69d6150548a193074043eea984c06d2c98d25ce2a"),
		},
		expected: decodeHexString(c, "c8d8e125665a4595b2eb534228916f3c1f01b1761d1aaa7cf32fa5a3a0a5c44091d0164a53165267544e87222d61acc7bb26ea5f29c3d0a0dd4658b846bc5affb985a3bc4ae295258324ab2ae0fd64dc2c00698dfc27a33a02726b6a3ce6d1b388e8e379d7fbf6db1caa8f4081333efdb21c2d0def4d93f1b135345ace9c098e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "d2173c09eb854a133e89dd81678c68cc85dd2003b99ea77c4fa77f2d9be3e899"),
		nonce:                 decodeHexString(c, "1f176078a2ce0942a9f31227135c2028"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2593228c39c25ff12c9508f815293e4f789982904e5562554cf46bd6f50d12f2"),
		additionalInputReseed: decodeHexString(c, "e37268b35cc3b9e7a5c880206e3b4f29aa88ad97f1d73f6d25d723b2e1dd699f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "eb56828207b8168b0a81287dd3a2920e24f3b8117f93569a9cd9a4a56c6707c8"),
			decodeHexString(c, "39787e29f5f784aa3ddb61907f40dcc3b950014001e7a82aee83474884449f7a"),
		},
		expected: decodeHexString(c, "5ad84381e8aae0c0d2dbc22b6d64d7bd4c562e11c32ce039a38748977d16bbb7a42dc8953a9595657092bc00b13b9460271e87955c94acadce868561e63384052a109b20ff427290df3e4eca90eb6d156845367af0a5cfdbe9b789d8d303bd8812514c52a6020942a934719900cee3a025dcd762761b352b43b55b3deaa9c3fb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "3ce860b2f263f5a3af097d593b20c8b9cff355222f61c3ca2d061f4758a152ed"),
		nonce:                 decodeHexString(c, "4c6962ad0cde672679f1173cb7d44fd2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "a24e7709d56eeec0f170d3e592f48fb597a90223cee1363d32d11dda1f9fbaca"),
		additionalInputReseed: decodeHexString(c, "103e9e06c95a3d9e91d4a526042b46505fef7337a690d7183651018f952721d9"),
		additionalInput: [2][]byte{
			decodeHexString(c, "123fd5cf3a6e2112f63468a1879be42d27ea961669c8116f7b1c9a4decadc42b"),
			decodeHexString(c, "35ee851801ffe045ee4c82e1301b5b605847dadb486ada41fd10a14c3d44045d"),
		},
		expected: decodeHexString(c, "01120bf339fd23c7a57416de328fecee0c6361fb662542991c29553a0d1343f868138d49e53d4af69bdf193b89e47aa7ac0f2f78c8220bc959df79199d2b7c2d9de2c3b9c777b274e109df147cc4355ef5e4091f278010e489ecc37e244d5a977f6bc24d06da5ef4b8a99a2db18f10e6f644c38a17a2314870e4c7a7a5c9dd64"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "bcfdf9e3fb3dd96b72f754d1534dd90ce58f0ad9dc523d7b48ab8309108ffc68"),
		nonce:                 decodeHexString(c, "f17887289f63c865cb1aaf7aecbde562"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0257a1ccf267e1e59bc6230433eac9ec1694f17fe7ca238f15bc1d67168bc352"),
		additionalInputReseed: decodeHexString(c, "f01dba143bd6ba1e4102d01f10cddf868e99e4370247ace6f84e723f7cbade2b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "dfe5632760b5ecdbfc05b55df014f808ae690aa2bdff172e5effd79cf429aa15"),
			decodeHexString(c, "0fcda4029ad1f9b16bc3f0386c6ef897f446b5a4c5604ae5c50b38b4f2d77e82"),
		},
		expected: decodeHexString(c, "d855ee23bc14483f4c2b5ef44ac3a3510fe6fdabe721e5dd143fe6c20362ceb72008aa5c2979f5c2915640108acea7e0dcf0f68f5ca85830cd7e42085b3b3e994109c094beaf7798c4e68b01dc23d1c3e60fd6ee5c243545d6cfc98712edc4a0d188458095646fc126c7dec1a5888dc107ff4de9ee1afd2d5db04796d3ab4178"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "31cbe4035a5d5162eecd529b074e34a8b22277790734fe2ee68c2f71c96c5d27"),
		nonce:                 decodeHexString(c, "d5bc85ca6f4e60eda148cb6d1185c492"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "6a80886c428484d51616a95205bb4efc9478fdb3782781461dae4999b35d012e"),
		additionalInputReseed: decodeHexString(c, "e525d6cb638c62d07a8bc984ab10f224a340e0b9f6fe60219a920dd55b2634b6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "05240978d5d7e812e0f626b6e45e469cb1eb0a3e8410ce38004e2dfa74a368cf"),
			decodeHexString(c, "bd8ccf4665d16dd9db5ffd1f740007aeabdbee09fedd16561afb7b8e3ce5e318"),
		},
		expected: decodeHexString(c, "991120b7e87b711b0299e6c23c76910f3c57227db8337f445a650d697bcef9aeac8937148cc67b9b48797ff26dd19ebbba3bccc8e06760e54ae887263f67ab502d7abf3db52cf3808091493b5a7786ad2332fccbd1dd6ff321a68a11594ad85289accb95b77d6ef2cf294d291395f77bec6d1d600592bd2750d7c0dc1eb56db3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "01380a06d4e6b9204780f2e3e2fc1ab8ce98de026be812093fcbb887078da6cb"),
		nonce:                 decodeHexString(c, "2478d63e27769fabb9738d971295a872"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "658bc7b3b4c4b8ed801e60084070844a5aa9aedf8a5bf5ae9323669a989e8bfc"),
		additionalInputReseed: decodeHexString(c, "537d50ded11a08b9b307cc92a8d5f5ea5016802e9bcad955d163d2141c6e37b0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "df2b057b19a9e3239d86bb120de2a0315fb3a939441cf3bf31b8c1ff9108ab12"),
			decodeHexString(c, "ea7af84983224c69b23429f762393dca9daf24f2f64ede5fa9e382049520a734"),
		},
		expected: decodeHexString(c, "26604f664c716ab90da0c79487fea6ca115b6b3b73d5f7a93eb0fb82b5573b008777de9a53c7c3ed49014b64fd30d491346da8fbbc78d604093b6aa816aab748618e17017c95ad2d1e1b87e6da2db2d225a9f7e7a9ca9f3955e82591c08953817ef80e559880b0a6e02baec2d557759fbf0ee3d06d3f03c02e2aaf86b764c363"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "de045f9ec302685a69bbd044142f2fccf85e394a1f3e7630a96f9490c6b44806"),
		nonce:                 decodeHexString(c, "209cdcf3829425a2797e2aea9cbc1767"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ad9676020bd17670d483b3fca80f8b822f10adf2670fd382bd316dfaa6e233df"),
		additionalInputReseed: decodeHexString(c, "f592b78e992c0b8d3859b64fca9759faedb54f1dd773df303efefacf32c1e60e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a18f3415cb73269abd47873bbb1013ae06adcec23149d3f51bef64b93fa36d76"),
			decodeHexString(c, "59d6cdb465b33050f9a4993d1f03b3a063f28da64f0eb9d779c3f4a6dd4d10c5"),
		},
		expected: decodeHexString(c, "da1c652e69afabe0245244a71682eaed5e34ac72eb3241c182aaa443141e453d396ac5009b56dc75bb01874dd8eef864d7638d01a55d12bfca276c1e2b7125b411fde8722cb4098ee639a1c8cb5f6f160e710b777781396982cbc80d74dee74f7a395097a6882bf60343f99de4d20ff8f30fa1832643ca74f7002a57be77ce57"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2fe25cd9b9a4e558ecd860df4636db6f5a9619cacc4012dd0f82e3a1ebe59bf3"),
		nonce:                 decodeHexString(c, "96cb549e231ff8e40fdbdf26fc814826"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3cc4a2a6224b91f1c5f55978b98e70fe260e1d29d4aec227497f12584a55d733"),
		additionalInputReseed: decodeHexString(c, "10e7b6158b558492143fc9989baa8f0a78438c257570888b6fd9256469a84c6e"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b8485695f4271f75573438069c76f492118cb879a93dbb3ca3f600a94eca5e7c"),
			decodeHexString(c, "791bd7ce4c079fdbafe283f8b0953e42e6e78a61f11a1870cb8f2b7e1926569d"),
		},
		expected: decodeHexString(c, "bf5387a560cc18098bfb7550410389167b73191f2a9f8cf7e74517f5364a053af807fb693f9fe7bcc3638b2aeb75df2b2456bdf2a9d93ea64cd38c1d8fd11c6f769dce41f4451ccb4ae11e5eebf34dc44ff860ad65aeeb3083d11a70aa4de3add3531fb4283fe6ca8aaa99540440956c15dbcbfd21ee7ed48a4e7644a1781052"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "6e5cd43a7b6da4b5843ad6ae639a220d49ea3ac5acf686017420d695aa3b1cea"),
		nonce:                 decodeHexString(c, "81c76941e1014bc7d083e8c957005f5f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c41e40bc4b38ef522fc4c8246718abedb720acfbfb6b0a714097c6d4995f2556"),
		additionalInputReseed: decodeHexString(c, "20f310c8330d6dfa40569dc2eae38d2960776a94a4f83351df11d5e18fe7bf8f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0e18e0a12638ef9d939dc37d352f0d97e3c6880aba367cb9421ede15ef257b6b"),
			decodeHexString(c, "2a9f0a1d263e7ac1fcda048c3192f1f7bde55c7ca0cb646884f5a71a9815c325"),
		},
		expected: decodeHexString(c, "9d01efca07bc85fa837d18b926196abab358a4ae6a601165bef19d465fbc6322dae0766c930ebf35f438079de283f325d5242a90d6cc587ff6185f43bb035260b4680ecd861cdb9a1014c49d6742b47129e91b7b53349b6e9bfc31a34d8193b00a9402641d5d14aff1548c1a8f4ea89076450ff547e75d4ba2c2b4b33783add5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "51c5f7e4b6bdce7c34b98d0b68de8d1ef8063d7a5240880bd9cf8c37a22ba55d"),
		nonce:                 decodeHexString(c, "35da4528f042387e6f61d4b98be5f4b1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1c717013d06aa17c2d6a6c46c45d969c8ada1b206a31220ffe47ecdc1bdcb115"),
		additionalInputReseed: decodeHexString(c, "9ab7930a1b0c7ddd3899e7dd5a32755582617619e87704349da1f9d9694d13f6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "bfaab1f4664f781c027bb56d0279de1c371441b5266f1676ad3a4102847af13b"),
			decodeHexString(c, "2ddb00a1a10303a4874bf775d3bae7fcd4891bf422a4714555364db99be91df7"),
		},
		expected: decodeHexString(c, "4c1c145123ef0cf2506119bf4225d27ca46eac126041146475d89cbdcf7196d3ef02057844e3df29ba6d6a0b97fe8c6372bf434b9b26e25d44870c84765a4d10138bb6000ff169fe49fa3c7b35f7d01bf9bbe90cc1ba2e1db42c9181202c6cb5f53573972badfc002254e4f6313ffb47a1933022620c1039a29bde67536047b2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "8abb492e8bdfcb7ba83b54f3c09f7ba72b8eae9c673879d92775ba8b44ec8845"),
		nonce:                 decodeHexString(c, "f0d87e1b58978c0b1e8c906ace08c75e"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "68c42ff47bb9cda08ee18e6c56bf4cf9425427fd02dfd7456bd6991c61d1cf4e"),
		additionalInputReseed: decodeHexString(c, "93c3a1c58f3830779e723fdc62e6080b9015ac9ad9b68a302b67c8c7d18a3c98"),
		additionalInput: [2][]byte{
			decodeHexString(c, "46f585f7585d1ddd16468fcb3e7da1730b29cdcfd52c384296fd6e5f73acc136"),
			decodeHexString(c, "ca7ebe30b97625890b90e46688a4f1dcf73ff1229813f44fceba83766eb9e4b3"),
		},
		expected: decodeHexString(c, "04e664f4fb24bd86bf0f23b62b7feaaf38e4f8b69e5e5dc84f6697cc774f162888fbeb31f570ca371417a139d6c0e2b85e5e1c1229b3e9dabf1880c59f09fa093313220d3e42e14edc898ea5098836a817ec36c3337ded4b921efcdf31dad02efebf67628656f38fd233b196861f02e1f68dbc059f38665507d9ffe94f9289e1"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "086d91cb27bfa15f19f116a361f5d83ac7f43388416e1a39a6a185b2b44ba05e"),
		nonce:                 decodeHexString(c, "620250b21970267967625ab5bd6cc6b7"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "db89e435b7045e1e783f2ac139c1c09aa900c5a1cc9403ba960bab8845109ae0"),
		additionalInputReseed: decodeHexString(c, "36ff00966df30bc6268f9bb442074e172e7f8884a6d325f12b38ed4814baff7d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "59b90de7a0a66fe37d19493442dbd9b4cbc08d3bc16c152e688bcb76d14415dd"),
			decodeHexString(c, "276918fd0662f3b7b8c389e5e807fe087d89484caa9ae36f72a625f8ec36b965"),
		},
		expected: decodeHexString(c, "42a82cc0fd84f0f62e011b46d01e63d963db55e1ea644ba8078b97d12b0c732cfc77f97cc98e689dfdea4cbe4501df5e150c674e18067168ea1f8acc3e6fd4c65254a6136d0f44b0e4f26bf13a923c7668bf72f0efd58f09191ab6db611b26fc25108e19956c81a2acca3342bb3e51bba2977f746f29a3dcfe5a42816a67aef4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "e760d8db7bbc295c110b44fc20e1fa8c1b8249c2ac6ba0ef8d6f267e7d29edc7"),
		nonce:                 decodeHexString(c, "85d5ce77c26c78fb3c723924766b5624"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e2ee85112f2eec91568627795354c735c76d2b2811797705ad0757a41f357c30"),
		additionalInputReseed: decodeHexString(c, "78f4fb0641638260af2984a4266bdd8c1e6633873e5542b0373d5af8c274e007"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f34ec4cac5b7aab2067a4101b94a3bd2f911d6fdde660a91e00f1a122119a912"),
			decodeHexString(c, "dd6aa5996ca270ca6f326258333aaf9eb1eac1d93bb0752062b2abfd1281109e"),
		},
		expected: decodeHexString(c, "e6dd0f5504974cd26f30a470ad8ab985e2175e16aff43bb88937dc52c2258aed6706b17e7599d152b0b29a5cddac8ee60c052017789d65d797d87a3d7496504d840954bb5adfb55317140821507e7648c8baa7ff0b56ebc89ba6d602e07505b0b2d84070a2a0291388bcc8ef112a2bd3fb62849e9b9cd78651dfaf1bb46b0978"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "821a0b06a6276bd2f30f2c2bf4c1f6a5d890ad15bed9532e7e4eb16caf75395a"),
		nonce:                 decodeHexString(c, "b1e0a10ef01853213185529e66d356a8"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "0d9142bf9931b2648f73164261ca35dc76c357e74ea192c7c7dfc1f40cfaa459"),
		additionalInputReseed: decodeHexString(c, "10aff5a45d9782fcf72ac06a54784062e0b9c9bf152e1df62d2d379ab3aa7bd0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7299f152f8bf9da8c2adb5e0a52d0bfd9e23f462aee1e2ac83f43cc051b6b34c"),
			decodeHexString(c, "1662a5d55d065b90b28920370ca49ce4b05bb83648596f062357462e85f8405e"),
		},
		expected: decodeHexString(c, "9dfae8b06118af28bbf322ff756781b78ea2f76899bd35272fe7c121f7c079bbedc970e388fbc7e66c4927b0c15967ba92cc9dfaadd0d8413665b3a58b0d739d5173fefdff08c13198c94eb9de0ce56e9c4f4a6544b48d189c4863e179f55f34bcf2bf19641c5788cae8b9ce2b5ee35683c88fdb1106440f49696aeeef785004"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed105_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed105_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7337406ce4eec1558eadc3ef4c7b4660548f7cbc090c108c50bbd38bc2e97a42"),
		nonce:                 decodeHexString(c, "f28b2a6e2aedb2eb379d7a96e7fa60ed"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "cc152703d86f756bceba560d2d838c81dce9cc65ba4784eecfb2e29bc33610d5"),
		additionalInputReseed: decodeHexString(c, "4ef77988cf1f8d76011cc0d6a4aa2d0bceddc40724a33db3f79509911ac8ee67"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0bbbdb5aa6c597ab9180d833a4ecec0b022c1def899a9e4b4034e5757b9a6d2d"),
			decodeHexString(c, "ea89752756e74844ea372d3e6f729ef6865527b2979e44ffbe1a7975667b12d3"),
		},
		expected: decodeHexString(c, "61d4a6ad51bc7f4dbf52e6d9b52f2335a6e542a814e49723d3a365116bed38f39a9636f0f16bd4554fd1a202dfdef71a40c51b1e8f93f76cc4622c4336465493a8c8fe5f7f152c9901e65ad83c5857166180b72c31671beac8f45793c57c763718cefb036db2832760f8a6d961b9c9b04e0fe43178e4919d4a5a24dc44a1bee6"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed107_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "29286254b5dbecfc64744c6a97486ecffe887b644994550df4f89b6c3e268f93"),
		nonce:                 decodeHexString(c, "252d57865aa145d14ec0a1527831100c"),
		personalization:       decodeHexString(c, "5c92073f4d6de35c40dc771769e56a0029cc3ef2cbbeae5519044321697062e1"),
		entropyInputReseed:    decodeHexString(c, "7ff1f24b8c99c380eeb95ea98ab886cff22b8cf3808a9df36f428a020db9cf71"),
		additionalInputReseed: decodeHexString(c, "2a79a7d6c8f6ac9c729c92b2aef4a890daf3bc3bca0f225fe314c215a4ee46f0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "25b46bb4e5854dc4883173466f70d7697c6662220959b4ba17ed590562a6c78a"),
			decodeHexString(c, "f6d7ce0cddfc3bee16acf0f1d7bf0662efc10126f6a51dff8aa0a1d7b39449bb"),
		},
		expected: decodeHexString(c, "a4f62dfc15bf4decb2e0a83fbb06c2188fc83a64b9d6cb555d160ddba3a9ae9ee1bb63530c9dae6a880a27efce0c201a8d1ebecc80f393361128e89434847b1f45a8e2fd180e6d768fce8b193e62e7960b447b1e523cac6e1e48de6d4cc1e8a462b35965efcd8b382d0a8832b6b7f07839049a666a6f75d71ba563250ef1ddc5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "31b481407fc52afc0c890a77b0895ad214a456e859b2c4379a5065a328d17528"),
		nonce:                 decodeHexString(c, "b22dfc3ae053e47915f3c5f588f5a5d2"),
		personalization:       decodeHexString(c, "07eb0650b5ef5fefb8cbb00bd22e2b52572331e5a04b11d763dddbb8ef752b4b"),
		entropyInputReseed:    decodeHexString(c, "66721dc25f73f70c51645a0bd0fbd5561f6d0e6b9a1c69464aa3d41fe39ffe5e"),
		additionalInputReseed: decodeHexString(c, "0a4073b239855a94bc6bafb698b24eafacd8a54480e8c54dced7332c7783b7ed"),
		additionalInput: [2][]byte{
			decodeHexString(c, "a30cd2a57417b2826d790e3da69a1c80f42cffb825f07c7c6cbe9dae35f560a6"),
			decodeHexString(c, "e30cc33498e9be01e77a1f36454c09023bffa9f3d4425978410c60f9a981ac66"),
		},
		expected: decodeHexString(c, "02edcf7bd1e61e9fa04f1433282674700ad3d4694ccb86b30584737bbe3cec5b6b90072c54b54ffe7c5475b98d9a592d4effcd0ce827f162dfdcaac167800b0c05ba8a2881fb8feb35b198b3f4f15f85839165477a40af324d8df207ff17e2040080c491c2cd4f2522baa08b9c02a3ba9a98d6d4a4b37c4d55689d795551662d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "766cec7f6a59d987e3d8015bb5e68a0731f50772284abf92ae0751addafbf0b6"),
		nonce:                 decodeHexString(c, "c664c1939418b5d6a9e85ed1acbada76"),
		personalization:       decodeHexString(c, "f6376d81c6fd1aed4f119e78fd7ac85b8b3e8de92f2f722ab3b8d836b0e747ac"),
		entropyInputReseed:    decodeHexString(c, "0be7c8154df9440e97c65a2e588855b4531a073045c5014bf9984f15352f182d"),
		additionalInputReseed: decodeHexString(c, "b5df070bd4f7934c74d705c657eecc52cc21a57776a7ad4ff9478438e87db140"),
		additionalInput: [2][]byte{
			decodeHexString(c, "59f17ac9dcb7072542e149f8b68dfe5c22898c4d3877756ee88d8efefdf875b4"),
			decodeHexString(c, "b2503740f6ac6d0ee80e4e1817a2706f46615218a1a36350012f92c8559580aa"),
		},
		expected: decodeHexString(c, "e429406438a1a2a69d8593c40866ace2c78d69aa34ff6e67935bb77390625f207f7f4a52c882b0ffe3361574107002c6064ac806402135d1035c99f98618e074a28a0c302fde9b834c64d646fc06a64f1bb67f95fb09a9b83be3fc0e1296298b452f0b5f25a4927c54f6eff96aff3d804eb35f43e5798b5f71dc1c2d3f135aee"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "fe15da4e042c27386e080f9bf17c89041a667262679107feb63fe1620a566fe0"),
		nonce:                 decodeHexString(c, "5d6ae4338524f53159a9673fa1fd57fc"),
		personalization:       decodeHexString(c, "08fdf1c42e1cd062ebf35c8aab0bcff86f3a66480fcca14f9e26e1d5ca3478fb"),
		entropyInputReseed:    decodeHexString(c, "71b22c246ad371259c307562bfe4a9f0b760d0f6aeb4a1d646c38a8918508162"),
		additionalInputReseed: decodeHexString(c, "ca04e9ff15385f0532804c2dfdffa2e209d42ac09d181b480a8b8e597a4a8ed8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "2576e9b49bd406a07e15054a8f93eefa186b59564745b0a2ecf7ea91dbb2e850"),
			decodeHexString(c, "fade8e20781fb07ff9336f745ba9613df8a8315b5da1f3025c2df8a2b8a4e671"),
		},
		expected: decodeHexString(c, "3ab79350f55140a43800d1789d1b9dee9d82ed27dcbbe23ca005abc94812383486f659d6c1f684897e4f8ba9495e265e9ef92f0848dfe392422bc2a30a7f6b184111ca101b7788050be96c7b39538412ec841330d4a90864e6c1a06aee2f3e9afa016e1e644361b5f158490f6db3cacd9029caa598efc49dd6425d6004fa3454"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1763fa8e6a1138dd225a28809878fd453178cb43fd209c3f57ec4075410213d0"),
		nonce:                 decodeHexString(c, "0fd39ed27b13bb7839c734bdc5007c2e"),
		personalization:       decodeHexString(c, "6af53639c6e91e534dea38b20b602e44c473dc2b7ac14116f3710d0dd8710862"),
		entropyInputReseed:    decodeHexString(c, "4ae3f6b0b8a1c62d061239b00e11840c28bb676c1bd3b54c3bd001dd1a620137"),
		additionalInputReseed: decodeHexString(c, "15be9a4c7fcaba1983ec9017cb51533ca650a1769ef46390e94d355fe1923094"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1d05b6f8a634b958754bf644106b2b509615f958992cf5adb2956851238a84c7"),
			decodeHexString(c, "b45590876ad7a1cfe241b8091e8b1d3f421be69be3ece5896d340ecc2632a10c"),
		},
		expected: decodeHexString(c, "042f4070afd8e14c96b768d2b31427174ab2dcdfcf272f03984ffbbe734d3058dbe5875db0d8a17620c6695dfe1ba30a96b4a61e4b4e7114d776dce1ab306332990a3d35b9fa58f5ad41b0319953291c6f3143e8a45c733b50cf4f022d956f2ffe036b78327793b79a707828364d88ee67b359542c8131946bffa2da0c5ba180"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a0d1355624bb8a7cdc20ec542c007240ccf9dfb567596bc5b17a28f6b605a4f3"),
		nonce:                 decodeHexString(c, "d830f0011588887f9f5f09361102824b"),
		personalization:       decodeHexString(c, "81c4bfc93f4cbbb64ea8491c85500fa33ef14a818fcae4fdc092a00b370a1e27"),
		entropyInputReseed:    decodeHexString(c, "79daeb15ff47fab92a6efdb1e63645141f795924d511c268b2b03a4070399365"),
		additionalInputReseed: decodeHexString(c, "2e40d5bd44f89da04afba8765979b5aa3087fd2faa3906249cae6d5a822dab73"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b096a7705b262fffef73a94de5bade670f56099b7f5ec9f333ebee84da7a3af8"),
			decodeHexString(c, "2b5a70169d642029eabcf1d06de0a39ceb9a41ac0f087cff54bdf5143242dbed"),
		},
		expected: decodeHexString(c, "e81024db1651d31d4048dc6d8bea785aef2c47aae75582488b8d681e77796eb64a3d3f0c5d876fff19b12a2f2939f49fbb0a6e709d86ebe69443c0071ba75c8c3587f2960bb2daeb78e04fe3424daeaf0c7ae3a272e4c8ae314b5588682d6b3b852c4bfa5ebeb169ef5c89bf1a935fbdd83b4bf8275df4674de54143a091d842"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "2504b161cd34ce441baa453fc3a2c05ee5817ac737665a5e5a297207cd4cf206"),
		nonce:                 decodeHexString(c, "43fbe12ab48c9e81c712513eeb672b63"),
		personalization:       decodeHexString(c, "4c16ecb056c492b89e8b79e5b88c7cd1238fc7d7fd65e999b37ee2d4c615ebb7"),
		entropyInputReseed:    decodeHexString(c, "25e54726a2d91245669ba73af2c12cbb13eb234626ad6c8dd00ebb53bb55dcc6"),
		additionalInputReseed: decodeHexString(c, "539ee1e8da706f978247cd055e6a95c25199844c2b484c940ace39938cd285ad"),
		additionalInput: [2][]byte{
			decodeHexString(c, "7fe2ea090f3dd6fa1ae2a55a202918c420130694e5e603f685f382fe862f9b8a"),
			decodeHexString(c, "1a07e403b01b72f029deabeef248e090b58f417e97111246db13727565f6167b"),
		},
		expected: decodeHexString(c, "c2e01d180bd3b53c0032f543e89ca6a6ee834de2974cf72079a7280b27e7976c5e4e3836bb5115152ca381330c24f46da637cd9f22ef895a5d11bf928e0734e38cb5530a2e916af4019d462a49fd3bd07a2312b95c30ad8cea1d4f8db8f230e984172266412fe5d9d268734611841064d928d23dfb8ef1335f502d0d7dde9e8a"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "8d2e8b33b20b9543459c5b1d4c1e156deda303f7ecad27ae14c7221b25ab6633"),
		nonce:                 decodeHexString(c, "21a991ef68e3f8d9dea0515fb20101b3"),
		personalization:       decodeHexString(c, "965d830cb8de3b3cb1f401c135e936f5bb79c6e411d552736cef1142bf45115b"),
		entropyInputReseed:    decodeHexString(c, "1e8d7e47c22bd0a18c431e221543ce040f1210a292d639991c943b03743f9a64"),
		additionalInputReseed: decodeHexString(c, "ac433644e838f834fba80c54233057017d3af265ab18d0ffce885839097bdbcd"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0fac6bab66dfd3e17577aa5e5343f6d175c76152413d04dbf31782cc06e4f4b3"),
			decodeHexString(c, "3869f098577d261e54ba8ba49abd8ec720502d8ddc441d723e09eb81a4f4b37c"),
		},
		expected: decodeHexString(c, "18981e56a0507305b13e7a768f6ae6835a0cc8afcdce313dadbb432e55c58dadfb6bffe5b590d1ecd0da4049fffd4e3b552c994b03c51ef0d4d5fd9a763308702ecfe45b253613ca3cbfeb8b658d320f09c502190d1ab2bebb4bd9a24ba3aaddc5d1264a52976c1866e2ac83ea46b7e02c1b72e44e2e2f72e7ee38adac986a69"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1d1865fbe30604316a5ecf9df040423440b7156410d3c532fe80a552422c7894"),
		nonce:                 decodeHexString(c, "e9f978612779caade2975e37bd1e2ed5"),
		personalization:       decodeHexString(c, "46e6c89da4e6d874135b7c13702bfe7273a7a33e527f53cfd1c2555d420baa51"),
		entropyInputReseed:    decodeHexString(c, "5ee0a130b668d3530ddfda1fa3783c73d0538be77c366c9a85fad1b820f401b9"),
		additionalInputReseed: decodeHexString(c, "f84db1c6c34861d1aa5d3a423137d6421cac3f606f3ef7289a7a8c7b56c20b2f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b6dd72a82955bbc12e5bd986652b4848397bf01847b52aa06fb91ed746ebdf0a"),
			decodeHexString(c, "69310a389cca4db2fb0e15e1bcc29c625ea8a0bac7adf804c2939130b952181f"),
		},
		expected: decodeHexString(c, "dcceb2940660fdd89962d726b883bd868cb585917cee36557748c6caa8532ae0359d4a5078cf82776816ad133036a3f76a9b67f3e520da8a89fd4d7652982e89eccf976621cded491f4ecc4ea47d5685f8fc51f19d65eb08b6997282ba3511ef7aaa965410f78252b721b9fe2d2f2b5ac969b50bbdc6e6f65ee9fda10601d915"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7e83f8984adeaa78a76b834babc4eb1bf31a011b60868c5719f15667cf3f256b"),
		nonce:                 decodeHexString(c, "62a1adbb4ba48e2ec87630485d764dee"),
		personalization:       decodeHexString(c, "57126e9c2e682d1faff74fb2d9e71fd2383bcdd8bc1e660ff5e9a82887a2ea66"),
		entropyInputReseed:    decodeHexString(c, "5d4313eacfc767612e0c3d7535e664fa349f29d95b0eff0103129638cd7d80de"),
		additionalInputReseed: decodeHexString(c, "6fa503ba8c0d4093eb9495ab085e6c7688b3882fd85f4deb57a3f172a5e7a9a3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea887d8db2159c947aff3a0efe2a5a9ce29d163268568cfea7340b9d3a500883"),
			decodeHexString(c, "f45bf3f928e8d09a7972fa037145f394e8d0bee542a6678322a9eba765da47c5"),
		},
		expected: decodeHexString(c, "f4ed77f1b7fef3e448ae9844a8163eef1ce98de3174e9250f58fb9b2c903bb0be27cd11f3a24e36fa3db11d00022b392045aa6391fd9607d71069a006eefded096072f551ad2186b02e5a743e628697729066475e1c86f9fda78ce739328eeabbf36a281b9df8597e784f2294757f234822411c8378bc3aada15fbd0d3313450"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "87e8b894f8be64ae6383f1053316c3afbd5730bc52de611631c2fa9e6a94a239"),
		nonce:                 decodeHexString(c, "885066488558432529f1c30abae409e9"),
		personalization:       decodeHexString(c, "e876df9191d29fe86656a91be0c8c5c9c78ac0c405990549770abdaf1ac51f2d"),
		entropyInputReseed:    decodeHexString(c, "2c2317a39b1027743e42e9492f260914f84b200fe7690ca49e1e2c6ce8ee7538"),
		additionalInputReseed: decodeHexString(c, "4a5c2f1a7a83c875c50ecc2b26d99ed9afc0d58648abf16b23f0cb0619fc85f3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d8efcd6eef2f3ac4cb22c607c83791e458ed546f7b31ce894684937f12a8491c"),
			decodeHexString(c, "17c8182a8c07de48125231356373a5d8117d8b5aa95ec20875b6944c426ab8b8"),
		},
		expected: decodeHexString(c, "dbe2d3117a793a4c6351731971aa7667f4e60893b31002bedcb3323efa996e643d6e1c378f0b0c52a94bf680093cbb447ace465c0a4de7db19a63e62968cf59749365099fc250bccca07ebc46082a3f67671ce1ed4ae1f58d47bedf1499f3b112ccd5163fb6df1ff31be184c4183ba27165c804c791669959e606b354f3ba18d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "990420cddf1f4c60852c5916585f182e0b354e62793dc250c5aa31eaaa1ee2a3"),
		nonce:                 decodeHexString(c, "c0645b6d9fe7138dc1ab4059823c09e1"),
		personalization:       decodeHexString(c, "3352e7cd119a83c4956fd1baee20596ddf564777227828505dbb32680a66ae74"),
		entropyInputReseed:    decodeHexString(c, "bb4939c39e768d2c0decc1e785bf00047749caa81178a3157226b57d5beef566"),
		additionalInputReseed: decodeHexString(c, "81fcf7e97db7008b5fa63447677a46fa8424ed5a5c67d0c0f59e4767aee638a6"),
		additionalInput: [2][]byte{
			decodeHexString(c, "34eb5adfe128144d1944f9ae194d1dee4c1b00cc93ddac2a1a52fe7e95333291"),
			decodeHexString(c, "9ed8ff9f5b4aaf6e602a8716739fe300ade5bd06f4cddd22ff6d3bfa62e36119"),
		},
		expected: decodeHexString(c, "0f7f06abe944dbd464672236c5b074660e8fc7a020bb3ae11ef8e389ede8d6cdd7e4e49c4eb3d3ab47b1b244fd4b6959bace0a4bd14aa616579dec233ac28e5d3e6eb34870460ae1e397003ddbeff2b5fd49b4afc4b26eb196a98b1433a130c961ffd343acea143886d68f33dd95a8f5134e7517bf3a980685feff930763885d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "fbdb06cf8fe3e15e6e192855dd5fbf2731cf563c40f6926c102fcaef9f6b730d"),
		nonce:                 decodeHexString(c, "8b17c9fbd7e39669127ad0a7d84b73cf"),
		personalization:       decodeHexString(c, "43eaeab92aa01dfae5c76522534949cf6a29468eb6dff390a45f53d6ba816b6b"),
		entropyInputReseed:    decodeHexString(c, "55a07443262f8163f70c89702e0617c89f80ccc3d7a38aa03f08e7acca57808a"),
		additionalInputReseed: decodeHexString(c, "f3aa910e17d7dcb0ffd8aa123853efda339042cbc6b289e48f77bb8bfb2e2bf8"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f72da3cd3da628edfc43b667030ac0a9ff94db1426febb808fbc70835f0a7bf6"),
			decodeHexString(c, "8c6872a2c66389940f731ddfee36c557b9e5608833f9e1f04f25c265e20d33ca"),
		},
		expected: decodeHexString(c, "e4087a4079c46efa2ee08177d008345d35778474dc5926bd1bd67a61ca4da9b49713890c8795487dd72c7d8fc6b2f527edbf220dfee6b7d750822aea3b26626aaee5a337456c5aa297cbb6ebbe8cdc11f21f6b825e03b9e87fcd5b6bdd0ef301595ec7fbc2548b93ccdafa85abe37a46e438c0ee4cadb512f57171b0a8be75a8"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "ebae68d91247a176e0c4e31320bb2168494f5249752973b83bd1a6eee17d0815"),
		nonce:                 decodeHexString(c, "ba0726ab5f8c7aaf631c37f3e081a0c9"),
		personalization:       decodeHexString(c, "c4e2b376d1550dcd36e818cc48364aad5cdfa2dca87b1218025338ce8f6ab2e3"),
		entropyInputReseed:    decodeHexString(c, "03ea8b9babc1bf0fe7c90813bbd9c572eeb8187aa589307deac0a14f7f32a290"),
		additionalInputReseed: decodeHexString(c, "0588b3e2667556b486deda175ec58910776e299635139e1c0b021373374edca3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e5aed9d8bb4b58cfbf237eef00caf550585ad906c40a10971a25351a92331fe3"),
			decodeHexString(c, "57c614ced1415f3d16c060b004c8041c9fb26d5ed245576d43c676029ed6491b"),
		},
		expected: decodeHexString(c, "d65043c24e894cf33609c9604521fac06806b4657d7d3b4ad59fff70a488f41013c1cf836c4ea5d3b6066089a7b0881d56fe9fcc670ae9136e1494efb0085b96861f9590b62488d47220969cb6305d9b102b4c4607a8a5c4fee6ebd68d09de87667a2a8c0a3dd56ba680d8ddd3801a2eb9a2ad1c7d67efabf0b3ce44c21b0ce2"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed107_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed107_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1a987a88e2c490be07b12473790230ab05066c9614401acb7903c3523b57dbfa"),
		nonce:                 decodeHexString(c, "44b47f7cd3cf53f1981289311a3cd417"),
		personalization:       decodeHexString(c, "e1348663a0f754f283641ab95c218017616b9da189a30ddcf13c937baf662a41"),
		entropyInputReseed:    decodeHexString(c, "aabd29e89ff981f5ab1acc7e1707c96eaf930a4d301fbe84dc300bf937a6eec1"),
		additionalInputReseed: decodeHexString(c, "2ae8ba955e499186c1fcf9f9d557a7f9d963b2f9fa91421397e65c4bbf1efb9b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "092b418c28e34e5d2f9a9c0ab4d6dd55c0c31c68c14b487592c448571f899811"),
			decodeHexString(c, "8ec2a4e7e257f1fda5d597f3c61438b4fb2abae915ba022186491893b3b53987"),
		},
		expected: decodeHexString(c, "5bdcdff81211ef87618f8aa3d25764f8b80d4a76bdfd3192fc0daea3a0c085650f337f27d6f60459449f82262b163790c8a08f350aad4b8ceb37ca5ea2dfeecd14a7cc128979421456d5e75c6717e7e5ebd2383c3ab26f29606bea67c66efe17e4b365051f204bdaa6c22891a27c6474a8b9dee3061b5844a9a3cd2af887fdf2"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed109_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "39c18e4471905c2141b79e0b5fe5a3026ae7bb7123d890603b43a41475176a29"),
		nonce:                 decodeHexString(c, "be5d18725e17e9728a08068cc96bfef9"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "54feb3b45798cb785238eceb750b3c6f5dcb8bdadf5fcaba7d8e8778a3a6d4a5"),
		additionalInputReseed: decodeHexString(c, "f0b773f3e8da00498b3f167f6cbe39b71995e8798f9f9c3798933c854fd570c4"),
		additionalInput: [2][]byte{
			decodeHexString(c, "22850fc613ae480c1aa646c292992714bf23f014384e61aeed84b8fdb1b53496"),
			decodeHexString(c, "d75c1bd9f7d8b87c7c00b323c7cd585cee6744ec17ed7b0007648573cae90402"),
		},
		expected: decodeHexString(c, "5c194d800030333535369413f0ef17f7ee62a6809ef474e4817962a18a53d4335fea4796af552577bdc0e9de2b30ded67e87964a3da1a650185bb5bab8d83c53774f9df92aa7991fbe67e08223a90b5d75259ef883c1044193345a3ceedb5e4842758625b270eedce4ac55f1ca17f751eaef00f7a35a7c0fa879f64f8b0f9543"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c61fbbdb9ff5457fdc8318a43b1a6920e58967d004cab9c66d0150ee43c38a5c"),
		nonce:                 decodeHexString(c, "756dcdb77b91852759c4848772c086ca"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ed5e67f3fb78ccbde6b127e0c244e687c6c4a3b8107dfc4b943dd09231e9723f"),
		additionalInputReseed: decodeHexString(c, "7a01dc09c0109e65fb73c655952432a5480a3797a3e7485f433618cfed3fa834"),
		additionalInput: [2][]byte{
			decodeHexString(c, "d1d3ac7a2f1b818a98ba7fc7b5ed32b302ace92e2b11105ee6674cab5d2a5d6a"),
			decodeHexString(c, "261a87e7434df9efd173a12b3b0e3d3756fdf0f3707498b8ff925de3a2286fcb"),
		},
		expected: decodeHexString(c, "1e28ed6af58f00feb6d4bac56489faeafb6bdfc54f38b3ea09bdf4cbe49aca9f59362df16944ac245d5405af2775620b38f456da1d246ffcd371c717cd2ad1a81c6490d20bf2e50465cc0d293692375f93f40c12d678306ecbf127769e0f771d93e4ead3dddf3da43a7a136703680ca3c42c53512dbc63f68b7179cc632d987d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "26a0e233e82b652a8b1bc7d7022fc8cd2a68e448cb229d736a205a686c702050"),
		nonce:                 decodeHexString(c, "6e672ada2a7d91f32b6782665ac4fe05"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e10b08da08bfaa79862556e43d5044e335ff06432cfaba132c244068b0584902"),
		additionalInputReseed: decodeHexString(c, "fdceea92c18b2615c93835fbb6601cd33711faf6141592008fc3c47a4a15470f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ab1b981a6381f8a800cde41e65bc5a8708d78a3473134ca16c93e723d8c13096"),
			decodeHexString(c, "69982960fa6f299a3cece71017c0bf9e9ac2de1609e4044da25eab6f3d346b45"),
		},
		expected: decodeHexString(c, "9f0dfeebd0226f1651570fce4b6c398da61660a7bd6fbca587aebd876ce393eb92c5948808081a386e02af7a2a390347b7edcced072dd261dd18fe180a0e0c1dc3af56193c3c0c3b222bbe6cbf5c582429c0a9fa4ecd3f2f76c205818bab205d8a2a06d49824853d8a7b65c42586df6783aefde96c6b8d336abd7cbeb97eda1e"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "78d887bf3e73e00310f0b0b59e70ad8c05164a1ec7ca3bed53a9af11d56ca7be"),
		nonce:                 decodeHexString(c, "b30e2aaa9fac5c1fd38be61497211ab1"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "81f7e689028c9d45b2c8b671a6098f5347e04b44bfd68689f9129566445b322a"),
		additionalInputReseed: decodeHexString(c, "40b061d63d1d93d317e3ad81a7c57849fb4f306b79cc78d027fc8f3d6e2edec3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "0af607b892e83b3f342cb6bbaaf52c5341875eb0d8cbd45b55c2de959248a111"),
			decodeHexString(c, "499f904b8dde43100106a5c838868abf7b7219bfeb843c4ebcf7b8549a86a7c0"),
		},
		expected: decodeHexString(c, "97e0ac7ebfc82df49ea8b9d1a936ca66e1fb54ffa747f641bdf50d22b5dab6367c12e0245b73b911e951357c50fde0eaf32224981379149e454ac74582dec3adbd796081ed61191eb4e5e37c003682e83ca4043833d2ac8a77ba0af129e747ba5f2809dfbd1998a6525cd43ce8f730f9e63541c08f1401bbe076879f0e979884"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "817aadcb5cc04f69ca219cc57ceae78f070c1613413f5ce7ed086ab9635d8b85"),
		nonce:                 decodeHexString(c, "adf1136f1da10acae16150f25a68b690"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "22f6b1363ea98f2e87985d685dc696258e87d820b54029238f8bb463cbdf5a31"),
		additionalInputReseed: decodeHexString(c, "50e48b335a149bf35cff6451082dc6af870eb9aa56d7c5dad7f58483ed384d79"),
		additionalInput: [2][]byte{
			decodeHexString(c, "f1c5a47564e90c16d04391d5001763352fb9f1688184eeb77bf60d582797de99"),
			decodeHexString(c, "5aa0886f486d2b56844d7992155311dd317ab4cbfcf161819b94b7b6854fc457"),
		},
		expected: decodeHexString(c, "664a8f0aff57684efb85570667e206c72e4d9b004d6616524de5630489fc757ac36d94f9b9e4ab376cb5d70fe51acd7545e3f23852cb545fd0485b34b1d5236f393017555d32120f3e1753fb44afae47b94de7be4fee0a31526f0ca2ca80c272dafba701b90e38a33e1b9d4744745f67f1a5c41791198aa63bb2f5a3c4a50224"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "e1432538d0bdc43ea82345d046ae2b073ef2deab0fa65d4a65cff5a3996881f7"),
		nonce:                 decodeHexString(c, "c39424489f1f27e1d92e694613d031dd"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "e16a4ea77936eb7a55a17eeadef810e123b79cf60658ddab3da86585063f2116"),
		additionalInputReseed: decodeHexString(c, "6c5c504cdb679e45605f5a491596b00b2f1010b1c6ec4e17c845cdc660274b68"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ea49ea7d63d1dd4ca882c3f0051489df1ce3e204d95a8320625791df9accdea8"),
			decodeHexString(c, "d04218ea53b21da97dc63d37194400c0e2cdcef2b427a303a8b8dbfc6e54efb5"),
		},
		expected: decodeHexString(c, "58679378fd3a839e3ff758a2104811211b5a6f63e998eb5326e3871870c5cc09a649a46e03030a8104fa52aaa1cc0d00ed81e6e83b4a9bf6c531879be728a6f4fd5ff683710047f2db42c7498fdb1de73674b79264ecc17d1e8656953802a49d548c7fe850f53fa743ef8fefd32dee3f6816d38648ab6cb7aca8c83f8c3925bb"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1487d793e56dc3867d3f33c9204a8d057bfd228208215eb0f161e11792102794"),
		nonce:                 decodeHexString(c, "d5e871ca318a6cda1e4aaa0d697d79df"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "76f885f6c18187a06b75e52a6a1a438d1ee3fdf3440e2aa9d3dd34ab46f44b9d"),
		additionalInputReseed: decodeHexString(c, "643d12c8cd8fc6cd718d91a77670db6f90af7b7a4e5b05d1803660833aed5678"),
		additionalInput: [2][]byte{
			decodeHexString(c, "4df6c1e02de6cd38d108eb61818cc46a5e3e31195f3ae62cb15bae1e442164d7"),
			decodeHexString(c, "347d96accd3a0017f575470a480dd3768b32685e92980740fa6598bfa33fed76"),
		},
		expected: decodeHexString(c, "b5c50f0d9bc591d1df754192f6333d13bae2ac7405c3ef659f6271863ce16089315574dcf7aceabb40dc02f898a9296075745c6bd266bf39721ff834e97d64b9ac4988667b677b1e5fc87a2abad191f7269c1884912722d7c00e6d589603fe9764bf43fcd69a87f639b5d779e9b26f4e15f30292cf42d85f89db57dc91c8b9e7"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "40366f06f40d0ed1a25ec7c671586cdb094b3c48998a3621d54906421dd6397d"),
		nonce:                 decodeHexString(c, "c843b6a39d1d6c79ebb0a924554a4409"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "ff78a5696f56d126012a152c8327f3e4b2c2ca5f05a9e26e326d145c53130f65"),
		additionalInputReseed: decodeHexString(c, "ddb1cd17ed8fdeefafa2a2170b894f0dee024402b6fa7d1156503a3166a3238b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "96dd841a1f1a5f75bb0e1dcd6b462dd4021f2476547a7fee54842c77913d2349"),
			decodeHexString(c, "43f267ffe203227d50d258f7c66a3133c522e3a76e0d2510062f26f05d757e62"),
		},
		expected: decodeHexString(c, "3fc93a1d874f87f7c5ade39f41a0db2da17e4388f43da41bace8fe5656e3053653224ac137e030ffd271d7d8270039e4cff733ce3d6edc01b329d240c72928500a2ba96fb899d5f5473021248e903d9b9bf1ae5ea4df091cccf02b735eb1ba6bee80deb879386966e9905ed3895daf41905ad52430d069fb791410a302c14bf5"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "7c95533ba72a6cb2c07319060f447bf149e6fdc6da76cfb472eb54724b021f1b"),
		nonce:                 decodeHexString(c, "cab140848787266a25c9ca47227d5f4c"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c0c5ca59a1a97b3c39632bf91d23ed8237978b306ed0b2b5680c954489e622e5"),
		additionalInputReseed: decodeHexString(c, "abd2ee5dd73713488c2e35896213faa4615c412dc3be79e4532bd2732d73c6d7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9675e94cda0710cda4d395337f8fa5e340d3f35c826fde187302ce518b31b1a4"),
			decodeHexString(c, "2b79becaf40b9f5a1d6a4e1153f837c2da3b5c16c0470c1c0fd71fbb6a75caad"),
		},
		expected: decodeHexString(c, "17c0b863ea766e7da05606128617a75356ad76c77b939e021a2cd62ded01725bbd97da64749e0fd1b82112d30022dcc00c08941874e83e44c6854a9d3a188144ee91c8afe72acc35d7136e45f563fc57be606e071a9f25f8f4cfd2ca3ad0858ea70aa5cc62c395e8e58f4883f04e5cb1b72914f9c69b9abf7cea02b58b153ad3"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a2a45c6c2dc5cf02ec2025cc554d1a0f53d09b5af0655173269c8fd4c78df823"),
		nonce:                 decodeHexString(c, "711c71cbec8fd52fd2fd62fa85967663"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "1378333a5e89e2ea1caa47a9e954fb19cdc7aa883884691dd29a4fa630feabee"),
		additionalInputReseed: decodeHexString(c, "fbfe40e62f9863ee7b5310a0dc8b5b7dde2f1812b5edb5ae6429b482c2ecc79b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "93271af872d04b680d5e3dd58f96cb63c7dfd09c12f6886729ccfb7769b63e46"),
			decodeHexString(c, "1dd8d97dac13761a9aad9afd5f6c1040ac270a006d8a236398e752f3e5358ca9"),
		},
		expected: decodeHexString(c, "c260a8d21815cbaae5d80089097c7cc048183bce547b22e3e8a71e19e0199a5d1512a4531d2f19b7ed68b02896704dfb3b8a5b588deb4182c5e57cc0a1b94fcaa1cd53f56b5dd2473136fac6395925d1f79d0d514ec039228238c7be9bbefcd2e69ec6abe09015d240bb09fe3a10fdd413a5c5ac9dd5c0f1054fe00892c28855"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "94335cd1fc76b0d42518f6d110a008666743f2ab25c94c6a4a81d00fb499672e"),
		nonce:                 decodeHexString(c, "8ecc9cc471cea7e5371950c7fbaf0967"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "2ece128928e401d68e2f5e70d8ba9b6071a2dd9b4c4791cb32c8c9f829c11eaf"),
		additionalInputReseed: decodeHexString(c, "2da9dd0eca2b5837795c2a3a380dc73c5eb7bb6d1cae50e20bfebcfee8aaa8d0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b3dde869016fe7f3648b3ad9240bf386c8bc6b4755cf205885c198884a7aab73"),
			decodeHexString(c, "d45b298c45f9f6d01083fea6766e0d40e33630a2f6fb7bda6c81bac4291abf93"),
		},
		expected: decodeHexString(c, "b112892a3943ec96ac8ea4d9ca10bde37c8d2c93d5b7e61ceae108e8b62d15143d698321714af5d1a31787e4bf64378dabf69c7f77616ae704e30fe4262d0fb13e96c405175f13c74031c6bdf9f629c075813da4cbf33b2a82368e37a68f2f66f550a7ae3e30c9261fcf40da8defec3f5b27daea31214416ae8f2648c04c9f74"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "49cfca43ce2d1a2658ee33295061e06ba54b0af99615dcd01acee047a84415e0"),
		nonce:                 decodeHexString(c, "716633bd99f2fcbdb69e15d0f8fa83de"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "3314e32a22dff3b39a087051e01fece69629aae36d7a78648b33747b446c72be"),
		additionalInputReseed: decodeHexString(c, "2651e8b3cfa53e684e08dcd4ac095423d9d58aaf99df0cdae66104f923d97e8a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "df93ddfd30ea7f0f7efd12cf46dbd69cfbf6d487ee7a6a178c29294428697c8c"),
			decodeHexString(c, "578321607ee9d8e8ba0c1009fd0bcc34bb9651ba8f4bf978070463dbf36b0ca1"),
		},
		expected: decodeHexString(c, "671fc9585a22addb52c6c19300f48210029c9f4a75afc9cbe9d3c9c5b8342e0dfed5089ca158269521b173709cab51de0e1113c063d217096a7906daad6604ae5b3de8612f79b9eee8cec4771052fbfdd0e799a3aa0ba25ff68a03f51d1fbc3277451b71913b51e04def500f709ba8f3eab2055ce51ac752ce73745c690ebc71"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "e22404ea13f8b54c52b4c017b727dab7ddd0da3b30298f9034a4529d02c2758f"),
		nonce:                 decodeHexString(c, "98e4b090533af4fcceb53f76007673e2"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "7423beb12f1bbad32b109d354e4234d24beee40668b1d9129aff0c5ddfaa8cb5"),
		additionalInputReseed: decodeHexString(c, "12290535f046a8e85731408518d8e6c07bba128622c754d2270f1b8efcb912ac"),
		additionalInput: [2][]byte{
			decodeHexString(c, "3b6fe285197b493bf97a3a08534eb88fc5e86d569003bdc1a84abaf44ecbba52"),
			decodeHexString(c, "060bb157194d5d8ea2eb561e9fd34a42b1d6ad8ac98d310b1f16be011332757b"),
		},
		expected: decodeHexString(c, "89ca4e473d4f52628b3ea144e47cec863e87dbd97eae61f76ffdd4315f0fe81e828e9ea49fae82f6ff122a160834edbf7355576887cdb1e9069f62e72268fe1ecc915c3701e9976bc1b6557f9d3ab40e0e35e1cf98d6db572c7d38659ddf367a3089e0a0d4d5252ba4b03ff559b608bc91c86651148d57390689eda1d312e449"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "dbdfad30f70774e58df06098828cbee5fdf676e0ff67acbef7b9e539d50ec6be"),
		nonce:                 decodeHexString(c, "0dbe1ac3bf600e33ff4173ae5af3a19f"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "dafd010c52578eed93b777c007fcd9b6c63939bae457576a34989e072a00ea88"),
		additionalInputReseed: decodeHexString(c, "6f192039abee3fe77955d31a4e0c2d82b718a1ca5608bd2d822b0a5bdaed8fd3"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ef8e36079918a8d503122fcb7e722b76f69ae05102fe60b9a4f43520f03f3091"),
			decodeHexString(c, "a6fa780b883b49adc28ef85622f0415ecbfb2deb0c8f4d356eded9d5044af28f"),
		},
		expected: decodeHexString(c, "eebaf267cac6d17b7da157c07b9b227b9468b07958ce640010ed287731d63cec1c209ceb560ef50302d0cccfbdc38372e21e62c9b7778d4fc1b9f102cb8a84f1ce0d56a0a8fceb9828670cdec900d2feb253696c1db83b78af37d300539bd6bde6fbd7f4b002718fd169fd960b03db8748d1e6c7c7f497aea48dbe38e488f59d"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed109_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed109_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c604361c40df73b500f2d78566c0f25de3a92508cb7e690c0e6982a7730d96cb"),
		nonce:                 decodeHexString(c, "a9798f0e17277fe24512bbf64c4a8acc"),
		personalization:       decodeHexString(c, ""),
		entropyInputReseed:    decodeHexString(c, "c4a8c2310a0c28ca8ae126b1b8196f846da1b83d98494a2b3218111f8640b4de"),
		additionalInputReseed: decodeHexString(c, "91bd389904cf3fc2529e92e1da74f7ef4d366a8a4de13d61a10163a6433d0070"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e477f4a8da464251a84d4027f67e9845bc3a9168571efc399811d9ef588b0acf"),
			decodeHexString(c, "5b273c52c337cfa17b5a4f24fbbf2210d7b9d2cc11d1f22fdd3ef789d0d7d7ad"),
		},
		expected: decodeHexString(c, "7175c03bb75a1a2669886dcce083ae15e52bcef053f8ef03c7b988e460c6899d4dd6afc4c23ba7fd012d602625cfd648c909045e1780e4861022e91f0f839a4671100b0854b1da64b45b29b753aa0a4161562b6b1677b6e7d89f0d45756347daddde7c71c05b94d20793ae46ae1d8b5b062dbb3dfa0eee84686cf2faf82f3764"),
	})
}

func (s *drbgSuite) testHashGenerateAfterReseed111_SHA512_256(c *C, data *testData) {
	s.testHashGenerateAfterReseed(c, crypto.SHA512_256, data)
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_0(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "46ca177944263f486a99756fff510eaff6a2e7e1328e6f880ae254b332505495"),
		nonce:                 decodeHexString(c, "85d52505eba6c3e68dbfe02fd572d70f"),
		personalization:       decodeHexString(c, "b7ee353d3958e3e5606ecc0eb882c624eba8390fa17b7612d634131b5d3d0c91"),
		entropyInputReseed:    decodeHexString(c, "f7f447fdda2794d01aa72839cd58be2e44df932e577a11bb61421ad55e9cdce8"),
		additionalInputReseed: decodeHexString(c, "2af675a85cf6d8f2e637c2cc4f05ba7b7a12f1981f13e294983e23015d97f03f"),
		additionalInput: [2][]byte{
			decodeHexString(c, "75951248cfe53e98da1870ab6f3210c94ace3a8abc432676283c4710f54d1c67"),
			decodeHexString(c, "567337c9184d4341265e522b50b0afa9efaf5cd9d9dbef30c998e0b5dddbcad4"),
		},
		expected: decodeHexString(c, "b7f5614844965092aecb481fe6550c6aaa8c54c87a7492946756aaafcf1b567aba2a1b801adf7f62804a77d32c1278f365568b6f45cf70d22875a898a311f14d8a95c6ed7d3f23fbb6bcf5dd9863079895cb15a29bd908142586ed5b98254986dff772fcc208b69b84710f5f1de2e9d704ed4d6fa6fe96937c9cb3fd19ee9a61"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_1(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c416a96faa2b48844401c3d159dbb416ee0b6c30cfd16ea508a6fbf79aa3ed1e"),
		nonce:                 decodeHexString(c, "2c67731aab41b578024f4a31c718a6df"),
		personalization:       decodeHexString(c, "7bd6b83fbf4ef9e8d9d65d6ca0da01d3f3fe97b349d9ca30d52abf2a5d7a1a57"),
		entropyInputReseed:    decodeHexString(c, "fb31b00317f9a9a36d8a5b4aad97d22fec69dde88cd6cc71b06f0168603cbb5e"),
		additionalInputReseed: decodeHexString(c, "415251a97ca5dac0c28aff80ec45216ebabc735bfcbfffa6dadaff4acc9d43a0"),
		additionalInput: [2][]byte{
			decodeHexString(c, "444f99f4c1bd9305da4e92097e90abb59723c22fb264272a1caa2b093402a597"),
			decodeHexString(c, "084d9cceaa8c6ecd509979023b8bbda0feecb37dc7c0c798439072ed0c238713"),
		},
		expected: decodeHexString(c, "e62d27b5479bcad5b6e502424fe7e94f696528356de8be6a9e2a223d5ef48afa999c824675d29dcfa1cbd4312aa2d5f9035d89d91641cff1eb5d5f4aa09cafce9b3ebcf51c6a768435c27b1e666435c5e9c9d971ed574b14ed7ec3dc4fdc4205dd6cba84e381c8819acef98ff47e1198cc3f66b99d19910fefafa34819d8763c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_2(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "40a4482d87b47c291a36827ae572c1aadafd323319b3f46b9a8d2e03959ad602"),
		nonce:                 decodeHexString(c, "45a526431e42de94d3cb4e325d3eb953"),
		personalization:       decodeHexString(c, "21e11c5a4c3fce3b499ee439678a8fd19c84c33e9a6f06f79b6aacbccc9d87a9"),
		entropyInputReseed:    decodeHexString(c, "fa2571ab6b6868cc9ef38f443ea04877e7ac66d9df9d6883a657cce904c53dba"),
		additionalInputReseed: decodeHexString(c, "29da3c00155b1d97b551de9fa6e33673be8103ef974cd7de3dcd3410c443ed92"),
		additionalInput: [2][]byte{
			decodeHexString(c, "c2f7b7f20b6e7577382ace705286ca6e739b4ff3cc395bb76476f013f74fcf1e"),
			decodeHexString(c, "c6ef4b5485a7d579b06737733365ec70fd3b03ffd4b46546f42850f77b452788"),
		},
		expected: decodeHexString(c, "a22d41cc403edfa43050720d9c76cb88777726cc22821376a512a33857f5fc3913c147c1f3f273b6957c2d7d340b78f8bf8600cf745e61687aa080752f7433e70c34355490980d8c508d5fc687c45569ccaa7aa70f4d18ecfaacaac2986c8537b6c6d0d2dca0cff9cf019c71f9aa6127ab8875d9315906f6d51a694860cc7817"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_3(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "a4b1054ca2f6f13989aec66cc041bb9ecfcf53b0500ab5c7389fc8c8ea01a9c6"),
		nonce:                 decodeHexString(c, "ceccc989f2831a94ef824a0c52fd8659"),
		personalization:       decodeHexString(c, "e14711b413c2b8f6fb98516c2a3cf5e53aef84e4d5a07766d463f69d550ba3bb"),
		entropyInputReseed:    decodeHexString(c, "479e2f870bd9614efd9bfc66d9588fc12c734884e5d426718f56c23b3498bc7b"),
		additionalInputReseed: decodeHexString(c, "9dea3d1c0b24025036acf4e0e7056b0d0a9ece4fb928b8a6161593ee1fa358e1"),
		additionalInput: [2][]byte{
			decodeHexString(c, "e48f7879f6d9c6c807471d768fb14f2eaad4a6309a0cb81c9b250478bce54bfc"),
			decodeHexString(c, "ab544116ddb1d90f47359b03f393a04e9b6a030194bf0551cc8031a3dae175a1"),
		},
		expected: decodeHexString(c, "341965371d94892471d5e7e352d6fdcddb2d16ce5c853fa04c8479837d600801bee51e15ca53499597913437309eaacbe6bf44cb42b90fd2d1dadb2572d7934a296d6c47767da4a56726cd68cfff2aff9ecacc4358981045fe5cb158b02dae4e017c3cd4cdbcded7b4e6c8d8273112e899acde822f171d1b17a17247b9c71d1f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_4(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "53158db6deaf023ffc23e3247aebcb4c8fbd0c80fc674590c396a65e767c61fe"),
		nonce:                 decodeHexString(c, "70cb90bcf5423a981f348b4678042beb"),
		personalization:       decodeHexString(c, "d8d9c44ed254502325f3b685e7e8908f7ac4e92bb872cb2a3ec26ed9b35e22b9"),
		entropyInputReseed:    decodeHexString(c, "7f31b403ea3446099a8feac19eebc789f32a71a7596f03b9929967284be33588"),
		additionalInputReseed: decodeHexString(c, "ece04b1232ba623e0e990fb9d9a6e4967b6ef3e8994d2bd8c35358b118b194bc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "cc0d5b04faa966785ece0da3dd9008cbe875dd7f7887a4eda50d8708d9147a52"),
			decodeHexString(c, "ed99231f13abd1344c902b7ba4669398a2684c3527b849e76d2216693ef6ef76"),
		},
		expected: decodeHexString(c, "d72d1f368ee46dc46c8d717c19b4cc5e66528ce6bd9c144ca326f6ecaabbfbcc2a18d41b787ac3f3a81be8bb9e849c4c291b7a2bb873b624fca521b38ee91f7966ffc5dacf570d5d36a0ad12c0701223d1a22cd67491e187a1f93c1d9af38f6b76107700455c85315ae7cdb9d3b72c5fae7b279772e272b283118b54ce2d093f"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_5(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1a5e4307b432eb4f41cea44417495a88f3caaf996506d4d1516bb135b210628a"),
		nonce:                 decodeHexString(c, "f9d7cf8c1ae7531eb1a27b57fda590af"),
		personalization:       decodeHexString(c, "b8dc667c8f6c9960439ac9244154fa84d221e1d98a02975d04a4d3c9870bef63"),
		entropyInputReseed:    decodeHexString(c, "02410741de20bff31fa249f29a3e64dae237dace062b7e1f2e09725fbf03880f"),
		additionalInputReseed: decodeHexString(c, "15bef494a8730753512a1e615b79b8324c19f1a441c1cd1a1e7b0cedd450fd9b"),
		additionalInput: [2][]byte{
			decodeHexString(c, "6fb0116e73c648c0478ba3773bba84ec4132cd92e4417b65a82ffb6682c94246"),
			decodeHexString(c, "ede86e7671b4401cdaeec77aa66b35cc704a1234240c2fae5b5b1d4963b0aa4e"),
		},
		expected: decodeHexString(c, "940d9c6a27efe35e5fa91c3da900118c1fc1496f5e65005c4bc1ce20b0adb8e6e0f40330b9226f0346923b2fb41049d9e0b4622d9ceac7c2b0b07c94a1252d15be28c5b693577d97be3d168624d837f54685a7f99b816e71ecc13cc269c424e845f0b5a9c03ac3dc768595780781d0d05ac491d215e683abd01e28dc25192a5c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_6(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "b15f4a942cd934fd29781070648d86b6a0196ec0d983b8537c93473dd1806b26"),
		nonce:                 decodeHexString(c, "ef384d6b94d85eaeeca8ea2891090a86"),
		personalization:       decodeHexString(c, "a731ff7a73b24cfea6e3c66676a890f017e8283ad5298a46ca1e2d00ea349819"),
		entropyInputReseed:    decodeHexString(c, "93a23969d473d6643f36afb20fe2ad0f6bc93a9741f656cb1cd64bf35a06a685"),
		additionalInputReseed: decodeHexString(c, "503c6c0b42d41361b34f0594f832d4b75a9d1312b26232c43e49385193c00a1c"),
		additionalInput: [2][]byte{
			decodeHexString(c, "1ac649746d07cad3a743f7822fb3dc9a5885f99ba371cdaa980ac43745b1917a"),
			decodeHexString(c, "0425ab53b1e8afcc103e2782118c7db97d2eb24b4ac80f83c43e03d764d8ed0d"),
		},
		expected: decodeHexString(c, "c4cd14aa2271adf405a38318882f1440291132cfe9e36a1da5fcc07300572711241771bf4d095930f55c18751d473e516d729f567a9198490b37d928b31acf3c10c8b3f7c23218a03dc76b59c10357cec99c4b7f09793e2c71962da7d3d9f6981d9915060ceed7a2f1e1e2772ef95bc2f12e1ae1218d53efeb253167c39b14f4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_7(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "c6c5713655132dbe09dd8a5b3f570b1ddb03c09da083d9ffed23d419935c70e6"),
		nonce:                 decodeHexString(c, "88b8a3a0cf74a27dd9d5ecbc4b762bc3"),
		personalization:       decodeHexString(c, "2692b006478572eb1e329c035677c2b8ea7b59e9d35414ecd3acdac61f5d2248"),
		entropyInputReseed:    decodeHexString(c, "4ae3ba1548a192290453b89cb76c49b30ae37b0014d365f064f5470d9f5b259a"),
		additionalInputReseed: decodeHexString(c, "e2c66aa33aed7d848b864e749668053953b730653ebe08a5df87200e7799b6cc"),
		additionalInput: [2][]byte{
			decodeHexString(c, "892d36fad080d1e7c15d1d4a35d74bb4d79ccc9ad75fd459c0800325fbd19ca2"),
			decodeHexString(c, "b1982ce364fded9d9a947595888b8a2c42ab330834328f75fdcb4ae9bdb12c3f"),
		},
		expected: decodeHexString(c, "3de39ae38d34127a412a2042811b2a36d230bbb5c6b03821cc87eb950e0b9f31b9aa6c5dfa7a9df6e3bf788378f6fd50dd29056fa5d9a660d72c95e2cbb7ddb61b3c479c915c467bd11c3fb7cf94039871c98caaf258c47a2f37db191b5b23ec60eba50ee0be55f0f69893478fe6ceb0be885d34814c7d7c6d851975a7168c95"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_8(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "960df46bb61039766fec7d4b784cff590be1667a01b859f60af8a0ae6d43f999"),
		nonce:                 decodeHexString(c, "8137a1ae9a0c8ca53e69cd8038165800"),
		personalization:       decodeHexString(c, "08b9a97c42d8a1ac756d98e198154b6eedbd3cfb2dd14eb7e9c8f75a25f1e1e7"),
		entropyInputReseed:    decodeHexString(c, "4d76b9cca458ffd515082fabb6927ebb9ae391116abc2ee912e77bdb94364256"),
		additionalInputReseed: decodeHexString(c, "53a5923455f00ed5a9123df9d9d3b110265afaef234b5ba833ca3e69f9920ef7"),
		additionalInput: [2][]byte{
			decodeHexString(c, "721d089947e4c859c238392f96778c7af37da210b28fb0ed986cdfc393aba22e"),
			decodeHexString(c, "2840e99aa3fa7aa5ea6d656be369084f614397eedcf8468d78e9f8766fa15ad3"),
		},
		expected: decodeHexString(c, "fc323e530a95ba6578f250fb0614b373789cc555c86983f4858f4de1dd2f975ed2f95fdf8c4f8795aafd18acb85ae44fad09320e55deef74a94d55b00f4099ce9592f50f5943188604b6923fa3809e6a0cf7f9ac36c879d467e4aba13ded84175eb991313c8a9d7b718c9026aad81f34826c7ee38d6bcbe1617ae6b064bc311c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_9(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "47841a194b24550d9616d0f315522162d2ed73f018771bcb684e75b86146ef6f"),
		nonce:                 decodeHexString(c, "2b24eec8bef61a64dfb0dc7be6f168e7"),
		personalization:       decodeHexString(c, "2ebb99e2f1ce722366b3a2007b043cc936dcb06278393ab7c6eef733e47d7069"),
		entropyInputReseed:    decodeHexString(c, "b5e5491b292389094261cf5bf2421541f509b1c0f69b3d2cfe21aa53d6b1aa8e"),
		additionalInputReseed: decodeHexString(c, "2251df4ae5f1fda53db7e9e871162cbba34263d5d6a1e57d036508157b7f4596"),
		additionalInput: [2][]byte{
			decodeHexString(c, "044dc81263ec7d116488eb60d4a0139cd6fe8c1ed2baf1077861a4592457bec1"),
			decodeHexString(c, "102b945020ed5e7fc5616490e924535316ea72d4f079edf2b009dc2021f25711"),
		},
		expected: decodeHexString(c, "97e8d4369b6b6e0c28010417cb4f63cfd7bc2617207fcbe6071e9b548f27421897767a328f8c6ab451d413603756e5627ea4b65b16825416d780cf89f598d6d61ca9c44024cc6100b7fd20f13ed765ab616da7671deb2eed3a8a329ebf33cba520d39dfa866d208be151b1bcb4dd6f61ff804a4684eef23cbbf8755056bc6404"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_10(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "f26c94e16825e3d191a54c9e41b309864d3a5f6e5d465fe800656db4559fe492"),
		nonce:                 decodeHexString(c, "d87f7aeea20d2973f29bfb0e7c6268a4"),
		personalization:       decodeHexString(c, "e93b19349cec91cc80125788ee9b4358d3b4b914ed87d64bf27f492195e8dc75"),
		entropyInputReseed:    decodeHexString(c, "2e8e61afe366d09cd707f3f48da8d0a0c51eb70157b3da268baa3d586612bdf8"),
		additionalInputReseed: decodeHexString(c, "b96ee0b7dbc7601833833799dc928bb8299827ca06c83cd0f4d78e248916a88a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "ba4cff264f7a4035e8aa3b5e3ab272fc7d2b3a10138ad4cd8f6eb101d758ab87"),
			decodeHexString(c, "47fd86eb4dc873f3641276e8a7a2a0ba411530eba416146ceee6588ef1d2b583"),
		},
		expected: decodeHexString(c, "d64a77e7e21e082bd8d64c077dc739abc9b00eaf1c6c517b59d395aa24952c1cd5f5de13d2efed5a14aeef0cdfa6d6fae083ee34f5a52ba2c824f41416d669efa080b678b9f1cbf447aafc475d43c7747318f1e7558a59e2662afb1b4a386c94ebc76c207c67812c98ed2df69b9ea6f20c3df9c98a6b7134e883068bb665e20c"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_11(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "84a30453a236de73856f5e40652d1f7aa5409615fea1c6728d0da43475e5f3b3"),
		nonce:                 decodeHexString(c, "4eea0a251ab6664e5a348e4108208921"),
		personalization:       decodeHexString(c, "0f360997ed574e028c6b4b3b400d8cf2d64841bc397854f35c03875f6658119a"),
		entropyInputReseed:    decodeHexString(c, "afc107528990fbd80cf33fab0a58a02b754325bffa41e1aa24b061a674ac8f03"),
		additionalInputReseed: decodeHexString(c, "6eb322a810d32e2c014703921d93d72969a55e88cdd71bdc0be8277812d93b6d"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b98f5457fb0d96bb98c9b1d75a2333b4e2842da6cb776dd9e69b69266714f701"),
			decodeHexString(c, "dc92707a506b3b54f82a5dca99f878f1e6b1273ed74834930cd5906ddf51aef6"),
		},
		expected: decodeHexString(c, "14db52153bcfdd5b67945d9200b553c5cf601012bb563ec040e73ff503e551a77ca985c5b601071876b7d95739d1f1d95d02a4905bbc1cbdfa0e16acfbd61e442b99710eebc137e312188a4770f08202b7c583446aa367993245f1658986f04e8d451c0efbfda7563a00f4bab9f31f7bd46c591e7ca4fb19968a4c8f02ab4bd4"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_12(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "1a708367b6f7efe69ed8bd3b716db7ed843a1bc7f89582e5373ebbe2a3e49ad2"),
		nonce:                 decodeHexString(c, "bdec21c5e289812e8a25014607fe1d64"),
		personalization:       decodeHexString(c, "64875ae0951dd1643b74ac2d6787d7a81e0fdf2d6c7fce7b9eba31a933ecf86c"),
		entropyInputReseed:    decodeHexString(c, "9df17efd3e591cee31122a8710768b28524c6cde5ee7e5982a614c667f694170"),
		additionalInputReseed: decodeHexString(c, "8f7eba26bee6e82eec4f883e5f91e34c6aada32aae67e3b2f4e7a13a69f73a54"),
		additionalInput: [2][]byte{
			decodeHexString(c, "b315b4af0cc349d77f1073af5809739a207f421da857cd3c2fb28e19674134b7"),
			decodeHexString(c, "1db94e361cbb5e3bee77e0065d15dd7a02a54db5d59741720b15137c09e09def"),
		},
		expected: decodeHexString(c, "2aaea0e46cf63504b5419e1b27641c3781e3b2abbd59a1258536934b6bf2fe971a772b6b54e53f9cf061dfffedfb080fbabe6304266cc029ba5b737aec9657fa97da4eaa3e58ca55e30626ad8f5e441c62cfb56fb679ad28f69a26805ed55dc2a7ac5de898c09fdfb77a84642e42bf0be7e1141ed0c8d8f6050f2d45a63659d6"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_13(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "de129a837b2271b3c7ebb08a0bb7ea884371784673e93cb26660633a2ca1e386"),
		nonce:                 decodeHexString(c, "3acbaca42e3ed33f3018db73785598d7"),
		personalization:       decodeHexString(c, "943259c6032aba5c0ec5305eb47c1ee60a74c3390773aadc244011e84426c17c"),
		entropyInputReseed:    decodeHexString(c, "a4cda73690ce008b641af1a96a0bde2e383953b04911b77fb24e717f80e50709"),
		additionalInputReseed: decodeHexString(c, "8fdcc0b92a3c6c4ef78737db2a3e7679df86ba509007874316b3843745507b44"),
		additionalInput: [2][]byte{
			decodeHexString(c, "5b02cd3c2a17c1b3ab7d2d3bf1f350a861fc63675dcc8e22ccefce74f9710b56"),
			decodeHexString(c, "11686997e883804cb8d9eecfba76538c3f1048136bd87ec5e39b882e95bd901f"),
		},
		expected: decodeHexString(c, "54c0749459510e16329d89ec4efccf7d8682e65ef46dbb45e3565f486cf95ebd40e987d543b45082ef2d7a948de673cb0b7459d1eb853eb599394755bf7b59f93d119b4c07e9a5811756a5a9911fb3842fb6163ace41b59dc37242eb8994303a8288b103b8cd499f649aca6fe5287a8d89056b57f72dcbbd4751062f5ea94200"),
	})
}

func (s *drbgSuite) TestHashGenerateAfterReseed111_SHA512_256_14(c *C) {
	s.testHashGenerateAfterReseed111_SHA512_256(c, &testData{
		entropyInput:          decodeHexString(c, "5c1582c13134bd984ba6c27d32bdf3fa1847c6f9c37f9a5cb315cabac9c8f2a6"),
		nonce:                 decodeHexString(c, "5e3ebae1c1b11507e0ce8ce680657518"),
		personalization:       decodeHexString(c, "261f0fa2fc41d20363b0975c58bd79548c133a66e8edd7c440b7f69d37b03232"),
		entropyInputReseed:    decodeHexString(c, "da390dbb1977a89830cfd02827ecf249af17baf6812961f71579b0bb0779537c"),
		additionalInputReseed: decodeHexString(c, "f3e9210b235796858e8188202c66e7e015c6976d4f6872b0c56b80f34b1ec44a"),
		additionalInput: [2][]byte{
			decodeHexString(c, "9ab299963bc96b27d5e806f105b930f49d4a270ec9b98d13ff438ea9c58f5b3d"),
			decodeHexString(c, "9e08aeccedd8ae05eafbbfafd8790a3e3981d85c743f5e6da18ac4f041b9e627"),
		},
		expected: decodeHexString(c, "518ca27afab1b58ffa9e9d04dd7bb7bfc4119a299e08727d8cf8999dc440040f6214246c56befb2fbbc4784c96799459cfac77883a7b1fb27bb8d9c909c7e62f011cbb5c5332d780fcc500593c2a7067411f246772d822b4d6dac393c6b4820bcb6cdc2659be5434cffbd535d5130575707b94358d15b088bc4637a83a97f78f"),
	})
}
